]> git.lyx.org Git - features.git/commitdiff
boost: add eol property
authorPeter Kümmel <syntheticpp@gmx.net>
Wed, 17 Feb 2010 20:41:25 +0000 (20:41 +0000)
committerPeter Kümmel <syntheticpp@gmx.net>
Wed, 17 Feb 2010 20:41:25 +0000 (20:41 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33489 a592a061-630c-0410-9148-cb99ea01b6c8

292 files changed:
boost/boost/bind/bind.hpp
boost/boost/bind/mem_fn.hpp
boost/boost/config/compiler/codegear.hpp
boost/boost/config/compiler/digitalmars.hpp
boost/boost/config/compiler/gcc_xml.hpp
boost/boost/config/compiler/pgi.hpp
boost/boost/config/no_tr1/cmath.hpp
boost/boost/config/platform/qnxnto.hpp
boost/boost/config/platform/vxworks.hpp
boost/boost/config/requires_threads.hpp
boost/boost/config/warning_disable.hpp
boost/boost/detail/container_fwd.hpp
boost/boost/detail/scoped_enum_emulation.hpp
boost/boost/exception/all.hpp
boost/boost/exception/current_exception_cast.hpp
boost/boost/exception/detail/attribute_noreturn.hpp
boost/boost/exception/detail/error_info_impl.hpp
boost/boost/exception/detail/exception_ptr_base.hpp
boost/boost/exception/detail/type_info.hpp
boost/boost/exception/errinfo_api_function.hpp
boost/boost/exception/errinfo_at_line.hpp
boost/boost/exception/errinfo_errno.hpp
boost/boost/exception/errinfo_file_handle.hpp
boost/boost/exception/errinfo_file_name.hpp
boost/boost/exception/errinfo_file_open_mode.hpp
boost/boost/exception/errinfo_type_info_name.hpp
boost/boost/exception/get_error_info.hpp
boost/boost/function/function_fwd.hpp
boost/boost/function/function_typeof.hpp
boost/boost/functional/detail/container_fwd.hpp
boost/boost/functional/hash.hpp
boost/boost/functional/hash/detail/float_functions.hpp
boost/boost/functional/hash/detail/hash_float.hpp
boost/boost/functional/hash/detail/hash_float_generic.hpp
boost/boost/functional/hash/detail/hash_float_x86.hpp
boost/boost/functional/hash/detail/limits.hpp
boost/boost/functional/hash/extensions.hpp
boost/boost/functional/hash/hash.hpp
boost/boost/functional/hash/hash_fwd.hpp
boost/boost/functional/hash_fwd.hpp
boost/boost/iterator/counting_iterator.hpp
boost/boost/iterator/detail/any_conversion_eater.hpp
boost/boost/iterator/is_lvalue_iterator.hpp
boost/boost/iterator/is_readable_iterator.hpp
boost/boost/iterator/iterator_archetypes.hpp
boost/boost/iterator/iterator_concepts.hpp
boost/boost/iterator/new_iterator_tests.hpp
boost/boost/iterator/permutation_iterator.hpp
boost/boost/iterator/zip_iterator.hpp
boost/boost/mpl/aux_/config/bcc.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp
boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp
boost/boost/mpl/char.hpp
boost/boost/mpl/char_fwd.hpp
boost/boost/mpl/limits/string.hpp
boost/boost/mpl/string.hpp
boost/boost/optional/optional_io.hpp
boost/boost/preprocessor/arithmetic/detail/div_base.hpp
boost/boost/preprocessor/array/insert.hpp
boost/boost/preprocessor/array/pop_back.hpp
boost/boost/preprocessor/array/pop_front.hpp
boost/boost/preprocessor/array/push_back.hpp
boost/boost/preprocessor/array/push_front.hpp
boost/boost/preprocessor/array/remove.hpp
boost/boost/preprocessor/array/replace.hpp
boost/boost/preprocessor/array/reverse.hpp
boost/boost/preprocessor/config/limits.hpp
boost/boost/preprocessor/control.hpp
boost/boost/preprocessor/control/deduce_d.hpp
boost/boost/preprocessor/control/detail/dmc/while.hpp
boost/boost/preprocessor/control/detail/edg/while.hpp
boost/boost/preprocessor/debug.hpp
boost/boost/preprocessor/debug/assert.hpp
boost/boost/preprocessor/debug/line.hpp
boost/boost/preprocessor/detail/dmc/auto_rec.hpp
boost/boost/preprocessor/detail/is_nullary.hpp
boost/boost/preprocessor/detail/is_unary.hpp
boost/boost/preprocessor/detail/null.hpp
boost/boost/preprocessor/detail/split.hpp
boost/boost/preprocessor/facilities.hpp
boost/boost/preprocessor/facilities/apply.hpp
boost/boost/preprocessor/facilities/expand.hpp
boost/boost/preprocessor/facilities/intercept.hpp
boost/boost/preprocessor/facilities/is_1.hpp
boost/boost/preprocessor/facilities/is_empty.hpp
boost/boost/preprocessor/facilities/is_empty_or_1.hpp
boost/boost/preprocessor/iteration.hpp
boost/boost/preprocessor/iteration/detail/bounds/lower2.hpp
boost/boost/preprocessor/iteration/detail/bounds/lower3.hpp
boost/boost/preprocessor/iteration/detail/bounds/lower4.hpp
boost/boost/preprocessor/iteration/detail/bounds/lower5.hpp
boost/boost/preprocessor/iteration/detail/bounds/upper2.hpp
boost/boost/preprocessor/iteration/detail/bounds/upper3.hpp
boost/boost/preprocessor/iteration/detail/bounds/upper4.hpp
boost/boost/preprocessor/iteration/detail/bounds/upper5.hpp
boost/boost/preprocessor/iteration/detail/finish.hpp
boost/boost/preprocessor/iteration/detail/iter/forward2.hpp
boost/boost/preprocessor/iteration/detail/iter/forward3.hpp
boost/boost/preprocessor/iteration/detail/iter/forward4.hpp
boost/boost/preprocessor/iteration/detail/iter/forward5.hpp
boost/boost/preprocessor/iteration/detail/iter/reverse1.hpp
boost/boost/preprocessor/iteration/detail/iter/reverse2.hpp
boost/boost/preprocessor/iteration/detail/iter/reverse3.hpp
boost/boost/preprocessor/iteration/detail/iter/reverse4.hpp
boost/boost/preprocessor/iteration/detail/iter/reverse5.hpp
boost/boost/preprocessor/iteration/detail/rlocal.hpp
boost/boost/preprocessor/iteration/detail/self.hpp
boost/boost/preprocessor/iteration/detail/start.hpp
boost/boost/preprocessor/iteration/self.hpp
boost/boost/preprocessor/library.hpp
boost/boost/preprocessor/list/detail/dmc/fold_left.hpp
boost/boost/preprocessor/list/detail/edg/fold_left.hpp
boost/boost/preprocessor/list/detail/edg/fold_right.hpp
boost/boost/preprocessor/logical/bitnor.hpp
boost/boost/preprocessor/logical/bitor.hpp
boost/boost/preprocessor/logical/bitxor.hpp
boost/boost/preprocessor/punctuation.hpp
boost/boost/preprocessor/punctuation/paren.hpp
boost/boost/preprocessor/punctuation/paren_if.hpp
boost/boost/preprocessor/repetition.hpp
boost/boost/preprocessor/repetition/deduce_r.hpp
boost/boost/preprocessor/repetition/deduce_z.hpp
boost/boost/preprocessor/repetition/detail/dmc/for.hpp
boost/boost/preprocessor/repetition/enum_params_with_a_default.hpp
boost/boost/preprocessor/repetition/enum_params_with_defaults.hpp
boost/boost/preprocessor/repetition/enum_shifted.hpp
boost/boost/preprocessor/repetition/enum_shifted_binary_params.hpp
boost/boost/preprocessor/repetition/enum_shifted_params.hpp
boost/boost/preprocessor/repetition/enum_trailing.hpp
boost/boost/preprocessor/repetition/enum_trailing_binary_params.hpp
boost/boost/preprocessor/repetition/enum_trailing_params.hpp
boost/boost/preprocessor/selection.hpp
boost/boost/preprocessor/selection/max.hpp
boost/boost/preprocessor/selection/min.hpp
boost/boost/preprocessor/seq.hpp
boost/boost/preprocessor/seq/cat.hpp
boost/boost/preprocessor/seq/detail/split.hpp
boost/boost/preprocessor/seq/elem.hpp
boost/boost/preprocessor/seq/enum.hpp
boost/boost/preprocessor/seq/filter.hpp
boost/boost/preprocessor/seq/first_n.hpp
boost/boost/preprocessor/seq/fold_left.hpp
boost/boost/preprocessor/seq/fold_right.hpp
boost/boost/preprocessor/seq/for_each.hpp
boost/boost/preprocessor/seq/for_each_i.hpp
boost/boost/preprocessor/seq/for_each_product.hpp
boost/boost/preprocessor/seq/insert.hpp
boost/boost/preprocessor/seq/pop_back.hpp
boost/boost/preprocessor/seq/pop_front.hpp
boost/boost/preprocessor/seq/push_back.hpp
boost/boost/preprocessor/seq/push_front.hpp
boost/boost/preprocessor/seq/remove.hpp
boost/boost/preprocessor/seq/replace.hpp
boost/boost/preprocessor/seq/rest_n.hpp
boost/boost/preprocessor/seq/reverse.hpp
boost/boost/preprocessor/seq/seq.hpp
boost/boost/preprocessor/seq/size.hpp
boost/boost/preprocessor/seq/subseq.hpp
boost/boost/preprocessor/seq/to_array.hpp
boost/boost/preprocessor/seq/to_tuple.hpp
boost/boost/preprocessor/seq/transform.hpp
boost/boost/preprocessor/slot/counter.hpp
boost/boost/preprocessor/slot/detail/counter.hpp
boost/boost/preprocessor/slot/detail/slot1.hpp
boost/boost/preprocessor/slot/detail/slot2.hpp
boost/boost/preprocessor/slot/detail/slot3.hpp
boost/boost/preprocessor/slot/detail/slot4.hpp
boost/boost/preprocessor/slot/detail/slot5.hpp
boost/boost/preprocessor/tuple/to_seq.hpp
boost/boost/preprocessor/wstringize.hpp
boost/boost/regex/concepts.hpp
boost/boost/regex/icu.hpp
boost/boost/regex/mfc.hpp
boost/boost/regex/pending/static_mutex.hpp
boost/boost/regex/pending/unicode_iterator.hpp
boost/boost/regex/v4/u32regex_iterator.hpp
boost/boost/regex/v4/u32regex_token_iterator.hpp
boost/boost/smart_ptr/bad_weak_ptr.hpp
boost/boost/smart_ptr/detail/atomic_count.hpp
boost/boost/smart_ptr/detail/atomic_count_gcc.hpp
boost/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp
boost/boost/smart_ptr/detail/atomic_count_pthreads.hpp
boost/boost/smart_ptr/detail/atomic_count_solaris.hpp
boost/boost/smart_ptr/detail/atomic_count_sync.hpp
boost/boost/smart_ptr/detail/atomic_count_win32.hpp
boost/boost/smart_ptr/detail/lightweight_mutex.hpp
boost/boost/smart_ptr/detail/lwm_nop.hpp
boost/boost/smart_ptr/detail/lwm_pthreads.hpp
boost/boost/smart_ptr/detail/lwm_win32_cs.hpp
boost/boost/smart_ptr/detail/operator_bool.hpp
boost/boost/smart_ptr/detail/quick_allocator.hpp
boost/boost/smart_ptr/detail/shared_array_nmt.hpp
boost/boost/smart_ptr/detail/shared_count.hpp
boost/boost/smart_ptr/detail/shared_ptr_nmt.hpp
boost/boost/smart_ptr/detail/sp_convertible.hpp
boost/boost/smart_ptr/detail/sp_counted_base.hpp
boost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp
boost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp
boost/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp
boost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp
boost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp
boost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp
boost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp
boost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp
boost/boost/smart_ptr/detail/sp_counted_base_nt.hpp
boost/boost/smart_ptr/detail/sp_counted_base_pt.hpp
boost/boost/smart_ptr/detail/sp_counted_base_solaris.hpp
boost/boost/smart_ptr/detail/sp_counted_base_spin.hpp
boost/boost/smart_ptr/detail/sp_counted_base_sync.hpp
boost/boost/smart_ptr/detail/sp_counted_base_w32.hpp
boost/boost/smart_ptr/detail/sp_counted_impl.hpp
boost/boost/smart_ptr/detail/sp_has_sync.hpp
boost/boost/smart_ptr/detail/spinlock.hpp
boost/boost/smart_ptr/detail/spinlock_gcc_arm.hpp
boost/boost/smart_ptr/detail/spinlock_nt.hpp
boost/boost/smart_ptr/detail/spinlock_pool.hpp
boost/boost/smart_ptr/detail/spinlock_pt.hpp
boost/boost/smart_ptr/detail/spinlock_sync.hpp
boost/boost/smart_ptr/detail/spinlock_w32.hpp
boost/boost/smart_ptr/detail/yield_k.hpp
boost/boost/smart_ptr/enable_shared_from_this.hpp
boost/boost/smart_ptr/enable_shared_from_this2.hpp
boost/boost/smart_ptr/intrusive_ptr.hpp
boost/boost/smart_ptr/make_shared.hpp
boost/boost/smart_ptr/scoped_array.hpp
boost/boost/smart_ptr/scoped_ptr.hpp
boost/boost/smart_ptr/shared_array.hpp
boost/boost/smart_ptr/shared_ptr.hpp
boost/boost/smart_ptr/weak_ptr.hpp
boost/boost/swap.hpp
boost/boost/type_traits/has_new_operator.hpp
boost/boost/type_traits/is_virtual_base_of.hpp
boost/boost/utility/binary.hpp
boost/boost/utility/detail/in_place_factory_prefix.hpp
boost/boost/utility/detail/in_place_factory_suffix.hpp
boost/boost/utility/detail/result_of_iterate.hpp
boost/boost/utility/in_place_factory.hpp
boost/boost/utility/result_of.hpp
boost/boost/utility/swap.hpp
boost/boost/utility/typed_in_place_factory.hpp
boost/boost/utility/value_init.hpp
boost/libs/regex/src/CMakeLists.txt
boost/libs/regex/src/icu.cpp
boost/libs/regex/src/static_mutex.cpp
boost/libs/regex/src/usinstances.cpp
boost/libs/regex/src/wc_regex_traits.cpp
boost/libs/signals/src/CMakeLists.txt

index 2ee5c0feaea90b0f9ee3ce8f7c132dca3cb8b087..1e5c9e032490ed8b2ed2ff3469fcd7053e48cd10 100644 (file)
-#ifndef BOOST_BIND_BIND_HPP_INCLUDED\r
-#define BOOST_BIND_BIND_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  bind.hpp - binds function objects to arguments\r
-//\r
-//  Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd.\r
-//  Copyright (c) 2001 David Abrahams\r
-//  Copyright (c) 2005 Peter Dimov\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  See http://www.boost.org/libs/bind/bind.html for documentation.\r
-//\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/ref.hpp>\r
-#include <boost/mem_fn.hpp>\r
-#include <boost/type.hpp>\r
-#include <boost/is_placeholder.hpp>\r
-#include <boost/bind/arg.hpp>\r
-#include <boost/detail/workaround.hpp>\r
-#include <boost/visit_each.hpp>\r
-\r
-// Borland-specific bug, visit_each() silently fails to produce code\r
-\r
-#if defined(__BORLANDC__)\r
-#  define BOOST_BIND_VISIT_EACH boost::visit_each\r
-#else\r
-#  define BOOST_BIND_VISIT_EACH visit_each\r
-#endif\r
-\r
-#include <boost/bind/storage.hpp>\r
-\r
-#ifdef BOOST_MSVC\r
-# pragma warning(push)\r
-# pragma warning(disable: 4512) // assignment operator could not be generated\r
-#endif\r
-\r
-namespace boost\r
-{\r
-\r
-template<class T> class weak_ptr;\r
-\r
-namespace _bi // implementation details\r
-{\r
-\r
-// result_traits\r
-\r
-template<class R, class F> struct result_traits\r
-{\r
-    typedef R type;\r
-};\r
-\r
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)\r
-\r
-struct unspecified {};\r
-\r
-template<class F> struct result_traits<unspecified, F>\r
-{\r
-    typedef typename F::result_type type;\r
-};\r
-\r
-template<class F> struct result_traits< unspecified, reference_wrapper<F> >\r
-{\r
-    typedef typename F::result_type type;\r
-};\r
-\r
-#endif\r
-\r
-// ref_compare\r
-\r
-template<class T> bool ref_compare( T const & a, T const & b, long )\r
-{\r
-    return a == b;\r
-}\r
-\r
-template<int I> bool ref_compare( arg<I> const &, arg<I> const &, int )\r
-{\r
-    return true;\r
-}\r
-\r
-template<int I> bool ref_compare( arg<I> (*) (), arg<I> (*) (), int )\r
-{\r
-    return true;\r
-}\r
-\r
-template<class T> bool ref_compare( reference_wrapper<T> const & a, reference_wrapper<T> const & b, int )\r
-{\r
-    return a.get_pointer() == b.get_pointer();\r
-}\r
-\r
-// bind_t forward declaration for listN\r
-\r
-template<class R, class F, class L> class bind_t;\r
-\r
-template<class R, class F, class L> bool ref_compare( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b, int )\r
-{\r
-    return a.compare( b );\r
-}\r
-\r
-// value\r
-\r
-template<class T> class value\r
-{\r
-public:\r
-\r
-    value(T const & t): t_(t) {}\r
-\r
-    T & get() { return t_; }\r
-    T const & get() const { return t_; }\r
-\r
-    bool operator==(value const & rhs) const\r
-    {\r
-        return t_ == rhs.t_;\r
-    }\r
-\r
-private:\r
-\r
-    T t_;\r
-};\r
-\r
-// ref_compare for weak_ptr\r
-\r
-template<class T> bool ref_compare( value< weak_ptr<T> > const & a, value< weak_ptr<T> > const & b, int )\r
-{\r
-    return !(a.get() < b.get()) && !(b.get() < a.get());\r
-}\r
-\r
-// type\r
-\r
-template<class T> class type {};\r
-\r
-// unwrap\r
-\r
-template<class F> struct unwrapper\r
-{\r
-    static inline F & unwrap( F & f, long )\r
-    {\r
-        return f;\r
-    }\r
-\r
-    template<class F2> static inline F2 & unwrap( reference_wrapper<F2> rf, int )\r
-    {\r
-        return rf.get();\r
-    }\r
-\r
-    template<class R, class T> static inline _mfi::dm<R, T> unwrap( R T::* pm, int )\r
-    {\r
-        return _mfi::dm<R, T>( pm );\r
-    }\r
-};\r
-\r
-// listN\r
-\r
-class list0\r
-{\r
-public:\r
-\r
-    list0() {}\r
-\r
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
-\r
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
-\r
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F & f, A &, long)\r
-    {\r
-        return unwrapper<F>::unwrap(f, 0)();\r
-    }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A &, long) const\r
-    {\r
-        return unwrapper<F const>::unwrap(f, 0)();\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F & f, A &, int)\r
-    {\r
-        unwrapper<F>::unwrap(f, 0)();\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F const & f, A &, int) const\r
-    {\r
-        unwrapper<F const>::unwrap(f, 0)();\r
-    }\r
-\r
-    template<class V> void accept(V &) const\r
-    {\r
-    }\r
-\r
-    bool operator==(list0 const &) const\r
-    {\r
-        return true;\r
-    }\r
-};\r
-\r
-template< class A1 > class list1: private storage1< A1 >\r
-{\r
-private:\r
-\r
-    typedef storage1< A1 > base_type;\r
-\r
-public:\r
-\r
-    explicit list1( A1 a1 ): base_type( a1 ) {}\r
-\r
-    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
-\r
-    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
-\r
-    template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }\r
-\r
-    template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }\r
-\r
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
-    {\r
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);\r
-    }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
-    {\r
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
-    {\r
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
-    {\r
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);\r
-    }\r
-\r
-    template<class V> void accept(V & v) const\r
-    {\r
-        base_type::accept(v);\r
-    }\r
-\r
-    bool operator==(list1 const & rhs) const\r
-    {\r
-        return ref_compare(base_type::a1_, rhs.a1_, 0);\r
-    }\r
-};\r
-\r
-struct logical_and;\r
-struct logical_or;\r
-\r
-template< class A1, class A2 > class list2: private storage2< A1, A2 >\r
-{\r
-private:\r
-\r
-    typedef storage2< A1, A2 > base_type;\r
-\r
-public:\r
-\r
-    list2( A1 a1, A2 a2 ): base_type( a1, a2 ) {}\r
-\r
-    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
-\r
-    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
-\r
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
-\r
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
-\r
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
-    {\r
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);\r
-    }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
-    {\r
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
-    {\r
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
-    {\r
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);\r
-    }\r
-\r
-    template<class A> bool operator()( type<bool>, logical_and & /*f*/, A & a, int )\r
-    {\r
-        return a[ base_type::a1_ ] && a[ base_type::a2_ ];\r
-    }\r
-\r
-    template<class A> bool operator()( type<bool>, logical_and const & /*f*/, A & a, int ) const\r
-    {\r
-        return a[ base_type::a1_ ] && a[ base_type::a2_ ];\r
-    }\r
-\r
-    template<class A> bool operator()( type<bool>, logical_or & /*f*/, A & a, int )\r
-    {\r
-        return a[ base_type::a1_ ] || a[ base_type::a2_ ];\r
-    }\r
-\r
-    template<class A> bool operator()( type<bool>, logical_or const & /*f*/, A & a, int ) const\r
-    {\r
-        return a[ base_type::a1_ ] || a[ base_type::a2_ ];\r
-    }\r
-\r
-    template<class V> void accept(V & v) const\r
-    {\r
-        base_type::accept(v);\r
-    }\r
-\r
-    bool operator==(list2 const & rhs) const\r
-    {\r
-        return ref_compare(base_type::a1_, rhs.a1_, 0) && ref_compare(base_type::a2_, rhs.a2_, 0);\r
-    }\r
-};\r
-\r
-template< class A1, class A2, class A3 > class list3: private storage3< A1, A2, A3 >\r
-{\r
-private:\r
-\r
-    typedef storage3< A1, A2, A3 > base_type;\r
-\r
-public:\r
-\r
-    list3( A1 a1, A2 a2, A3 a3 ): base_type( a1, a2, a3 ) {}\r
-\r
-    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
-    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }\r
-\r
-    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
-    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }\r
-\r
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
-\r
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
-\r
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
-    {\r
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);\r
-    }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
-    {\r
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
-    {\r
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
-    {\r
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);\r
-    }\r
-\r
-    template<class V> void accept(V & v) const\r
-    {\r
-        base_type::accept(v);\r
-    }\r
-\r
-    bool operator==(list3 const & rhs) const\r
-    {\r
-        return\r
-            \r
-            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&\r
-            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&\r
-            ref_compare( base_type::a3_, rhs.a3_, 0 );\r
-    }\r
-};\r
-\r
-template< class A1, class A2, class A3, class A4 > class list4: private storage4< A1, A2, A3, A4 >\r
-{\r
-private:\r
-\r
-    typedef storage4< A1, A2, A3, A4 > base_type;\r
-\r
-public:\r
-\r
-    list4( A1 a1, A2 a2, A3 a3, A4 a4 ): base_type( a1, a2, a3, a4 ) {}\r
-\r
-    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
-    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }\r
-    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }\r
-\r
-    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
-    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }\r
-    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }\r
-\r
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
-\r
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
-\r
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
-    {\r
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);\r
-    }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
-    {\r
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
-    {\r
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
-    {\r
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);\r
-    }\r
-\r
-    template<class V> void accept(V & v) const\r
-    {\r
-        base_type::accept(v);\r
-    }\r
-\r
-    bool operator==(list4 const & rhs) const\r
-    {\r
-        return\r
-\r
-            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&\r
-            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&\r
-            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&\r
-            ref_compare( base_type::a4_, rhs.a4_, 0 );\r
-    }\r
-};\r
-\r
-template< class A1, class A2, class A3, class A4, class A5 > class list5: private storage5< A1, A2, A3, A4, A5 >\r
-{\r
-private:\r
-\r
-    typedef storage5< A1, A2, A3, A4, A5 > base_type;\r
-\r
-public:\r
-\r
-    list5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): base_type( a1, a2, a3, a4, a5 ) {}\r
-\r
-    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
-    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }\r
-    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }\r
-    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }\r
-\r
-    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
-    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }\r
-    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }\r
-    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }\r
-\r
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
-\r
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
-\r
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
-    {\r
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);\r
-    }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
-    {\r
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
-    {\r
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
-    {\r
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);\r
-    }\r
-\r
-    template<class V> void accept(V & v) const\r
-    {\r
-        base_type::accept(v);\r
-    }\r
-\r
-    bool operator==(list5 const & rhs) const\r
-    {\r
-        return\r
-\r
-            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&\r
-            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&\r
-            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&\r
-            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&\r
-            ref_compare( base_type::a5_, rhs.a5_, 0 );\r
-    }\r
-};\r
-\r
-template<class A1, class A2, class A3, class A4, class A5, class A6> class list6: private storage6< A1, A2, A3, A4, A5, A6 >\r
-{\r
-private:\r
-\r
-    typedef storage6< A1, A2, A3, A4, A5, A6 > base_type;\r
-\r
-public:\r
-\r
-    list6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): base_type( a1, a2, a3, a4, a5, a6 ) {}\r
-\r
-    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
-    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }\r
-    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }\r
-    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }\r
-    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }\r
-\r
-    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
-    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }\r
-    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }\r
-    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }\r
-    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }\r
-\r
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
-\r
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
-\r
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
-    {\r
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);\r
-    }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
-    {\r
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
-    {\r
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
-    {\r
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);\r
-    }\r
-\r
-    template<class V> void accept(V & v) const\r
-    {\r
-        base_type::accept(v);\r
-    }\r
-\r
-    bool operator==(list6 const & rhs) const\r
-    {\r
-        return\r
-\r
-            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&\r
-            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&\r
-            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&\r
-            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&\r
-            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&\r
-            ref_compare( base_type::a6_, rhs.a6_, 0 );\r
-    }\r
-};\r
-\r
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> class list7: private storage7< A1, A2, A3, A4, A5, A6, A7 >\r
-{\r
-private:\r
-\r
-    typedef storage7< A1, A2, A3, A4, A5, A6, A7 > base_type;\r
-\r
-public:\r
-\r
-    list7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): base_type( a1, a2, a3, a4, a5, a6, a7 ) {}\r
-\r
-    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
-    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }\r
-    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }\r
-    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }\r
-    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }\r
-    A7 operator[] (boost::arg<7>) const { return base_type::a7_; }\r
-\r
-    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
-    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }\r
-    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }\r
-    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }\r
-    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }\r
-    A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }\r
-\r
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
-\r
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
-\r
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
-    {\r
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);\r
-    }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
-    {\r
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
-    {\r
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
-    {\r
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);\r
-    }\r
-\r
-    template<class V> void accept(V & v) const\r
-    {\r
-        base_type::accept(v);\r
-    }\r
-\r
-    bool operator==(list7 const & rhs) const\r
-    {\r
-        return\r
-\r
-            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&\r
-            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&\r
-            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&\r
-            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&\r
-            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&\r
-            ref_compare( base_type::a6_, rhs.a6_, 0 ) &&\r
-            ref_compare( base_type::a7_, rhs.a7_, 0 );\r
-    }\r
-};\r
-\r
-template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class list8: private storage8< A1, A2, A3, A4, A5, A6, A7, A8 >\r
-{\r
-private:\r
-\r
-    typedef storage8< A1, A2, A3, A4, A5, A6, A7, A8 > base_type;\r
-\r
-public:\r
-\r
-    list8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8 ) {}\r
-\r
-    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
-    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }\r
-    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }\r
-    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }\r
-    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }\r
-    A7 operator[] (boost::arg<7>) const { return base_type::a7_; }\r
-    A8 operator[] (boost::arg<8>) const { return base_type::a8_; }\r
-\r
-    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
-    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }\r
-    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }\r
-    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }\r
-    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }\r
-    A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }\r
-    A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; }\r
-\r
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
-\r
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
-\r
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
-    {\r
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);\r
-    }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
-    {\r
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
-    {\r
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
-    {\r
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);\r
-    }\r
-\r
-    template<class V> void accept(V & v) const\r
-    {\r
-        base_type::accept(v);\r
-    }\r
-\r
-    bool operator==(list8 const & rhs) const\r
-    {\r
-        return\r
-            \r
-            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&\r
-            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&\r
-            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&\r
-            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&\r
-            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&\r
-            ref_compare( base_type::a6_, rhs.a6_, 0 ) &&\r
-            ref_compare( base_type::a7_, rhs.a7_, 0 ) &&\r
-            ref_compare( base_type::a8_, rhs.a8_, 0 );\r
-    }\r
-};\r
-\r
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> class list9: private storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 >\r
-{\r
-private:\r
-\r
-    typedef storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > base_type;\r
-\r
-public:\r
-\r
-    list9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) {}\r
-\r
-    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
-    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }\r
-    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }\r
-    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }\r
-    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }\r
-    A7 operator[] (boost::arg<7>) const { return base_type::a7_; }\r
-    A8 operator[] (boost::arg<8>) const { return base_type::a8_; }\r
-    A9 operator[] (boost::arg<9>) const { return base_type::a9_; }\r
-\r
-    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
-    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
-    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }\r
-    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }\r
-    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }\r
-    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }\r
-    A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }\r
-    A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; }\r
-    A9 operator[] (boost::arg<9> (*) ()) const { return base_type::a9_; }\r
-\r
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
-\r
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
-\r
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
-    {\r
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);\r
-    }\r
-\r
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
-    {\r
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
-    {\r
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);\r
-    }\r
-\r
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
-    {\r
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);\r
-    }\r
-\r
-    template<class V> void accept(V & v) const\r
-    {\r
-        base_type::accept(v);\r
-    }\r
-\r
-    bool operator==(list9 const & rhs) const\r
-    {\r
-        return\r
-\r
-            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&\r
-            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&\r
-            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&\r
-            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&\r
-            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&\r
-            ref_compare( base_type::a6_, rhs.a6_, 0 ) &&\r
-            ref_compare( base_type::a7_, rhs.a7_, 0 ) &&\r
-            ref_compare( base_type::a8_, rhs.a8_, 0 ) &&\r
-            ref_compare( base_type::a9_, rhs.a9_, 0 );\r
-    }\r
-};\r
-\r
-// bind_t\r
-\r
-#ifndef BOOST_NO_VOID_RETURNS\r
-\r
-template<class R, class F, class L> class bind_t\r
-{\r
-public:\r
-\r
-    typedef bind_t this_type;\r
-\r
-    bind_t(F f, L const & l): f_(f), l_(l) {}\r
-\r
-#define BOOST_BIND_RETURN return\r
-#include <boost/bind/bind_template.hpp>\r
-#undef BOOST_BIND_RETURN\r
-\r
-};\r
-\r
-#else\r
-\r
-template<class R> struct bind_t_generator\r
-{\r
-\r
-template<class F, class L> class implementation\r
-{\r
-public:\r
-\r
-    typedef implementation this_type;\r
-\r
-    implementation(F f, L const & l): f_(f), l_(l) {}\r
-\r
-#define BOOST_BIND_RETURN return\r
-#include <boost/bind/bind_template.hpp>\r
-#undef BOOST_BIND_RETURN\r
-\r
-};\r
-\r
-};\r
-\r
-template<> struct bind_t_generator<void>\r
-{\r
-\r
-template<class F, class L> class implementation\r
-{\r
-private:\r
-\r
-    typedef void R;\r
-\r
-public:\r
-\r
-    typedef implementation this_type;\r
-\r
-    implementation(F f, L const & l): f_(f), l_(l) {}\r
-\r
-#define BOOST_BIND_RETURN\r
-#include <boost/bind/bind_template.hpp>\r
-#undef BOOST_BIND_RETURN\r
-\r
-};\r
-\r
-};\r
-\r
-template<class R2, class F, class L> class bind_t: public bind_t_generator<R2>::BOOST_NESTED_TEMPLATE implementation<F, L>\r
-{\r
-public:\r
-\r
-    bind_t(F f, L const & l): bind_t_generator<R2>::BOOST_NESTED_TEMPLATE implementation<F, L>(f, l) {}\r
-\r
-};\r
-\r
-#endif\r
-\r
-// function_equal\r
-\r
-#ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP\r
-\r
-// put overloads in _bi, rely on ADL\r
-\r
-# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING\r
-\r
-template<class R, class F, class L> bool function_equal( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b )\r
-{\r
-    return a.compare(b);\r
-}\r
-\r
-# else\r
-\r
-template<class R, class F, class L> bool function_equal_impl( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b, int )\r
-{\r
-    return a.compare(b);\r
-}\r
-\r
-# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING\r
-\r
-#else // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP\r
-\r
-// put overloads in boost\r
-\r
-} // namespace _bi\r
-\r
-# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING\r
-\r
-template<class R, class F, class L> bool function_equal( _bi::bind_t<R, F, L> const & a, _bi::bind_t<R, F, L> const & b )\r
-{\r
-    return a.compare(b);\r
-}\r
-\r
-# else\r
-\r
-template<class R, class F, class L> bool function_equal_impl( _bi::bind_t<R, F, L> const & a, _bi::bind_t<R, F, L> const & b, int )\r
-{\r
-    return a.compare(b);\r
-}\r
-\r
-# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING\r
-\r
-namespace _bi\r
-{\r
-\r
-#endif // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP\r
-\r
-// add_value\r
-\r
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530)\r
-\r
-#if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x582) )\r
-\r
-template<class T> struct add_value\r
-{\r
-    typedef _bi::value<T> type;\r
-};\r
-\r
-#else\r
-\r
-template< class T, int I > struct add_value_2\r
-{\r
-    typedef boost::arg<I> type;\r
-};\r
-\r
-template< class T > struct add_value_2< T, 0 >\r
-{\r
-    typedef _bi::value< T > type;\r
-};\r
-\r
-template<class T> struct add_value\r
-{\r
-    typedef typename add_value_2< T, boost::is_placeholder< T >::value >::type type;\r
-};\r
-\r
-#endif\r
-\r
-template<class T> struct add_value< value<T> >\r
-{\r
-    typedef _bi::value<T> type;\r
-};\r
-\r
-template<class T> struct add_value< reference_wrapper<T> >\r
-{\r
-    typedef reference_wrapper<T> type;\r
-};\r
-\r
-template<int I> struct add_value< arg<I> >\r
-{\r
-    typedef boost::arg<I> type;\r
-};\r
-\r
-template<int I> struct add_value< arg<I> (*) () >\r
-{\r
-    typedef boost::arg<I> (*type) ();\r
-};\r
-\r
-template<class R, class F, class L> struct add_value< bind_t<R, F, L> >\r
-{\r
-    typedef bind_t<R, F, L> type;\r
-};\r
-\r
-#else\r
-\r
-template<int I> struct _avt_0;\r
-\r
-template<> struct _avt_0<1>\r
-{\r
-    template<class T> struct inner\r
-    {\r
-        typedef T type;\r
-    };\r
-};\r
-\r
-template<> struct _avt_0<2>\r
-{\r
-    template<class T> struct inner\r
-    {\r
-        typedef value<T> type;\r
-    };\r
-};\r
-\r
-typedef char (&_avt_r1) [1];\r
-typedef char (&_avt_r2) [2];\r
-\r
-template<class T> _avt_r1 _avt_f(value<T>);\r
-template<class T> _avt_r1 _avt_f(reference_wrapper<T>);\r
-template<int I> _avt_r1 _avt_f(arg<I>);\r
-template<int I> _avt_r1 _avt_f(arg<I> (*) ());\r
-template<class R, class F, class L> _avt_r1 _avt_f(bind_t<R, F, L>);\r
-\r
-_avt_r2 _avt_f(...);\r
-\r
-template<class T> struct add_value\r
-{\r
-    static T t();\r
-    typedef typename _avt_0<sizeof(_avt_f(t()))>::template inner<T>::type type;\r
-};\r
-\r
-#endif\r
-\r
-// list_av_N\r
-\r
-template<class A1> struct list_av_1\r
-{\r
-    typedef typename add_value<A1>::type B1;\r
-    typedef list1<B1> type;\r
-};\r
-\r
-template<class A1, class A2> struct list_av_2\r
-{\r
-    typedef typename add_value<A1>::type B1;\r
-    typedef typename add_value<A2>::type B2;\r
-    typedef list2<B1, B2> type;\r
-};\r
-\r
-template<class A1, class A2, class A3> struct list_av_3\r
-{\r
-    typedef typename add_value<A1>::type B1;\r
-    typedef typename add_value<A2>::type B2;\r
-    typedef typename add_value<A3>::type B3;\r
-    typedef list3<B1, B2, B3> type;\r
-};\r
-\r
-template<class A1, class A2, class A3, class A4> struct list_av_4\r
-{\r
-    typedef typename add_value<A1>::type B1;\r
-    typedef typename add_value<A2>::type B2;\r
-    typedef typename add_value<A3>::type B3;\r
-    typedef typename add_value<A4>::type B4;\r
-    typedef list4<B1, B2, B3, B4> type;\r
-};\r
-\r
-template<class A1, class A2, class A3, class A4, class A5> struct list_av_5\r
-{\r
-    typedef typename add_value<A1>::type B1;\r
-    typedef typename add_value<A2>::type B2;\r
-    typedef typename add_value<A3>::type B3;\r
-    typedef typename add_value<A4>::type B4;\r
-    typedef typename add_value<A5>::type B5;\r
-    typedef list5<B1, B2, B3, B4, B5> type;\r
-};\r
-\r
-template<class A1, class A2, class A3, class A4, class A5, class A6> struct list_av_6\r
-{\r
-    typedef typename add_value<A1>::type B1;\r
-    typedef typename add_value<A2>::type B2;\r
-    typedef typename add_value<A3>::type B3;\r
-    typedef typename add_value<A4>::type B4;\r
-    typedef typename add_value<A5>::type B5;\r
-    typedef typename add_value<A6>::type B6;\r
-    typedef list6<B1, B2, B3, B4, B5, B6> type;\r
-};\r
-\r
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct list_av_7\r
-{\r
-    typedef typename add_value<A1>::type B1;\r
-    typedef typename add_value<A2>::type B2;\r
-    typedef typename add_value<A3>::type B3;\r
-    typedef typename add_value<A4>::type B4;\r
-    typedef typename add_value<A5>::type B5;\r
-    typedef typename add_value<A6>::type B6;\r
-    typedef typename add_value<A7>::type B7;\r
-    typedef list7<B1, B2, B3, B4, B5, B6, B7> type;\r
-};\r
-\r
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct list_av_8\r
-{\r
-    typedef typename add_value<A1>::type B1;\r
-    typedef typename add_value<A2>::type B2;\r
-    typedef typename add_value<A3>::type B3;\r
-    typedef typename add_value<A4>::type B4;\r
-    typedef typename add_value<A5>::type B5;\r
-    typedef typename add_value<A6>::type B6;\r
-    typedef typename add_value<A7>::type B7;\r
-    typedef typename add_value<A8>::type B8;\r
-    typedef list8<B1, B2, B3, B4, B5, B6, B7, B8> type;\r
-};\r
-\r
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> struct list_av_9\r
-{\r
-    typedef typename add_value<A1>::type B1;\r
-    typedef typename add_value<A2>::type B2;\r
-    typedef typename add_value<A3>::type B3;\r
-    typedef typename add_value<A4>::type B4;\r
-    typedef typename add_value<A5>::type B5;\r
-    typedef typename add_value<A6>::type B6;\r
-    typedef typename add_value<A7>::type B7;\r
-    typedef typename add_value<A8>::type B8;\r
-    typedef typename add_value<A9>::type B9;\r
-    typedef list9<B1, B2, B3, B4, B5, B6, B7, B8, B9> type;\r
-};\r
-\r
-// operator!\r
-\r
-struct logical_not\r
-{\r
-    template<class V> bool operator()(V const & v) const { return !v; }\r
-};\r
-\r
-template<class R, class F, class L>\r
-    bind_t< bool, logical_not, list1< bind_t<R, F, L> > >\r
-    operator! (bind_t<R, F, L> const & f)\r
-{\r
-    typedef list1< bind_t<R, F, L> > list_type;\r
-    return bind_t<bool, logical_not, list_type> ( logical_not(), list_type(f) );\r
-}\r
-\r
-// relational operators\r
-\r
-#define BOOST_BIND_OPERATOR( op, name ) \\r
-\\r
-struct name \\r
-{ \\r
-    template<class V, class W> bool operator()(V const & v, W const & w) const { return v op w; } \\r
-}; \\r
- \\r
-template<class R, class F, class L, class A2> \\r
-    bind_t< bool, name, list2< bind_t<R, F, L>, typename add_value<A2>::type > > \\r
-    operator op (bind_t<R, F, L> const & f, A2 a2) \\r
-{ \\r
-    typedef typename add_value<A2>::type B2; \\r
-    typedef list2< bind_t<R, F, L>, B2> list_type; \\r
-    return bind_t<bool, name, list_type> ( name(), list_type(f, a2) ); \\r
-}\r
-\r
-BOOST_BIND_OPERATOR( ==, equal )\r
-BOOST_BIND_OPERATOR( !=, not_equal )\r
-\r
-BOOST_BIND_OPERATOR( <, less )\r
-BOOST_BIND_OPERATOR( <=, less_equal )\r
-\r
-BOOST_BIND_OPERATOR( >, greater )\r
-BOOST_BIND_OPERATOR( >=, greater_equal )\r
-\r
-BOOST_BIND_OPERATOR( &&, logical_and )\r
-BOOST_BIND_OPERATOR( ||, logical_or )\r
-\r
-#undef BOOST_BIND_OPERATOR\r
-\r
-#if defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3)\r
-\r
-// resolve ambiguity with rel_ops\r
-\r
-#define BOOST_BIND_OPERATOR( op, name ) \\r
-\\r
-template<class R, class F, class L> \\r
-    bind_t< bool, name, list2< bind_t<R, F, L>, bind_t<R, F, L> > > \\r
-    operator op (bind_t<R, F, L> const & f, bind_t<R, F, L> const & g) \\r
-{ \\r
-    typedef list2< bind_t<R, F, L>, bind_t<R, F, L> > list_type; \\r
-    return bind_t<bool, name, list_type> ( name(), list_type(f, g) ); \\r
-}\r
-\r
-BOOST_BIND_OPERATOR( !=, not_equal )\r
-BOOST_BIND_OPERATOR( <=, less_equal )\r
-BOOST_BIND_OPERATOR( >, greater )\r
-BOOST_BIND_OPERATOR( >=, greater_equal )\r
-\r
-#endif\r
-\r
-// visit_each, ADL\r
-\r
-#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) \\r
-   && !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)\r
-\r
-template<class V, class T> void visit_each( V & v, value<T> const & t, int )\r
-{\r
-    using boost::visit_each;\r
-    BOOST_BIND_VISIT_EACH( v, t.get(), 0 );\r
-}\r
-\r
-template<class V, class R, class F, class L> void visit_each( V & v, bind_t<R, F, L> const & t, int )\r
-{\r
-    t.accept( v );\r
-}\r
-\r
-#endif\r
-\r
-} // namespace _bi\r
-\r
-// visit_each, no ADL\r
-\r
-#if defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( __BORLANDC__ ) \\r
-  || (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)\r
-\r
-template<class V, class T> void visit_each( V & v, _bi::value<T> const & t, int )\r
-{\r
-    BOOST_BIND_VISIT_EACH( v, t.get(), 0 );\r
-}\r
-\r
-template<class V, class R, class F, class L> void visit_each( V & v, _bi::bind_t<R, F, L> const & t, int )\r
-{\r
-    t.accept( v );\r
-}\r
-\r
-#endif\r
-\r
-// is_bind_expression\r
-\r
-template< class T > struct is_bind_expression\r
-{\r
-    enum _vt { value = 0 };\r
-};\r
-\r
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )\r
-\r
-template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< R, F, L > >\r
-{\r
-    enum _vt { value = 1 };\r
-};\r
-\r
-#endif\r
-\r
-// bind\r
-\r
-#ifndef BOOST_BIND\r
-#define BOOST_BIND bind\r
-#endif\r
-\r
-// generic function objects\r
-\r
-template<class R, class F>\r
-    _bi::bind_t<R, F, _bi::list0>\r
-    BOOST_BIND(F f)\r
-{\r
-    typedef _bi::list0 list_type;\r
-    return _bi::bind_t<R, F, list_type> (f, list_type());\r
-}\r
-\r
-template<class R, class F, class A1>\r
-    _bi::bind_t<R, F, typename _bi::list_av_1<A1>::type>\r
-    BOOST_BIND(F f, A1 a1)\r
-{\r
-    typedef typename _bi::list_av_1<A1>::type list_type;\r
-    return _bi::bind_t<R, F, list_type> (f, list_type(a1));\r
-}\r
-\r
-template<class R, class F, class A1, class A2>\r
-    _bi::bind_t<R, F, typename _bi::list_av_2<A1, A2>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2)\r
-{\r
-    typedef typename _bi::list_av_2<A1, A2>::type list_type;\r
-    return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));\r
-}\r
-\r
-template<class R, class F, class A1, class A2, class A3>\r
-    _bi::bind_t<R, F, typename _bi::list_av_3<A1, A2, A3>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3)\r
-{\r
-    typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));\r
-}\r
-\r
-template<class R, class F, class A1, class A2, class A3, class A4>\r
-    _bi::bind_t<R, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4)\r
-{\r
-    typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));\r
-}\r
-\r
-template<class R, class F, class A1, class A2, class A3, class A4, class A5>\r
-    _bi::bind_t<R, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)\r
-{\r
-    typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));\r
-}\r
-\r
-template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6>\r
-    _bi::bind_t<R, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)\r
-{\r
-    typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));\r
-}\r
-\r
-template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>\r
-    _bi::bind_t<R, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)\r
-{\r
-    typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));\r
-}\r
-\r
-template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>\r
-    _bi::bind_t<R, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)\r
-{\r
-    typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));\r
-}\r
-\r
-template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>\r
-    _bi::bind_t<R, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)\r
-{\r
-    typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));\r
-}\r
-\r
-// generic function objects, alternative syntax\r
-\r
-template<class R, class F>\r
-    _bi::bind_t<R, F, _bi::list0>\r
-    BOOST_BIND(boost::type<R>, F f)\r
-{\r
-    typedef _bi::list0 list_type;\r
-    return _bi::bind_t<R, F, list_type> (f, list_type());\r
-}\r
-\r
-template<class R, class F, class A1>\r
-    _bi::bind_t<R, F, typename _bi::list_av_1<A1>::type>\r
-    BOOST_BIND(boost::type<R>, F f, A1 a1)\r
-{\r
-    typedef typename _bi::list_av_1<A1>::type list_type;\r
-    return _bi::bind_t<R, F, list_type> (f, list_type(a1));\r
-}\r
-\r
-template<class R, class F, class A1, class A2>\r
-    _bi::bind_t<R, F, typename _bi::list_av_2<A1, A2>::type>\r
-    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2)\r
-{\r
-    typedef typename _bi::list_av_2<A1, A2>::type list_type;\r
-    return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));\r
-}\r
-\r
-template<class R, class F, class A1, class A2, class A3>\r
-    _bi::bind_t<R, F, typename _bi::list_av_3<A1, A2, A3>::type>\r
-    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3)\r
-{\r
-    typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));\r
-}\r
-\r
-template<class R, class F, class A1, class A2, class A3, class A4>\r
-    _bi::bind_t<R, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>\r
-    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4)\r
-{\r
-    typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));\r
-}\r
-\r
-template<class R, class F, class A1, class A2, class A3, class A4, class A5>\r
-    _bi::bind_t<R, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>\r
-    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)\r
-{\r
-    typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));\r
-}\r
-\r
-template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6>\r
-    _bi::bind_t<R, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>\r
-    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)\r
-{\r
-    typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));\r
-}\r
-\r
-template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>\r
-    _bi::bind_t<R, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>\r
-    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)\r
-{\r
-    typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));\r
-}\r
-\r
-template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>\r
-    _bi::bind_t<R, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>\r
-    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)\r
-{\r
-    typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));\r
-}\r
-\r
-template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>\r
-    _bi::bind_t<R, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>\r
-    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)\r
-{\r
-    typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));\r
-}\r
-\r
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)\r
-\r
-// adaptable function objects\r
-\r
-template<class F>\r
-    _bi::bind_t<_bi::unspecified, F, _bi::list0>\r
-    BOOST_BIND(F f)\r
-{\r
-    typedef _bi::list0 list_type;\r
-    return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type());\r
-}\r
-\r
-template<class F, class A1>\r
-    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_1<A1>::type>\r
-    BOOST_BIND(F f, A1 a1)\r
-{\r
-    typedef typename _bi::list_av_1<A1>::type list_type;\r
-    return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1));\r
-}\r
-\r
-template<class F, class A1, class A2>\r
-    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_2<A1, A2>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2)\r
-{\r
-    typedef typename _bi::list_av_2<A1, A2>::type list_type;\r
-    return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1, a2));\r
-}\r
-\r
-template<class F, class A1, class A2, class A3>\r
-    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_3<A1, A2, A3>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3)\r
-{\r
-    typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;\r
-    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3));\r
-}\r
-\r
-template<class F, class A1, class A2, class A3, class A4>\r
-    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4)\r
-{\r
-    typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;\r
-    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4));\r
-}\r
-\r
-template<class F, class A1, class A2, class A3, class A4, class A5>\r
-    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)\r
-{\r
-    typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;\r
-    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5));\r
-}\r
-\r
-template<class F, class A1, class A2, class A3, class A4, class A5, class A6>\r
-    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)\r
-{\r
-    typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;\r
-    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));\r
-}\r
-\r
-template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>\r
-    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)\r
-{\r
-    typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;\r
-    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));\r
-}\r
-\r
-template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>\r
-    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)\r
-{\r
-    typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;\r
-    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));\r
-}\r
-\r
-template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>\r
-    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>\r
-    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)\r
-{\r
-    typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;\r
-    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));\r
-}\r
-\r
-#endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)\r
-\r
-// function pointers\r
-\r
-#define BOOST_BIND_CC\r
-#define BOOST_BIND_ST\r
-\r
-#include <boost/bind/bind_cc.hpp>\r
-\r
-#undef BOOST_BIND_CC\r
-#undef BOOST_BIND_ST\r
-\r
-#ifdef BOOST_BIND_ENABLE_STDCALL\r
-\r
-#define BOOST_BIND_CC __stdcall\r
-#define BOOST_BIND_ST\r
-\r
-#include <boost/bind/bind_cc.hpp>\r
-\r
-#undef BOOST_BIND_CC\r
-#undef BOOST_BIND_ST\r
-\r
-#endif\r
-\r
-#ifdef BOOST_BIND_ENABLE_FASTCALL\r
-\r
-#define BOOST_BIND_CC __fastcall\r
-#define BOOST_BIND_ST\r
-\r
-#include <boost/bind/bind_cc.hpp>\r
-\r
-#undef BOOST_BIND_CC\r
-#undef BOOST_BIND_ST\r
-\r
-#endif\r
-\r
-#ifdef BOOST_BIND_ENABLE_PASCAL\r
-\r
-#define BOOST_BIND_ST pascal\r
-#define BOOST_BIND_CC\r
-\r
-#include <boost/bind/bind_cc.hpp>\r
-\r
-#undef BOOST_BIND_ST\r
-#undef BOOST_BIND_CC\r
-\r
-#endif\r
-\r
-// member function pointers\r
-\r
-#define BOOST_BIND_MF_NAME(X) X\r
-#define BOOST_BIND_MF_CC\r
-\r
-#include <boost/bind/bind_mf_cc.hpp>\r
-#include <boost/bind/bind_mf2_cc.hpp>\r
-\r
-#undef BOOST_BIND_MF_NAME\r
-#undef BOOST_BIND_MF_CC\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_CDECL\r
-\r
-#define BOOST_BIND_MF_NAME(X) X##_cdecl\r
-#define BOOST_BIND_MF_CC __cdecl\r
-\r
-#include <boost/bind/bind_mf_cc.hpp>\r
-#include <boost/bind/bind_mf2_cc.hpp>\r
-\r
-#undef BOOST_BIND_MF_NAME\r
-#undef BOOST_BIND_MF_CC\r
-\r
-#endif\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_STDCALL\r
-\r
-#define BOOST_BIND_MF_NAME(X) X##_stdcall\r
-#define BOOST_BIND_MF_CC __stdcall\r
-\r
-#include <boost/bind/bind_mf_cc.hpp>\r
-#include <boost/bind/bind_mf2_cc.hpp>\r
-\r
-#undef BOOST_BIND_MF_NAME\r
-#undef BOOST_BIND_MF_CC\r
-\r
-#endif\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_FASTCALL\r
-\r
-#define BOOST_BIND_MF_NAME(X) X##_fastcall\r
-#define BOOST_BIND_MF_CC __fastcall\r
-\r
-#include <boost/bind/bind_mf_cc.hpp>\r
-#include <boost/bind/bind_mf2_cc.hpp>\r
-\r
-#undef BOOST_BIND_MF_NAME\r
-#undef BOOST_BIND_MF_CC\r
-\r
-#endif\r
-\r
-// data member pointers\r
-\r
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \\r
-    || ( defined(__BORLANDC__) && BOOST_WORKAROUND( __BORLANDC__, <= 0x610 ) )\r
-\r
-template<class R, class T, class A1>\r
-_bi::bind_t< R, _mfi::dm<R, T>, typename _bi::list_av_1<A1>::type >\r
-    BOOST_BIND(R T::*f, A1 a1)\r
-{\r
-    typedef _mfi::dm<R, T> F;\r
-    typedef typename _bi::list_av_1<A1>::type list_type;\r
-    return _bi::bind_t<R, F, list_type>( F(f), list_type(a1) );\r
-}\r
-\r
-#else\r
-\r
-namespace _bi\r
-{\r
-\r
-template< class Pm, int I > struct add_cref;\r
-\r
-template< class M, class T > struct add_cref< M T::*, 0 >\r
-{\r
-    typedef M type;\r
-};\r
-\r
-template< class M, class T > struct add_cref< M T::*, 1 >\r
-{\r
-    typedef M const & type;\r
-};\r
-\r
-template< class R, class T > struct add_cref< R (T::*) (), 1 >\r
-{\r
-    typedef void type;\r
-};\r
-\r
-#if !( defined(__IBMCPP__) && BOOST_WORKAROUND( __IBMCPP__, BOOST_TESTED_AT(600) ) )\r
-\r
-template< class R, class T > struct add_cref< R (T::*) () const, 1 >\r
-{\r
-    typedef void type;\r
-};\r
-\r
-#endif // __IBMCPP__\r
-\r
-template<class R> struct isref\r
-{\r
-    enum value_type { value = 0 };\r
-};\r
-\r
-template<class R> struct isref< R& >\r
-{\r
-    enum value_type { value = 1 };\r
-};\r
-\r
-template<class R> struct isref< R* >\r
-{\r
-    enum value_type { value = 1 };\r
-};\r
-\r
-template<class Pm, class A1> struct dm_result\r
-{\r
-    typedef typename add_cref< Pm, 1 >::type type;\r
-};\r
-\r
-template<class Pm, class R, class F, class L> struct dm_result< Pm, bind_t<R, F, L> >\r
-{\r
-    typedef typename bind_t<R, F, L>::result_type result_type;\r
-    typedef typename add_cref< Pm, isref< result_type >::value >::type type;\r
-};\r
-\r
-} // namespace _bi\r
-\r
-template< class A1, class M, class T >\r
-\r
-_bi::bind_t<\r
-    typename _bi::dm_result< M T::*, A1 >::type,\r
-    _mfi::dm<M, T>,\r
-    typename _bi::list_av_1<A1>::type\r
->\r
-\r
-BOOST_BIND( M T::*f, A1 a1 )\r
-{\r
-    typedef typename _bi::dm_result< M T::*, A1 >::type result_type;\r
-    typedef _mfi::dm<M, T> F;\r
-    typedef typename _bi::list_av_1<A1>::type list_type;\r
-    return _bi::bind_t< result_type, F, list_type >( F( f ), list_type( a1 ) );\r
-}\r
-\r
-#endif\r
-\r
-} // namespace boost\r
-\r
-#ifndef BOOST_BIND_NO_PLACEHOLDERS\r
-\r
-# include <boost/bind/placeholders.hpp>\r
-\r
-#endif\r
-\r
-#ifdef BOOST_MSVC\r
-# pragma warning(default: 4512) // assignment operator could not be generated\r
-# pragma warning(pop)\r
-#endif\r
-\r
-#endif // #ifndef BOOST_BIND_BIND_HPP_INCLUDED\r
+#ifndef BOOST_BIND_BIND_HPP_INCLUDED
+#define BOOST_BIND_BIND_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  bind.hpp - binds function objects to arguments
+//
+//  Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd.
+//  Copyright (c) 2001 David Abrahams
+//  Copyright (c) 2005 Peter Dimov
+//
+// 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/bind/bind.html for documentation.
+//
+
+#include <boost/config.hpp>
+#include <boost/ref.hpp>
+#include <boost/mem_fn.hpp>
+#include <boost/type.hpp>
+#include <boost/is_placeholder.hpp>
+#include <boost/bind/arg.hpp>
+#include <boost/detail/workaround.hpp>
+#include <boost/visit_each.hpp>
+
+// Borland-specific bug, visit_each() silently fails to produce code
+
+#if defined(__BORLANDC__)
+#  define BOOST_BIND_VISIT_EACH boost::visit_each
+#else
+#  define BOOST_BIND_VISIT_EACH visit_each
+#endif
+
+#include <boost/bind/storage.hpp>
+
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated
+#endif
+
+namespace boost
+{
+
+template<class T> class weak_ptr;
+
+namespace _bi // implementation details
+{
+
+// result_traits
+
+template<class R, class F> struct result_traits
+{
+    typedef R type;
+};
+
+#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
+
+struct unspecified {};
+
+template<class F> struct result_traits<unspecified, F>
+{
+    typedef typename F::result_type type;
+};
+
+template<class F> struct result_traits< unspecified, reference_wrapper<F> >
+{
+    typedef typename F::result_type type;
+};
+
+#endif
+
+// ref_compare
+
+template<class T> bool ref_compare( T const & a, T const & b, long )
+{
+    return a == b;
+}
+
+template<int I> bool ref_compare( arg<I> const &, arg<I> const &, int )
+{
+    return true;
+}
+
+template<int I> bool ref_compare( arg<I> (*) (), arg<I> (*) (), int )
+{
+    return true;
+}
+
+template<class T> bool ref_compare( reference_wrapper<T> const & a, reference_wrapper<T> const & b, int )
+{
+    return a.get_pointer() == b.get_pointer();
+}
+
+// bind_t forward declaration for listN
+
+template<class R, class F, class L> class bind_t;
+
+template<class R, class F, class L> bool ref_compare( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b, int )
+{
+    return a.compare( b );
+}
+
+// value
+
+template<class T> class value
+{
+public:
+
+    value(T const & t): t_(t) {}
+
+    T & get() { return t_; }
+    T const & get() const { return t_; }
+
+    bool operator==(value const & rhs) const
+    {
+        return t_ == rhs.t_;
+    }
+
+private:
+
+    T t_;
+};
+
+// ref_compare for weak_ptr
+
+template<class T> bool ref_compare( value< weak_ptr<T> > const & a, value< weak_ptr<T> > const & b, int )
+{
+    return !(a.get() < b.get()) && !(b.get() < a.get());
+}
+
+// type
+
+template<class T> class type {};
+
+// unwrap
+
+template<class F> struct unwrapper
+{
+    static inline F & unwrap( F & f, long )
+    {
+        return f;
+    }
+
+    template<class F2> static inline F2 & unwrap( reference_wrapper<F2> rf, int )
+    {
+        return rf.get();
+    }
+
+    template<class R, class T> static inline _mfi::dm<R, T> unwrap( R T::* pm, int )
+    {
+        return _mfi::dm<R, T>( pm );
+    }
+};
+
+// listN
+
+class list0
+{
+public:
+
+    list0() {}
+
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
+
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
+
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
+
+    template<class R, class F, class A> R operator()(type<R>, F & f, A &, long)
+    {
+        return unwrapper<F>::unwrap(f, 0)();
+    }
+
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A &, long) const
+    {
+        return unwrapper<F const>::unwrap(f, 0)();
+    }
+
+    template<class F, class A> void operator()(type<void>, F & f, A &, int)
+    {
+        unwrapper<F>::unwrap(f, 0)();
+    }
+
+    template<class F, class A> void operator()(type<void>, F const & f, A &, int) const
+    {
+        unwrapper<F const>::unwrap(f, 0)();
+    }
+
+    template<class V> void accept(V &) const
+    {
+    }
+
+    bool operator==(list0 const &) const
+    {
+        return true;
+    }
+};
+
+template< class A1 > class list1: private storage1< A1 >
+{
+private:
+
+    typedef storage1< A1 > base_type;
+
+public:
+
+    explicit list1( A1 a1 ): base_type( a1 ) {}
+
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
+
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
+
+    template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
+
+    template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }
+
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
+
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
+    {
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
+    }
+
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
+    {
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
+    {
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
+    {
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);
+    }
+
+    template<class V> void accept(V & v) const
+    {
+        base_type::accept(v);
+    }
+
+    bool operator==(list1 const & rhs) const
+    {
+        return ref_compare(base_type::a1_, rhs.a1_, 0);
+    }
+};
+
+struct logical_and;
+struct logical_or;
+
+template< class A1, class A2 > class list2: private storage2< A1, A2 >
+{
+private:
+
+    typedef storage2< A1, A2 > base_type;
+
+public:
+
+    list2( A1 a1, A2 a2 ): base_type( a1, a2 ) {}
+
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
+
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
+
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
+
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
+
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
+
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
+    {
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
+    }
+
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
+    {
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
+    {
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
+    {
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
+    }
+
+    template<class A> bool operator()( type<bool>, logical_and & /*f*/, A & a, int )
+    {
+        return a[ base_type::a1_ ] && a[ base_type::a2_ ];
+    }
+
+    template<class A> bool operator()( type<bool>, logical_and const & /*f*/, A & a, int ) const
+    {
+        return a[ base_type::a1_ ] && a[ base_type::a2_ ];
+    }
+
+    template<class A> bool operator()( type<bool>, logical_or & /*f*/, A & a, int )
+    {
+        return a[ base_type::a1_ ] || a[ base_type::a2_ ];
+    }
+
+    template<class A> bool operator()( type<bool>, logical_or const & /*f*/, A & a, int ) const
+    {
+        return a[ base_type::a1_ ] || a[ base_type::a2_ ];
+    }
+
+    template<class V> void accept(V & v) const
+    {
+        base_type::accept(v);
+    }
+
+    bool operator==(list2 const & rhs) const
+    {
+        return ref_compare(base_type::a1_, rhs.a1_, 0) && ref_compare(base_type::a2_, rhs.a2_, 0);
+    }
+};
+
+template< class A1, class A2, class A3 > class list3: private storage3< A1, A2, A3 >
+{
+private:
+
+    typedef storage3< A1, A2, A3 > base_type;
+
+public:
+
+    list3( A1 a1, A2 a2, A3 a3 ): base_type( a1, a2, a3 ) {}
+
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
+    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
+
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
+    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
+
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
+
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
+
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
+
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
+    {
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
+    }
+
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
+    {
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
+    {
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
+    {
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
+    }
+
+    template<class V> void accept(V & v) const
+    {
+        base_type::accept(v);
+    }
+
+    bool operator==(list3 const & rhs) const
+    {
+        return
+            
+            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
+            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
+            ref_compare( base_type::a3_, rhs.a3_, 0 );
+    }
+};
+
+template< class A1, class A2, class A3, class A4 > class list4: private storage4< A1, A2, A3, A4 >
+{
+private:
+
+    typedef storage4< A1, A2, A3, A4 > base_type;
+
+public:
+
+    list4( A1 a1, A2 a2, A3 a3, A4 a4 ): base_type( a1, a2, a3, a4 ) {}
+
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
+    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
+    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
+
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
+    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
+    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
+
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
+
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
+
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
+
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
+    {
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
+    }
+
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
+    {
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
+    {
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
+    {
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
+    }
+
+    template<class V> void accept(V & v) const
+    {
+        base_type::accept(v);
+    }
+
+    bool operator==(list4 const & rhs) const
+    {
+        return
+
+            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
+            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
+            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
+            ref_compare( base_type::a4_, rhs.a4_, 0 );
+    }
+};
+
+template< class A1, class A2, class A3, class A4, class A5 > class list5: private storage5< A1, A2, A3, A4, A5 >
+{
+private:
+
+    typedef storage5< A1, A2, A3, A4, A5 > base_type;
+
+public:
+
+    list5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): base_type( a1, a2, a3, a4, a5 ) {}
+
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
+    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
+    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
+    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
+
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
+    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
+    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
+    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
+
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
+
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
+
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
+
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
+    {
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
+    }
+
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
+    {
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
+    {
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
+    {
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
+    }
+
+    template<class V> void accept(V & v) const
+    {
+        base_type::accept(v);
+    }
+
+    bool operator==(list5 const & rhs) const
+    {
+        return
+
+            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
+            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
+            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
+            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
+            ref_compare( base_type::a5_, rhs.a5_, 0 );
+    }
+};
+
+template<class A1, class A2, class A3, class A4, class A5, class A6> class list6: private storage6< A1, A2, A3, A4, A5, A6 >
+{
+private:
+
+    typedef storage6< A1, A2, A3, A4, A5, A6 > base_type;
+
+public:
+
+    list6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): base_type( a1, a2, a3, a4, a5, a6 ) {}
+
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
+    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
+    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
+    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
+    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
+
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
+    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
+    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
+    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
+    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
+
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
+
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
+
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
+
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
+    {
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
+    }
+
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
+    {
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
+    {
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
+    {
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
+    }
+
+    template<class V> void accept(V & v) const
+    {
+        base_type::accept(v);
+    }
+
+    bool operator==(list6 const & rhs) const
+    {
+        return
+
+            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
+            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
+            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
+            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
+            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
+            ref_compare( base_type::a6_, rhs.a6_, 0 );
+    }
+};
+
+template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> class list7: private storage7< A1, A2, A3, A4, A5, A6, A7 >
+{
+private:
+
+    typedef storage7< A1, A2, A3, A4, A5, A6, A7 > base_type;
+
+public:
+
+    list7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): base_type( a1, a2, a3, a4, a5, a6, a7 ) {}
+
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
+    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
+    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
+    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
+    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
+    A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
+
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
+    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
+    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
+    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
+    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
+    A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
+
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
+
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
+
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
+
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
+    {
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
+    }
+
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
+    {
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
+    {
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
+    {
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
+    }
+
+    template<class V> void accept(V & v) const
+    {
+        base_type::accept(v);
+    }
+
+    bool operator==(list7 const & rhs) const
+    {
+        return
+
+            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
+            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
+            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
+            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
+            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
+            ref_compare( base_type::a6_, rhs.a6_, 0 ) &&
+            ref_compare( base_type::a7_, rhs.a7_, 0 );
+    }
+};
+
+template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class list8: private storage8< A1, A2, A3, A4, A5, A6, A7, A8 >
+{
+private:
+
+    typedef storage8< A1, A2, A3, A4, A5, A6, A7, A8 > base_type;
+
+public:
+
+    list8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8 ) {}
+
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
+    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
+    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
+    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
+    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
+    A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
+    A8 operator[] (boost::arg<8>) const { return base_type::a8_; }
+
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
+    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
+    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
+    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
+    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
+    A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
+    A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; }
+
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
+
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
+
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
+
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
+    {
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
+    }
+
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
+    {
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
+    {
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
+    {
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
+    }
+
+    template<class V> void accept(V & v) const
+    {
+        base_type::accept(v);
+    }
+
+    bool operator==(list8 const & rhs) const
+    {
+        return
+            
+            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
+            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
+            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
+            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
+            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
+            ref_compare( base_type::a6_, rhs.a6_, 0 ) &&
+            ref_compare( base_type::a7_, rhs.a7_, 0 ) &&
+            ref_compare( base_type::a8_, rhs.a8_, 0 );
+    }
+};
+
+template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> class list9: private storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 >
+{
+private:
+
+    typedef storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > base_type;
+
+public:
+
+    list9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) {}
+
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
+    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
+    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
+    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
+    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
+    A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
+    A8 operator[] (boost::arg<8>) const { return base_type::a8_; }
+    A9 operator[] (boost::arg<9>) const { return base_type::a9_; }
+
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
+    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
+    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
+    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
+    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
+    A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
+    A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; }
+    A9 operator[] (boost::arg<9> (*) ()) const { return base_type::a9_; }
+
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
+
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
+
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
+
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
+
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
+    {
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
+    }
+
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
+    {
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
+    {
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
+    }
+
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
+    {
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
+    }
+
+    template<class V> void accept(V & v) const
+    {
+        base_type::accept(v);
+    }
+
+    bool operator==(list9 const & rhs) const
+    {
+        return
+
+            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
+            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
+            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
+            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
+            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
+            ref_compare( base_type::a6_, rhs.a6_, 0 ) &&
+            ref_compare( base_type::a7_, rhs.a7_, 0 ) &&
+            ref_compare( base_type::a8_, rhs.a8_, 0 ) &&
+            ref_compare( base_type::a9_, rhs.a9_, 0 );
+    }
+};
+
+// bind_t
+
+#ifndef BOOST_NO_VOID_RETURNS
+
+template<class R, class F, class L> class bind_t
+{
+public:
+
+    typedef bind_t this_type;
+
+    bind_t(F f, L const & l): f_(f), l_(l) {}
+
+#define BOOST_BIND_RETURN return
+#include <boost/bind/bind_template.hpp>
+#undef BOOST_BIND_RETURN
+
+};
+
+#else
+
+template<class R> struct bind_t_generator
+{
+
+template<class F, class L> class implementation
+{
+public:
+
+    typedef implementation this_type;
+
+    implementation(F f, L const & l): f_(f), l_(l) {}
+
+#define BOOST_BIND_RETURN return
+#include <boost/bind/bind_template.hpp>
+#undef BOOST_BIND_RETURN
+
+};
+
+};
+
+template<> struct bind_t_generator<void>
+{
+
+template<class F, class L> class implementation
+{
+private:
+
+    typedef void R;
+
+public:
+
+    typedef implementation this_type;
+
+    implementation(F f, L const & l): f_(f), l_(l) {}
+
+#define BOOST_BIND_RETURN
+#include <boost/bind/bind_template.hpp>
+#undef BOOST_BIND_RETURN
+
+};
+
+};
+
+template<class R2, class F, class L> class bind_t: public bind_t_generator<R2>::BOOST_NESTED_TEMPLATE implementation<F, L>
+{
+public:
+
+    bind_t(F f, L const & l): bind_t_generator<R2>::BOOST_NESTED_TEMPLATE implementation<F, L>(f, l) {}
+
+};
+
+#endif
+
+// function_equal
+
+#ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+
+// put overloads in _bi, rely on ADL
+
+# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+
+template<class R, class F, class L> bool function_equal( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b )
+{
+    return a.compare(b);
+}
+
+# else
+
+template<class R, class F, class L> bool function_equal_impl( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b, int )
+{
+    return a.compare(b);
+}
+
+# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+
+#else // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+
+// put overloads in boost
+
+} // namespace _bi
+
+# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+
+template<class R, class F, class L> bool function_equal( _bi::bind_t<R, F, L> const & a, _bi::bind_t<R, F, L> const & b )
+{
+    return a.compare(b);
+}
+
+# else
+
+template<class R, class F, class L> bool function_equal_impl( _bi::bind_t<R, F, L> const & a, _bi::bind_t<R, F, L> const & b, int )
+{
+    return a.compare(b);
+}
+
+# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+
+namespace _bi
+{
+
+#endif // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+
+// add_value
+
+#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530)
+
+#if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x582) )
+
+template<class T> struct add_value
+{
+    typedef _bi::value<T> type;
+};
+
+#else
+
+template< class T, int I > struct add_value_2
+{
+    typedef boost::arg<I> type;
+};
+
+template< class T > struct add_value_2< T, 0 >
+{
+    typedef _bi::value< T > type;
+};
+
+template<class T> struct add_value
+{
+    typedef typename add_value_2< T, boost::is_placeholder< T >::value >::type type;
+};
+
+#endif
+
+template<class T> struct add_value< value<T> >
+{
+    typedef _bi::value<T> type;
+};
+
+template<class T> struct add_value< reference_wrapper<T> >
+{
+    typedef reference_wrapper<T> type;
+};
+
+template<int I> struct add_value< arg<I> >
+{
+    typedef boost::arg<I> type;
+};
+
+template<int I> struct add_value< arg<I> (*) () >
+{
+    typedef boost::arg<I> (*type) ();
+};
+
+template<class R, class F, class L> struct add_value< bind_t<R, F, L> >
+{
+    typedef bind_t<R, F, L> type;
+};
+
+#else
+
+template<int I> struct _avt_0;
+
+template<> struct _avt_0<1>
+{
+    template<class T> struct inner
+    {
+        typedef T type;
+    };
+};
+
+template<> struct _avt_0<2>
+{
+    template<class T> struct inner
+    {
+        typedef value<T> type;
+    };
+};
+
+typedef char (&_avt_r1) [1];
+typedef char (&_avt_r2) [2];
+
+template<class T> _avt_r1 _avt_f(value<T>);
+template<class T> _avt_r1 _avt_f(reference_wrapper<T>);
+template<int I> _avt_r1 _avt_f(arg<I>);
+template<int I> _avt_r1 _avt_f(arg<I> (*) ());
+template<class R, class F, class L> _avt_r1 _avt_f(bind_t<R, F, L>);
+
+_avt_r2 _avt_f(...);
+
+template<class T> struct add_value
+{
+    static T t();
+    typedef typename _avt_0<sizeof(_avt_f(t()))>::template inner<T>::type type;
+};
+
+#endif
+
+// list_av_N
+
+template<class A1> struct list_av_1
+{
+    typedef typename add_value<A1>::type B1;
+    typedef list1<B1> type;
+};
+
+template<class A1, class A2> struct list_av_2
+{
+    typedef typename add_value<A1>::type B1;
+    typedef typename add_value<A2>::type B2;
+    typedef list2<B1, B2> type;
+};
+
+template<class A1, class A2, class A3> struct list_av_3
+{
+    typedef typename add_value<A1>::type B1;
+    typedef typename add_value<A2>::type B2;
+    typedef typename add_value<A3>::type B3;
+    typedef list3<B1, B2, B3> type;
+};
+
+template<class A1, class A2, class A3, class A4> struct list_av_4
+{
+    typedef typename add_value<A1>::type B1;
+    typedef typename add_value<A2>::type B2;
+    typedef typename add_value<A3>::type B3;
+    typedef typename add_value<A4>::type B4;
+    typedef list4<B1, B2, B3, B4> type;
+};
+
+template<class A1, class A2, class A3, class A4, class A5> struct list_av_5
+{
+    typedef typename add_value<A1>::type B1;
+    typedef typename add_value<A2>::type B2;
+    typedef typename add_value<A3>::type B3;
+    typedef typename add_value<A4>::type B4;
+    typedef typename add_value<A5>::type B5;
+    typedef list5<B1, B2, B3, B4, B5> type;
+};
+
+template<class A1, class A2, class A3, class A4, class A5, class A6> struct list_av_6
+{
+    typedef typename add_value<A1>::type B1;
+    typedef typename add_value<A2>::type B2;
+    typedef typename add_value<A3>::type B3;
+    typedef typename add_value<A4>::type B4;
+    typedef typename add_value<A5>::type B5;
+    typedef typename add_value<A6>::type B6;
+    typedef list6<B1, B2, B3, B4, B5, B6> type;
+};
+
+template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct list_av_7
+{
+    typedef typename add_value<A1>::type B1;
+    typedef typename add_value<A2>::type B2;
+    typedef typename add_value<A3>::type B3;
+    typedef typename add_value<A4>::type B4;
+    typedef typename add_value<A5>::type B5;
+    typedef typename add_value<A6>::type B6;
+    typedef typename add_value<A7>::type B7;
+    typedef list7<B1, B2, B3, B4, B5, B6, B7> type;
+};
+
+template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct list_av_8
+{
+    typedef typename add_value<A1>::type B1;
+    typedef typename add_value<A2>::type B2;
+    typedef typename add_value<A3>::type B3;
+    typedef typename add_value<A4>::type B4;
+    typedef typename add_value<A5>::type B5;
+    typedef typename add_value<A6>::type B6;
+    typedef typename add_value<A7>::type B7;
+    typedef typename add_value<A8>::type B8;
+    typedef list8<B1, B2, B3, B4, B5, B6, B7, B8> type;
+};
+
+template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> struct list_av_9
+{
+    typedef typename add_value<A1>::type B1;
+    typedef typename add_value<A2>::type B2;
+    typedef typename add_value<A3>::type B3;
+    typedef typename add_value<A4>::type B4;
+    typedef typename add_value<A5>::type B5;
+    typedef typename add_value<A6>::type B6;
+    typedef typename add_value<A7>::type B7;
+    typedef typename add_value<A8>::type B8;
+    typedef typename add_value<A9>::type B9;
+    typedef list9<B1, B2, B3, B4, B5, B6, B7, B8, B9> type;
+};
+
+// operator!
+
+struct logical_not
+{
+    template<class V> bool operator()(V const & v) const { return !v; }
+};
+
+template<class R, class F, class L>
+    bind_t< bool, logical_not, list1< bind_t<R, F, L> > >
+    operator! (bind_t<R, F, L> const & f)
+{
+    typedef list1< bind_t<R, F, L> > list_type;
+    return bind_t<bool, logical_not, list_type> ( logical_not(), list_type(f) );
+}
+
+// relational operators
+
+#define BOOST_BIND_OPERATOR( op, name ) \
+\
+struct name \
+{ \
+    template<class V, class W> bool operator()(V const & v, W const & w) const { return v op w; } \
+}; \
+ \
+template<class R, class F, class L, class A2> \
+    bind_t< bool, name, list2< bind_t<R, F, L>, typename add_value<A2>::type > > \
+    operator op (bind_t<R, F, L> const & f, A2 a2) \
+{ \
+    typedef typename add_value<A2>::type B2; \
+    typedef list2< bind_t<R, F, L>, B2> list_type; \
+    return bind_t<bool, name, list_type> ( name(), list_type(f, a2) ); \
+}
+
+BOOST_BIND_OPERATOR( ==, equal )
+BOOST_BIND_OPERATOR( !=, not_equal )
+
+BOOST_BIND_OPERATOR( <, less )
+BOOST_BIND_OPERATOR( <=, less_equal )
+
+BOOST_BIND_OPERATOR( >, greater )
+BOOST_BIND_OPERATOR( >=, greater_equal )
+
+BOOST_BIND_OPERATOR( &&, logical_and )
+BOOST_BIND_OPERATOR( ||, logical_or )
+
+#undef BOOST_BIND_OPERATOR
+
+#if defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3)
+
+// resolve ambiguity with rel_ops
+
+#define BOOST_BIND_OPERATOR( op, name ) \
+\
+template<class R, class F, class L> \
+    bind_t< bool, name, list2< bind_t<R, F, L>, bind_t<R, F, L> > > \
+    operator op (bind_t<R, F, L> const & f, bind_t<R, F, L> const & g) \
+{ \
+    typedef list2< bind_t<R, F, L>, bind_t<R, F, L> > list_type; \
+    return bind_t<bool, name, list_type> ( name(), list_type(f, g) ); \
+}
+
+BOOST_BIND_OPERATOR( !=, not_equal )
+BOOST_BIND_OPERATOR( <=, less_equal )
+BOOST_BIND_OPERATOR( >, greater )
+BOOST_BIND_OPERATOR( >=, greater_equal )
+
+#endif
+
+// visit_each, ADL
+
+#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) \
+   && !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)
+
+template<class V, class T> void visit_each( V & v, value<T> const & t, int )
+{
+    using boost::visit_each;
+    BOOST_BIND_VISIT_EACH( v, t.get(), 0 );
+}
+
+template<class V, class R, class F, class L> void visit_each( V & v, bind_t<R, F, L> const & t, int )
+{
+    t.accept( v );
+}
+
+#endif
+
+} // namespace _bi
+
+// visit_each, no ADL
+
+#if defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( __BORLANDC__ ) \
+  || (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)
+
+template<class V, class T> void visit_each( V & v, _bi::value<T> const & t, int )
+{
+    BOOST_BIND_VISIT_EACH( v, t.get(), 0 );
+}
+
+template<class V, class R, class F, class L> void visit_each( V & v, _bi::bind_t<R, F, L> const & t, int )
+{
+    t.accept( v );
+}
+
+#endif
+
+// is_bind_expression
+
+template< class T > struct is_bind_expression
+{
+    enum _vt { value = 0 };
+};
+
+#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+
+template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< R, F, L > >
+{
+    enum _vt { value = 1 };
+};
+
+#endif
+
+// bind
+
+#ifndef BOOST_BIND
+#define BOOST_BIND bind
+#endif
+
+// generic function objects
+
+template<class R, class F>
+    _bi::bind_t<R, F, _bi::list0>
+    BOOST_BIND(F f)
+{
+    typedef _bi::list0 list_type;
+    return _bi::bind_t<R, F, list_type> (f, list_type());
+}
+
+template<class R, class F, class A1>
+    _bi::bind_t<R, F, typename _bi::list_av_1<A1>::type>
+    BOOST_BIND(F f, A1 a1)
+{
+    typedef typename _bi::list_av_1<A1>::type list_type;
+    return _bi::bind_t<R, F, list_type> (f, list_type(a1));
+}
+
+template<class R, class F, class A1, class A2>
+    _bi::bind_t<R, F, typename _bi::list_av_2<A1, A2>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2)
+{
+    typedef typename _bi::list_av_2<A1, A2>::type list_type;
+    return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));
+}
+
+template<class R, class F, class A1, class A2, class A3>
+    _bi::bind_t<R, F, typename _bi::list_av_3<A1, A2, A3>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3)
+{
+    typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));
+}
+
+template<class R, class F, class A1, class A2, class A3, class A4>
+    _bi::bind_t<R, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4)
+{
+    typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));
+}
+
+template<class R, class F, class A1, class A2, class A3, class A4, class A5>
+    _bi::bind_t<R, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
+{
+    typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
+}
+
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6>
+    _bi::bind_t<R, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
+{
+    typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
+}
+
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
+    _bi::bind_t<R, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
+{
+    typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
+}
+
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
+    _bi::bind_t<R, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
+{
+    typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
+}
+
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
+    _bi::bind_t<R, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
+{
+    typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
+}
+
+// generic function objects, alternative syntax
+
+template<class R, class F>
+    _bi::bind_t<R, F, _bi::list0>
+    BOOST_BIND(boost::type<R>, F f)
+{
+    typedef _bi::list0 list_type;
+    return _bi::bind_t<R, F, list_type> (f, list_type());
+}
+
+template<class R, class F, class A1>
+    _bi::bind_t<R, F, typename _bi::list_av_1<A1>::type>
+    BOOST_BIND(boost::type<R>, F f, A1 a1)
+{
+    typedef typename _bi::list_av_1<A1>::type list_type;
+    return _bi::bind_t<R, F, list_type> (f, list_type(a1));
+}
+
+template<class R, class F, class A1, class A2>
+    _bi::bind_t<R, F, typename _bi::list_av_2<A1, A2>::type>
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2)
+{
+    typedef typename _bi::list_av_2<A1, A2>::type list_type;
+    return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));
+}
+
+template<class R, class F, class A1, class A2, class A3>
+    _bi::bind_t<R, F, typename _bi::list_av_3<A1, A2, A3>::type>
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3)
+{
+    typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));
+}
+
+template<class R, class F, class A1, class A2, class A3, class A4>
+    _bi::bind_t<R, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4)
+{
+    typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));
+}
+
+template<class R, class F, class A1, class A2, class A3, class A4, class A5>
+    _bi::bind_t<R, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
+{
+    typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
+}
+
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6>
+    _bi::bind_t<R, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
+{
+    typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
+}
+
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
+    _bi::bind_t<R, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
+{
+    typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
+}
+
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
+    _bi::bind_t<R, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
+{
+    typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
+}
+
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
+    _bi::bind_t<R, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
+{
+    typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
+}
+
+#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
+
+// adaptable function objects
+
+template<class F>
+    _bi::bind_t<_bi::unspecified, F, _bi::list0>
+    BOOST_BIND(F f)
+{
+    typedef _bi::list0 list_type;
+    return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type());
+}
+
+template<class F, class A1>
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_1<A1>::type>
+    BOOST_BIND(F f, A1 a1)
+{
+    typedef typename _bi::list_av_1<A1>::type list_type;
+    return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1));
+}
+
+template<class F, class A1, class A2>
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_2<A1, A2>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2)
+{
+    typedef typename _bi::list_av_2<A1, A2>::type list_type;
+    return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1, a2));
+}
+
+template<class F, class A1, class A2, class A3>
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_3<A1, A2, A3>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3)
+{
+    typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
+    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3));
+}
+
+template<class F, class A1, class A2, class A3, class A4>
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4)
+{
+    typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
+    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4));
+}
+
+template<class F, class A1, class A2, class A3, class A4, class A5>
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
+{
+    typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
+    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
+}
+
+template<class F, class A1, class A2, class A3, class A4, class A5, class A6>
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
+{
+    typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
+    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
+}
+
+template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
+{
+    typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
+    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
+}
+
+template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
+{
+    typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
+    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
+}
+
+template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
+{
+    typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
+    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
+}
+
+#endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
+
+// function pointers
+
+#define BOOST_BIND_CC
+#define BOOST_BIND_ST
+
+#include <boost/bind/bind_cc.hpp>
+
+#undef BOOST_BIND_CC
+#undef BOOST_BIND_ST
+
+#ifdef BOOST_BIND_ENABLE_STDCALL
+
+#define BOOST_BIND_CC __stdcall
+#define BOOST_BIND_ST
+
+#include <boost/bind/bind_cc.hpp>
+
+#undef BOOST_BIND_CC
+#undef BOOST_BIND_ST
+
+#endif
+
+#ifdef BOOST_BIND_ENABLE_FASTCALL
+
+#define BOOST_BIND_CC __fastcall
+#define BOOST_BIND_ST
+
+#include <boost/bind/bind_cc.hpp>
+
+#undef BOOST_BIND_CC
+#undef BOOST_BIND_ST
+
+#endif
+
+#ifdef BOOST_BIND_ENABLE_PASCAL
+
+#define BOOST_BIND_ST pascal
+#define BOOST_BIND_CC
+
+#include <boost/bind/bind_cc.hpp>
+
+#undef BOOST_BIND_ST
+#undef BOOST_BIND_CC
+
+#endif
+
+// member function pointers
+
+#define BOOST_BIND_MF_NAME(X) X
+#define BOOST_BIND_MF_CC
+
+#include <boost/bind/bind_mf_cc.hpp>
+#include <boost/bind/bind_mf2_cc.hpp>
+
+#undef BOOST_BIND_MF_NAME
+#undef BOOST_BIND_MF_CC
+
+#ifdef BOOST_MEM_FN_ENABLE_CDECL
+
+#define BOOST_BIND_MF_NAME(X) X##_cdecl
+#define BOOST_BIND_MF_CC __cdecl
+
+#include <boost/bind/bind_mf_cc.hpp>
+#include <boost/bind/bind_mf2_cc.hpp>
+
+#undef BOOST_BIND_MF_NAME
+#undef BOOST_BIND_MF_CC
+
+#endif
+
+#ifdef BOOST_MEM_FN_ENABLE_STDCALL
+
+#define BOOST_BIND_MF_NAME(X) X##_stdcall
+#define BOOST_BIND_MF_CC __stdcall
+
+#include <boost/bind/bind_mf_cc.hpp>
+#include <boost/bind/bind_mf2_cc.hpp>
+
+#undef BOOST_BIND_MF_NAME
+#undef BOOST_BIND_MF_CC
+
+#endif
+
+#ifdef BOOST_MEM_FN_ENABLE_FASTCALL
+
+#define BOOST_BIND_MF_NAME(X) X##_fastcall
+#define BOOST_BIND_MF_CC __fastcall
+
+#include <boost/bind/bind_mf_cc.hpp>
+#include <boost/bind/bind_mf2_cc.hpp>
+
+#undef BOOST_BIND_MF_NAME
+#undef BOOST_BIND_MF_CC
+
+#endif
+
+// data member pointers
+
+#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
+    || ( defined(__BORLANDC__) && BOOST_WORKAROUND( __BORLANDC__, <= 0x610 ) )
+
+template<class R, class T, class A1>
+_bi::bind_t< R, _mfi::dm<R, T>, typename _bi::list_av_1<A1>::type >
+    BOOST_BIND(R T::*f, A1 a1)
+{
+    typedef _mfi::dm<R, T> F;
+    typedef typename _bi::list_av_1<A1>::type list_type;
+    return _bi::bind_t<R, F, list_type>( F(f), list_type(a1) );
+}
+
+#else
+
+namespace _bi
+{
+
+template< class Pm, int I > struct add_cref;
+
+template< class M, class T > struct add_cref< M T::*, 0 >
+{
+    typedef M type;
+};
+
+template< class M, class T > struct add_cref< M T::*, 1 >
+{
+    typedef M const & type;
+};
+
+template< class R, class T > struct add_cref< R (T::*) (), 1 >
+{
+    typedef void type;
+};
+
+#if !( defined(__IBMCPP__) && BOOST_WORKAROUND( __IBMCPP__, BOOST_TESTED_AT(600) ) )
+
+template< class R, class T > struct add_cref< R (T::*) () const, 1 >
+{
+    typedef void type;
+};
+
+#endif // __IBMCPP__
+
+template<class R> struct isref
+{
+    enum value_type { value = 0 };
+};
+
+template<class R> struct isref< R& >
+{
+    enum value_type { value = 1 };
+};
+
+template<class R> struct isref< R* >
+{
+    enum value_type { value = 1 };
+};
+
+template<class Pm, class A1> struct dm_result
+{
+    typedef typename add_cref< Pm, 1 >::type type;
+};
+
+template<class Pm, class R, class F, class L> struct dm_result< Pm, bind_t<R, F, L> >
+{
+    typedef typename bind_t<R, F, L>::result_type result_type;
+    typedef typename add_cref< Pm, isref< result_type >::value >::type type;
+};
+
+} // namespace _bi
+
+template< class A1, class M, class T >
+
+_bi::bind_t<
+    typename _bi::dm_result< M T::*, A1 >::type,
+    _mfi::dm<M, T>,
+    typename _bi::list_av_1<A1>::type
+>
+
+BOOST_BIND( M T::*f, A1 a1 )
+{
+    typedef typename _bi::dm_result< M T::*, A1 >::type result_type;
+    typedef _mfi::dm<M, T> F;
+    typedef typename _bi::list_av_1<A1>::type list_type;
+    return _bi::bind_t< result_type, F, list_type >( F( f ), list_type( a1 ) );
+}
+
+#endif
+
+} // namespace boost
+
+#ifndef BOOST_BIND_NO_PLACEHOLDERS
+
+# include <boost/bind/placeholders.hpp>
+
+#endif
+
+#ifdef BOOST_MSVC
+# pragma warning(default: 4512) // assignment operator could not be generated
+# pragma warning(pop)
+#endif
+
+#endif // #ifndef BOOST_BIND_BIND_HPP_INCLUDED
index 86c61e4bdbed4fc3ef20380c9476110c9f994d82..956e7d88853c6c30ab700086a1df487dec42e8ee 100644 (file)
-#ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED\r
-#define BOOST_BIND_MEM_FN_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  mem_fn.hpp - a generalization of std::mem_fun[_ref]\r
-//\r
-//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.\r
-//  Copyright (c) 2001 David Abrahams\r
-//  Copyright (c) 2003-2005 Peter Dimov\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  See http://www.boost.org/libs/bind/mem_fn.html for documentation.\r
-//\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/get_pointer.hpp>\r
-#include <boost/detail/workaround.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-#if defined(BOOST_NO_VOID_RETURNS)\r
-\r
-#define BOOST_MEM_FN_CLASS_F , class F\r
-#define BOOST_MEM_FN_TYPEDEF(X)\r
-\r
-namespace _mfi // mem_fun_impl\r
-{\r
-\r
-template<class V> struct mf\r
-{\r
-\r
-#define BOOST_MEM_FN_RETURN return\r
-\r
-#define BOOST_MEM_FN_NAME(X) inner_##X\r
-#define BOOST_MEM_FN_CC\r
-\r
-#include <boost/bind/mem_fn_template.hpp>\r
-\r
-#undef BOOST_MEM_FN_CC\r
-#undef BOOST_MEM_FN_NAME\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_CDECL\r
-\r
-#define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl\r
-#define BOOST_MEM_FN_CC __cdecl\r
-\r
-#include <boost/bind/mem_fn_template.hpp>\r
-\r
-#undef BOOST_MEM_FN_CC\r
-#undef BOOST_MEM_FN_NAME\r
-\r
-#endif\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_STDCALL\r
-\r
-#define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall\r
-#define BOOST_MEM_FN_CC __stdcall\r
-\r
-#include <boost/bind/mem_fn_template.hpp>\r
-\r
-#undef BOOST_MEM_FN_CC\r
-#undef BOOST_MEM_FN_NAME\r
-\r
-#endif\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_FASTCALL\r
-\r
-#define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall\r
-#define BOOST_MEM_FN_CC __fastcall\r
-\r
-#include <boost/bind/mem_fn_template.hpp>\r
-\r
-#undef BOOST_MEM_FN_CC\r
-#undef BOOST_MEM_FN_NAME\r
-\r
-#endif\r
-\r
-#undef BOOST_MEM_FN_RETURN\r
-\r
-}; // struct mf<V>\r
-\r
-template<> struct mf<void>\r
-{\r
-\r
-#define BOOST_MEM_FN_RETURN\r
-\r
-#define BOOST_MEM_FN_NAME(X) inner_##X\r
-#define BOOST_MEM_FN_CC\r
-\r
-#include <boost/bind/mem_fn_template.hpp>\r
-\r
-#undef BOOST_MEM_FN_CC\r
-#undef BOOST_MEM_FN_NAME\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_CDECL\r
-\r
-#define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl\r
-#define BOOST_MEM_FN_CC __cdecl\r
-\r
-#include <boost/bind/mem_fn_template.hpp>\r
-\r
-#undef BOOST_MEM_FN_CC\r
-#undef BOOST_MEM_FN_NAME\r
-\r
-#endif\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_STDCALL\r
-\r
-#define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall\r
-#define BOOST_MEM_FN_CC __stdcall\r
-\r
-#include <boost/bind/mem_fn_template.hpp>\r
-\r
-#undef BOOST_MEM_FN_CC\r
-#undef BOOST_MEM_FN_NAME\r
-\r
-#endif\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_FASTCALL\r
-\r
-#define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall\r
-#define BOOST_MEM_FN_CC __fastcall\r
-\r
-#include <boost/bind/mem_fn_template.hpp>\r
-\r
-#undef BOOST_MEM_FN_CC\r
-#undef BOOST_MEM_FN_NAME\r
-\r
-#endif\r
-\r
-#undef BOOST_MEM_FN_RETURN\r
-\r
-}; // struct mf<void>\r
-\r
-#undef BOOST_MEM_FN_CLASS_F\r
-#undef BOOST_MEM_FN_TYPEDEF_F\r
-\r
-#define BOOST_MEM_FN_NAME(X) X\r
-#define BOOST_MEM_FN_NAME2(X) inner_##X\r
-#define BOOST_MEM_FN_CC\r
-\r
-#include <boost/bind/mem_fn_vw.hpp>\r
-\r
-#undef BOOST_MEM_FN_NAME\r
-#undef BOOST_MEM_FN_NAME2\r
-#undef BOOST_MEM_FN_CC\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_CDECL\r
-\r
-#define BOOST_MEM_FN_NAME(X) X##_cdecl\r
-#define BOOST_MEM_FN_NAME2(X) inner_##X##_cdecl\r
-#define BOOST_MEM_FN_CC __cdecl\r
-\r
-#include <boost/bind/mem_fn_vw.hpp>\r
-\r
-#undef BOOST_MEM_FN_NAME\r
-#undef BOOST_MEM_FN_NAME2\r
-#undef BOOST_MEM_FN_CC\r
-\r
-#endif\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_STDCALL\r
-\r
-#define BOOST_MEM_FN_NAME(X) X##_stdcall\r
-#define BOOST_MEM_FN_NAME2(X) inner_##X##_stdcall\r
-#define BOOST_MEM_FN_CC __stdcall\r
-\r
-#include <boost/bind/mem_fn_vw.hpp>\r
-\r
-#undef BOOST_MEM_FN_NAME\r
-#undef BOOST_MEM_FN_NAME2\r
-#undef BOOST_MEM_FN_CC\r
-\r
-#endif\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_FASTCALL\r
-\r
-#define BOOST_MEM_FN_NAME(X) X##_fastcall\r
-#define BOOST_MEM_FN_NAME2(X) inner_##X##_fastcall\r
-#define BOOST_MEM_FN_CC __fastcall\r
-\r
-#include <boost/bind/mem_fn_vw.hpp>\r
-\r
-#undef BOOST_MEM_FN_NAME\r
-#undef BOOST_MEM_FN_NAME2\r
-#undef BOOST_MEM_FN_CC\r
-\r
-#endif\r
-\r
-} // namespace _mfi\r
-\r
-#else // #ifdef BOOST_NO_VOID_RETURNS\r
-\r
-#define BOOST_MEM_FN_CLASS_F\r
-#define BOOST_MEM_FN_TYPEDEF(X) typedef X;\r
-\r
-namespace _mfi\r
-{\r
-\r
-#define BOOST_MEM_FN_RETURN return\r
-\r
-#define BOOST_MEM_FN_NAME(X) X\r
-#define BOOST_MEM_FN_CC\r
-\r
-#include <boost/bind/mem_fn_template.hpp>\r
-\r
-#undef BOOST_MEM_FN_CC\r
-#undef BOOST_MEM_FN_NAME\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_CDECL\r
-\r
-#define BOOST_MEM_FN_NAME(X) X##_cdecl\r
-#define BOOST_MEM_FN_CC __cdecl\r
-\r
-#include <boost/bind/mem_fn_template.hpp>\r
-\r
-#undef BOOST_MEM_FN_CC\r
-#undef BOOST_MEM_FN_NAME\r
-\r
-#endif\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_STDCALL\r
-\r
-#define BOOST_MEM_FN_NAME(X) X##_stdcall\r
-#define BOOST_MEM_FN_CC __stdcall\r
-\r
-#include <boost/bind/mem_fn_template.hpp>\r
-\r
-#undef BOOST_MEM_FN_CC\r
-#undef BOOST_MEM_FN_NAME\r
-\r
-#endif\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_FASTCALL\r
-\r
-#define BOOST_MEM_FN_NAME(X) X##_fastcall\r
-#define BOOST_MEM_FN_CC __fastcall\r
-\r
-#include <boost/bind/mem_fn_template.hpp>\r
-\r
-#undef BOOST_MEM_FN_CC\r
-#undef BOOST_MEM_FN_NAME\r
-\r
-#endif\r
-\r
-#undef BOOST_MEM_FN_RETURN\r
-\r
-} // namespace _mfi\r
-\r
-#undef BOOST_MEM_FN_CLASS_F\r
-#undef BOOST_MEM_FN_TYPEDEF\r
-\r
-#endif // #ifdef BOOST_NO_VOID_RETURNS\r
-\r
-#define BOOST_MEM_FN_NAME(X) X\r
-#define BOOST_MEM_FN_CC\r
-\r
-#include <boost/bind/mem_fn_cc.hpp>\r
-\r
-#undef BOOST_MEM_FN_NAME\r
-#undef BOOST_MEM_FN_CC\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_CDECL\r
-\r
-#define BOOST_MEM_FN_NAME(X) X##_cdecl\r
-#define BOOST_MEM_FN_CC __cdecl\r
-\r
-#include <boost/bind/mem_fn_cc.hpp>\r
-\r
-#undef BOOST_MEM_FN_NAME\r
-#undef BOOST_MEM_FN_CC\r
-\r
-#endif\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_STDCALL\r
-\r
-#define BOOST_MEM_FN_NAME(X) X##_stdcall\r
-#define BOOST_MEM_FN_CC __stdcall\r
-\r
-#include <boost/bind/mem_fn_cc.hpp>\r
-\r
-#undef BOOST_MEM_FN_NAME\r
-#undef BOOST_MEM_FN_CC\r
-\r
-#endif\r
-\r
-#ifdef BOOST_MEM_FN_ENABLE_FASTCALL\r
-\r
-#define BOOST_MEM_FN_NAME(X) X##_fastcall\r
-#define BOOST_MEM_FN_CC __fastcall\r
-\r
-#include <boost/bind/mem_fn_cc.hpp>\r
-\r
-#undef BOOST_MEM_FN_NAME\r
-#undef BOOST_MEM_FN_CC\r
-\r
-#endif\r
-\r
-// data member support\r
-\r
-namespace _mfi\r
-{\r
-\r
-template<class R, class T> class dm\r
-{\r
-public:\r
-\r
-    typedef R const & result_type;\r
-    typedef T const * argument_type;\r
-\r
-private:\r
-    \r
-    typedef R (T::*F);\r
-    F f_;\r
-\r
-    template<class U> R const & call(U & u, T const *) const\r
-    {\r
-        return (u.*f_);\r
-    }\r
-\r
-    template<class U> R const & call(U & u, void const *) const\r
-    {\r
-        return (get_pointer(u)->*f_);\r
-    }\r
-\r
-public:\r
-    \r
-    explicit dm(F f): f_(f) {}\r
-\r
-    R & operator()(T * p) const\r
-    {\r
-        return (p->*f_);\r
-    }\r
-\r
-    R const & operator()(T const * p) const\r
-    {\r
-        return (p->*f_);\r
-    }\r
-\r
-    template<class U> R const & operator()(U const & u) const\r
-    {\r
-        return call(u, &u);\r
-    }\r
-\r
-#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) && !BOOST_WORKAROUND(__MWERKS__, < 0x3200)\r
-\r
-    R & operator()(T & t) const\r
-    {\r
-        return (t.*f_);\r
-    }\r
-\r
-    R const & operator()(T const & t) const\r
-    {\r
-        return (t.*f_);\r
-    }\r
-\r
-#endif\r
-\r
-    bool operator==(dm const & rhs) const\r
-    {\r
-        return f_ == rhs.f_;\r
-    }\r
-\r
-    bool operator!=(dm const & rhs) const\r
-    {\r
-        return f_ != rhs.f_;\r
-    }\r
-};\r
-\r
-} // namespace _mfi\r
-\r
-template<class R, class T> _mfi::dm<R, T> mem_fn(R T::*f)\r
-{\r
-    return _mfi::dm<R, T>(f);\r
-}\r
-\r
-} // namespace boost\r
-\r
-#endif // #ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED\r
+#ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED
+#define BOOST_BIND_MEM_FN_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  mem_fn.hpp - a generalization of std::mem_fun[_ref]
+//
+//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
+//  Copyright (c) 2001 David Abrahams
+//  Copyright (c) 2003-2005 Peter Dimov
+//
+// 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/bind/mem_fn.html for documentation.
+//
+
+#include <boost/config.hpp>
+#include <boost/get_pointer.hpp>
+#include <boost/detail/workaround.hpp>
+
+namespace boost
+{
+
+#if defined(BOOST_NO_VOID_RETURNS)
+
+#define BOOST_MEM_FN_CLASS_F , class F
+#define BOOST_MEM_FN_TYPEDEF(X)
+
+namespace _mfi // mem_fun_impl
+{
+
+template<class V> struct mf
+{
+
+#define BOOST_MEM_FN_RETURN return
+
+#define BOOST_MEM_FN_NAME(X) inner_##X
+#define BOOST_MEM_FN_CC
+
+#include <boost/bind/mem_fn_template.hpp>
+
+#undef BOOST_MEM_FN_CC
+#undef BOOST_MEM_FN_NAME
+
+#ifdef BOOST_MEM_FN_ENABLE_CDECL
+
+#define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl
+#define BOOST_MEM_FN_CC __cdecl
+
+#include <boost/bind/mem_fn_template.hpp>
+
+#undef BOOST_MEM_FN_CC
+#undef BOOST_MEM_FN_NAME
+
+#endif
+
+#ifdef BOOST_MEM_FN_ENABLE_STDCALL
+
+#define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall
+#define BOOST_MEM_FN_CC __stdcall
+
+#include <boost/bind/mem_fn_template.hpp>
+
+#undef BOOST_MEM_FN_CC
+#undef BOOST_MEM_FN_NAME
+
+#endif
+
+#ifdef BOOST_MEM_FN_ENABLE_FASTCALL
+
+#define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall
+#define BOOST_MEM_FN_CC __fastcall
+
+#include <boost/bind/mem_fn_template.hpp>
+
+#undef BOOST_MEM_FN_CC
+#undef BOOST_MEM_FN_NAME
+
+#endif
+
+#undef BOOST_MEM_FN_RETURN
+
+}; // struct mf<V>
+
+template<> struct mf<void>
+{
+
+#define BOOST_MEM_FN_RETURN
+
+#define BOOST_MEM_FN_NAME(X) inner_##X
+#define BOOST_MEM_FN_CC
+
+#include <boost/bind/mem_fn_template.hpp>
+
+#undef BOOST_MEM_FN_CC
+#undef BOOST_MEM_FN_NAME
+
+#ifdef BOOST_MEM_FN_ENABLE_CDECL
+
+#define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl
+#define BOOST_MEM_FN_CC __cdecl
+
+#include <boost/bind/mem_fn_template.hpp>
+
+#undef BOOST_MEM_FN_CC
+#undef BOOST_MEM_FN_NAME
+
+#endif
+
+#ifdef BOOST_MEM_FN_ENABLE_STDCALL
+
+#define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall
+#define BOOST_MEM_FN_CC __stdcall
+
+#include <boost/bind/mem_fn_template.hpp>
+
+#undef BOOST_MEM_FN_CC
+#undef BOOST_MEM_FN_NAME
+
+#endif
+
+#ifdef BOOST_MEM_FN_ENABLE_FASTCALL
+
+#define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall
+#define BOOST_MEM_FN_CC __fastcall
+
+#include <boost/bind/mem_fn_template.hpp>
+
+#undef BOOST_MEM_FN_CC
+#undef BOOST_MEM_FN_NAME
+
+#endif
+
+#undef BOOST_MEM_FN_RETURN
+
+}; // struct mf<void>
+
+#undef BOOST_MEM_FN_CLASS_F
+#undef BOOST_MEM_FN_TYPEDEF_F
+
+#define BOOST_MEM_FN_NAME(X) X
+#define BOOST_MEM_FN_NAME2(X) inner_##X
+#define BOOST_MEM_FN_CC
+
+#include <boost/bind/mem_fn_vw.hpp>
+
+#undef BOOST_MEM_FN_NAME
+#undef BOOST_MEM_FN_NAME2
+#undef BOOST_MEM_FN_CC
+
+#ifdef BOOST_MEM_FN_ENABLE_CDECL
+
+#define BOOST_MEM_FN_NAME(X) X##_cdecl
+#define BOOST_MEM_FN_NAME2(X) inner_##X##_cdecl
+#define BOOST_MEM_FN_CC __cdecl
+
+#include <boost/bind/mem_fn_vw.hpp>
+
+#undef BOOST_MEM_FN_NAME
+#undef BOOST_MEM_FN_NAME2
+#undef BOOST_MEM_FN_CC
+
+#endif
+
+#ifdef BOOST_MEM_FN_ENABLE_STDCALL
+
+#define BOOST_MEM_FN_NAME(X) X##_stdcall
+#define BOOST_MEM_FN_NAME2(X) inner_##X##_stdcall
+#define BOOST_MEM_FN_CC __stdcall
+
+#include <boost/bind/mem_fn_vw.hpp>
+
+#undef BOOST_MEM_FN_NAME
+#undef BOOST_MEM_FN_NAME2
+#undef BOOST_MEM_FN_CC
+
+#endif
+
+#ifdef BOOST_MEM_FN_ENABLE_FASTCALL
+
+#define BOOST_MEM_FN_NAME(X) X##_fastcall
+#define BOOST_MEM_FN_NAME2(X) inner_##X##_fastcall
+#define BOOST_MEM_FN_CC __fastcall
+
+#include <boost/bind/mem_fn_vw.hpp>
+
+#undef BOOST_MEM_FN_NAME
+#undef BOOST_MEM_FN_NAME2
+#undef BOOST_MEM_FN_CC
+
+#endif
+
+} // namespace _mfi
+
+#else // #ifdef BOOST_NO_VOID_RETURNS
+
+#define BOOST_MEM_FN_CLASS_F
+#define BOOST_MEM_FN_TYPEDEF(X) typedef X;
+
+namespace _mfi
+{
+
+#define BOOST_MEM_FN_RETURN return
+
+#define BOOST_MEM_FN_NAME(X) X
+#define BOOST_MEM_FN_CC
+
+#include <boost/bind/mem_fn_template.hpp>
+
+#undef BOOST_MEM_FN_CC
+#undef BOOST_MEM_FN_NAME
+
+#ifdef BOOST_MEM_FN_ENABLE_CDECL
+
+#define BOOST_MEM_FN_NAME(X) X##_cdecl
+#define BOOST_MEM_FN_CC __cdecl
+
+#include <boost/bind/mem_fn_template.hpp>
+
+#undef BOOST_MEM_FN_CC
+#undef BOOST_MEM_FN_NAME
+
+#endif
+
+#ifdef BOOST_MEM_FN_ENABLE_STDCALL
+
+#define BOOST_MEM_FN_NAME(X) X##_stdcall
+#define BOOST_MEM_FN_CC __stdcall
+
+#include <boost/bind/mem_fn_template.hpp>
+
+#undef BOOST_MEM_FN_CC
+#undef BOOST_MEM_FN_NAME
+
+#endif
+
+#ifdef BOOST_MEM_FN_ENABLE_FASTCALL
+
+#define BOOST_MEM_FN_NAME(X) X##_fastcall
+#define BOOST_MEM_FN_CC __fastcall
+
+#include <boost/bind/mem_fn_template.hpp>
+
+#undef BOOST_MEM_FN_CC
+#undef BOOST_MEM_FN_NAME
+
+#endif
+
+#undef BOOST_MEM_FN_RETURN
+
+} // namespace _mfi
+
+#undef BOOST_MEM_FN_CLASS_F
+#undef BOOST_MEM_FN_TYPEDEF
+
+#endif // #ifdef BOOST_NO_VOID_RETURNS
+
+#define BOOST_MEM_FN_NAME(X) X
+#define BOOST_MEM_FN_CC
+
+#include <boost/bind/mem_fn_cc.hpp>
+
+#undef BOOST_MEM_FN_NAME
+#undef BOOST_MEM_FN_CC
+
+#ifdef BOOST_MEM_FN_ENABLE_CDECL
+
+#define BOOST_MEM_FN_NAME(X) X##_cdecl
+#define BOOST_MEM_FN_CC __cdecl
+
+#include <boost/bind/mem_fn_cc.hpp>
+
+#undef BOOST_MEM_FN_NAME
+#undef BOOST_MEM_FN_CC
+
+#endif
+
+#ifdef BOOST_MEM_FN_ENABLE_STDCALL
+
+#define BOOST_MEM_FN_NAME(X) X##_stdcall
+#define BOOST_MEM_FN_CC __stdcall
+
+#include <boost/bind/mem_fn_cc.hpp>
+
+#undef BOOST_MEM_FN_NAME
+#undef BOOST_MEM_FN_CC
+
+#endif
+
+#ifdef BOOST_MEM_FN_ENABLE_FASTCALL
+
+#define BOOST_MEM_FN_NAME(X) X##_fastcall
+#define BOOST_MEM_FN_CC __fastcall
+
+#include <boost/bind/mem_fn_cc.hpp>
+
+#undef BOOST_MEM_FN_NAME
+#undef BOOST_MEM_FN_CC
+
+#endif
+
+// data member support
+
+namespace _mfi
+{
+
+template<class R, class T> class dm
+{
+public:
+
+    typedef R const & result_type;
+    typedef T const * argument_type;
+
+private:
+    
+    typedef R (T::*F);
+    F f_;
+
+    template<class U> R const & call(U & u, T const *) const
+    {
+        return (u.*f_);
+    }
+
+    template<class U> R const & call(U & u, void const *) const
+    {
+        return (get_pointer(u)->*f_);
+    }
+
+public:
+    
+    explicit dm(F f): f_(f) {}
+
+    R & operator()(T * p) const
+    {
+        return (p->*f_);
+    }
+
+    R const & operator()(T const * p) const
+    {
+        return (p->*f_);
+    }
+
+    template<class U> R const & operator()(U const & u) const
+    {
+        return call(u, &u);
+    }
+
+#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) && !BOOST_WORKAROUND(__MWERKS__, < 0x3200)
+
+    R & operator()(T & t) const
+    {
+        return (t.*f_);
+    }
+
+    R const & operator()(T const & t) const
+    {
+        return (t.*f_);
+    }
+
+#endif
+
+    bool operator==(dm const & rhs) const
+    {
+        return f_ == rhs.f_;
+    }
+
+    bool operator!=(dm const & rhs) const
+    {
+        return f_ != rhs.f_;
+    }
+};
+
+} // namespace _mfi
+
+template<class R, class T> _mfi::dm<R, T> mem_fn(R T::*f)
+{
+    return _mfi::dm<R, T>(f);
+}
+
+} // namespace boost
+
+#endif // #ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED
index 4208b51fb3a28dd82ffc58b1bdbade7b1784b197..3915cd54f95a12e94519efdffd1835047eccbf73 100644 (file)
-//  (C) Copyright John Maddock 2001 - 2003.\r
-//  (C) Copyright David Abrahams 2002 - 2003.\r
-//  (C) Copyright Aleksey Gurtovoy 2002.\r
-//  Use, modification and distribution are subject to the\r
-//  Boost Software License, Version 1.0. (See accompanying file\r
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-//  See http://www.boost.org for most recent version.\r
-\r
-//  CodeGear C++ compiler setup:\r
-\r
-#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )\r
-// these warnings occur frequently in optimized template code\r
-# pragma warn -8004 // var assigned value, but never used\r
-# pragma warn -8008 // condition always true/false\r
-# pragma warn -8066 // dead code can never execute\r
-# pragma warn -8104 // static members with ctors not threadsafe\r
-# pragma warn -8105 // reference member in class without ctors\r
-#endif\r
-//\r
-// versions check:\r
-// last known and checked version is 0x610\r
-#if (__CODEGEARC__ > 0x613)\r
-#  if defined(BOOST_ASSERT_CONFIG)\r
-#     error "Unknown compiler version - please run the configure tests and report the results"\r
-#  else\r
-#     pragma message( "Unknown compiler version - please run the configure tests and report the results")\r
-#  endif\r
-#endif\r
-\r
-// CodeGear C++ Builder 2009\r
-#if (__CODEGEARC__ <= 0x613)\r
-#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL\r
-#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS\r
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS\r
-#  define BOOST_NO_PRIVATE_IN_AGGREGATE\r
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP\r
-#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE\r
-#  define BOOST_NO_USING_TEMPLATE\r
-   // we shouldn't really need this - but too many things choke\r
-   // without it, this needs more investigation:\r
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS\r
-#  define BOOST_NO_TYPENAME_WITH_CTOR    // Cannot use typename keyword when making temporaries of a dependant type\r
-#  define BOOST_NO_NESTED_FRIENDSHIP     // TC1 gives nested classes access rights as any other member\r
-#  define BOOST_SP_NO_SP_CONVERTIBLE\r
-\r
-// Temporary hack, until specific MPL preprocessed headers are generated\r
-#  define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS\r
-\r
-#  ifdef NDEBUG\r
-      // fix broken <cstring> so that Boost.test works:\r
-#     include <cstring>\r
-#     undef strcmp\r
-#  endif\r
-   // fix broken errno declaration:\r
-#  include <errno.h>\r
-#  ifndef errno\r
-#     define errno errno\r
-#  endif\r
-\r
-#endif\r
-\r
-//\r
-// C++0x macros:\r
-//\r
-#define BOOST_HAS_CHAR16_T\r
-#define BOOST_HAS_CHAR32_T\r
-#define BOOST_HAS_LONG_LONG\r
-// #define BOOST_HAS_ALIGNOF\r
-#define BOOST_HAS_DECLTYPE\r
-#define BOOST_HAS_EXPLICIT_CONVERSION_OPS\r
-// #define BOOST_HAS_RVALUE_REFS\r
-#define BOOST_HAS_SCOPED_ENUM\r
-// #define BOOST_HAS_STATIC_ASSERT\r
-#define BOOST_HAS_STD_TYPE_TRAITS\r
-\r
-#define BOOST_NO_AUTO_DECLARATIONS\r
-#define BOOST_NO_AUTO_MULTIDECLARATIONS\r
-#define BOOST_NO_CONCEPTS\r
-#define BOOST_NO_CONSTEXPR\r
-#define BOOST_NO_DEFAULTED_FUNCTIONS\r
-#define BOOST_NO_DELETED_FUNCTIONS\r
-#define BOOST_NO_EXTERN_TEMPLATE\r
-#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS\r
-#define BOOST_NO_INITIALIZER_LISTS\r
-#define BOOST_NO_LAMBDAS\r
-#define BOOST_NO_NULLPTR\r
-#define BOOST_NO_RAW_LITERALS\r
-#define BOOST_NO_RVALUE_REFERENCES\r
-#define BOOST_NO_SFINAE_EXPR\r
-#define BOOST_NO_STATIC_ASSERT\r
-#define BOOST_NO_TEMPLATE_ALIASES\r
-#define BOOST_NO_UNICODE_LITERALS\r
-#define BOOST_NO_VARIADIC_TEMPLATES\r
-\r
-//\r
-// TR1 macros:\r
-//\r
-#define BOOST_HAS_TR1_HASH\r
-#define BOOST_HAS_TR1_TYPE_TRAITS\r
-#define BOOST_HAS_TR1_UNORDERED_MAP\r
-#define BOOST_HAS_TR1_UNORDERED_SET\r
-\r
-#define BOOST_HAS_MACRO_USE_FACET\r
-\r
-#define BOOST_NO_INITIALIZER_LISTS\r
-\r
-// On non-Win32 platforms let the platform config figure this out:\r
-#ifdef _WIN32\r
-#  define BOOST_HAS_STDINT_H\r
-#endif\r
-\r
-//\r
-// __int64:\r
-//\r
-#if !defined(__STRICT_ANSI__)\r
-#  define BOOST_HAS_MS_INT64\r
-#endif\r
-//\r
-// check for exception handling support:\r
-//\r
-#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS)\r
-#  define BOOST_NO_EXCEPTIONS\r
-#endif\r
-//\r
-// all versions have a <dirent.h>:\r
-//\r
-#if !defined(__STRICT_ANSI__)\r
-#  define BOOST_HAS_DIRENT_H\r
-#endif\r
-//\r
-// all versions support __declspec:\r
-//\r
-#if !defined(__STRICT_ANSI__)\r
-#  define BOOST_HAS_DECLSPEC\r
-#endif\r
-//\r
-// ABI fixing headers:\r
-//\r
-#ifndef BOOST_ABI_PREFIX\r
-#  define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"\r
-#endif\r
-#ifndef BOOST_ABI_SUFFIX\r
-#  define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"\r
-#endif\r
-//\r
-// Disable Win32 support in ANSI mode:\r
-//\r
-#  pragma defineonoption BOOST_DISABLE_WIN32 -A\r
-//\r
-// MSVC compatibility mode does some nasty things:\r
-// TODO: look up if this doesn't apply to the whole 12xx range\r
-//\r
-#if defined(_MSC_VER) && (_MSC_VER <= 1200)\r
-#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP\r
-#  define BOOST_NO_VOID_RETURNS\r
-#endif\r
-\r
-#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)\r
-\r
+//  (C) Copyright John Maddock 2001 - 2003.
+//  (C) Copyright David Abrahams 2002 - 2003.
+//  (C) Copyright Aleksey Gurtovoy 2002.
+//  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 for most recent version.
+
+//  CodeGear C++ compiler setup:
+
+#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )
+// these warnings occur frequently in optimized template code
+# pragma warn -8004 // var assigned value, but never used
+# pragma warn -8008 // condition always true/false
+# pragma warn -8066 // dead code can never execute
+# pragma warn -8104 // static members with ctors not threadsafe
+# pragma warn -8105 // reference member in class without ctors
+#endif
+//
+// versions check:
+// last known and checked version is 0x610
+#if (__CODEGEARC__ > 0x613)
+#  if defined(BOOST_ASSERT_CONFIG)
+#     error "Unknown compiler version - please run the configure tests and report the results"
+#  else
+#     pragma message( "Unknown compiler version - please run the configure tests and report the results")
+#  endif
+#endif
+
+// CodeGear C++ Builder 2009
+#if (__CODEGEARC__ <= 0x613)
+#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#  define BOOST_NO_PRIVATE_IN_AGGREGATE
+#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#  define BOOST_NO_USING_TEMPLATE
+   // we shouldn't really need this - but too many things choke
+   // without it, this needs more investigation:
+#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#  define BOOST_NO_TYPENAME_WITH_CTOR    // Cannot use typename keyword when making temporaries of a dependant type
+#  define BOOST_NO_NESTED_FRIENDSHIP     // TC1 gives nested classes access rights as any other member
+#  define BOOST_SP_NO_SP_CONVERTIBLE
+
+// Temporary hack, until specific MPL preprocessed headers are generated
+#  define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+
+#  ifdef NDEBUG
+      // fix broken <cstring> so that Boost.test works:
+#     include <cstring>
+#     undef strcmp
+#  endif
+   // fix broken errno declaration:
+#  include <errno.h>
+#  ifndef errno
+#     define errno errno
+#  endif
+
+#endif
+
+//
+// C++0x macros:
+//
+#define BOOST_HAS_CHAR16_T
+#define BOOST_HAS_CHAR32_T
+#define BOOST_HAS_LONG_LONG
+// #define BOOST_HAS_ALIGNOF
+#define BOOST_HAS_DECLTYPE
+#define BOOST_HAS_EXPLICIT_CONVERSION_OPS
+// #define BOOST_HAS_RVALUE_REFS
+#define BOOST_HAS_SCOPED_ENUM
+// #define BOOST_HAS_STATIC_ASSERT
+#define BOOST_HAS_STD_TYPE_TRAITS
+
+#define BOOST_NO_AUTO_DECLARATIONS
+#define BOOST_NO_AUTO_MULTIDECLARATIONS
+#define BOOST_NO_CONCEPTS
+#define BOOST_NO_CONSTEXPR
+#define BOOST_NO_DEFAULTED_FUNCTIONS
+#define BOOST_NO_DELETED_FUNCTIONS
+#define BOOST_NO_EXTERN_TEMPLATE
+#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define BOOST_NO_INITIALIZER_LISTS
+#define BOOST_NO_LAMBDAS
+#define BOOST_NO_NULLPTR
+#define BOOST_NO_RAW_LITERALS
+#define BOOST_NO_RVALUE_REFERENCES
+#define BOOST_NO_SFINAE_EXPR
+#define BOOST_NO_STATIC_ASSERT
+#define BOOST_NO_TEMPLATE_ALIASES
+#define BOOST_NO_UNICODE_LITERALS
+#define BOOST_NO_VARIADIC_TEMPLATES
+
+//
+// TR1 macros:
+//
+#define BOOST_HAS_TR1_HASH
+#define BOOST_HAS_TR1_TYPE_TRAITS
+#define BOOST_HAS_TR1_UNORDERED_MAP
+#define BOOST_HAS_TR1_UNORDERED_SET
+
+#define BOOST_HAS_MACRO_USE_FACET
+
+#define BOOST_NO_INITIALIZER_LISTS
+
+// On non-Win32 platforms let the platform config figure this out:
+#ifdef _WIN32
+#  define BOOST_HAS_STDINT_H
+#endif
+
+//
+// __int64:
+//
+#if !defined(__STRICT_ANSI__)
+#  define BOOST_HAS_MS_INT64
+#endif
+//
+// check for exception handling support:
+//
+#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS)
+#  define BOOST_NO_EXCEPTIONS
+#endif
+//
+// all versions have a <dirent.h>:
+//
+#if !defined(__STRICT_ANSI__)
+#  define BOOST_HAS_DIRENT_H
+#endif
+//
+// all versions support __declspec:
+//
+#if !defined(__STRICT_ANSI__)
+#  define BOOST_HAS_DECLSPEC
+#endif
+//
+// ABI fixing headers:
+//
+#ifndef BOOST_ABI_PREFIX
+#  define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
+#endif
+#ifndef BOOST_ABI_SUFFIX
+#  define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
+#endif
+//
+// Disable Win32 support in ANSI mode:
+//
+#  pragma defineonoption BOOST_DISABLE_WIN32 -A
+//
+// MSVC compatibility mode does some nasty things:
+// TODO: look up if this doesn't apply to the whole 12xx range
+//
+#if defined(_MSC_VER) && (_MSC_VER <= 1200)
+#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#  define BOOST_NO_VOID_RETURNS
+#endif
+
+#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)
+
index 47b23beb1a47ae95c8acc307df01edae8cbf9b53..a01b4c28ec48231c517a132b8a409cba77d835d6 100644 (file)
@@ -1,93 +1,93 @@
-//  Copyright (C) Christof Meerwald 2003\r
-//  Copyright (C) Dan Watkins 2003\r
-//\r
-//  Use, modification and distribution are subject to the \r
-//  Boost Software License, Version 1.0. (See accompanying file \r
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-//  Digital Mars C++ compiler setup:\r
-#define BOOST_COMPILER __DMC_VERSION_STRING__\r
-\r
-#define BOOST_HAS_LONG_LONG\r
-#define BOOST_HAS_PRAGMA_ONCE\r
-\r
-#if (__DMC__ <= 0x833)\r
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL\r
-#define BOOST_NO_TEMPLATE_TEMPLATES\r
-#define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING\r
-#define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS\r
-#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS\r
-#endif\r
-#if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG)\r
-#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS\r
-#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS\r
-#define BOOST_NO_OPERATORS_IN_NAMESPACE\r
-#define BOOST_NO_UNREACHABLE_RETURN_DETECTION\r
-#define BOOST_NO_SFINAE\r
-#define BOOST_NO_USING_TEMPLATE\r
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL\r
-#endif\r
-\r
-//\r
-// has macros:\r
-#if (__DMC__ >= 0x840)\r
-#define BOOST_HAS_DIRENT_H\r
-#define BOOST_HAS_STDINT_H\r
-#define BOOST_HAS_WINTHREADS\r
-#endif\r
-\r
-#if (__DMC__ >= 0x847)\r
-#define BOOST_HAS_EXPM1\r
-#define BOOST_HAS_LOG1P\r
-#endif\r
-\r
-//\r
-// Is this really the best way to detect whether the std lib is in namespace std?\r
-//\r
-#include <cstddef>\r
-#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)\r
-#  define BOOST_NO_STDC_NAMESPACE\r
-#endif\r
-\r
-\r
-// check for exception handling support:\r
-#ifndef _CPPUNWIND\r
-#  define BOOST_NO_EXCEPTIONS\r
-#endif\r
-\r
-//\r
-// C++0x features\r
-//\r
-#define BOOST_NO_AUTO_DECLARATIONS\r
-#define BOOST_NO_AUTO_MULTIDECLARATIONS\r
-#define BOOST_NO_CHAR16_T\r
-#define BOOST_NO_CHAR32_T\r
-#define BOOST_NO_CONCEPTS\r
-#define BOOST_NO_CONSTEXPR\r
-#define BOOST_NO_DECLTYPE\r
-#define BOOST_NO_DEFAULTED_FUNCTIONS\r
-#define BOOST_NO_DELETED_FUNCTIONS\r
-#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS\r
-#define BOOST_NO_EXTERN_TEMPLATE\r
-#define BOOST_NO_INITIALIZER_LISTS\r
-#define BOOST_NO_LAMBDAS\r
-#define BOOST_NO_NULLPTR\r
-#define BOOST_NO_RAW_LITERALS\r
-#define BOOST_NO_RVALUE_REFERENCES\r
-#define BOOST_NO_SCOPED_ENUMS\r
-#define BOOST_NO_SFINAE_EXPR\r
-#define BOOST_NO_STATIC_ASSERT\r
-#define BOOST_NO_TEMPLATE_ALIASES\r
-#define BOOST_NO_UNICODE_LITERALS\r
-#define BOOST_NO_VARIADIC_TEMPLATES\r
-\r
-#if __DMC__ < 0x800\r
-#error "Compiler not supported or configured - please reconfigure"\r
-#endif\r
-//\r
-// last known and checked version is ...:\r
-#if (__DMC__ > 0x848)\r
-#  if defined(BOOST_ASSERT_CONFIG)\r
-#     error "Unknown compiler version - please run the configure tests and report the results"\r
-#  endif\r
-#endif\r
+//  Copyright (C) Christof Meerwald 2003
+//  Copyright (C) Dan Watkins 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)
+
+//  Digital Mars C++ compiler setup:
+#define BOOST_COMPILER __DMC_VERSION_STRING__
+
+#define BOOST_HAS_LONG_LONG
+#define BOOST_HAS_PRAGMA_ONCE
+
+#if (__DMC__ <= 0x833)
+#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#define BOOST_NO_TEMPLATE_TEMPLATES
+#define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
+#define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#endif
+#if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG)
+#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#define BOOST_NO_OPERATORS_IN_NAMESPACE
+#define BOOST_NO_UNREACHABLE_RETURN_DETECTION
+#define BOOST_NO_SFINAE
+#define BOOST_NO_USING_TEMPLATE
+#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#endif
+
+//
+// has macros:
+#if (__DMC__ >= 0x840)
+#define BOOST_HAS_DIRENT_H
+#define BOOST_HAS_STDINT_H
+#define BOOST_HAS_WINTHREADS
+#endif
+
+#if (__DMC__ >= 0x847)
+#define BOOST_HAS_EXPM1
+#define BOOST_HAS_LOG1P
+#endif
+
+//
+// Is this really the best way to detect whether the std lib is in namespace std?
+//
+#include <cstddef>
+#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
+#  define BOOST_NO_STDC_NAMESPACE
+#endif
+
+
+// check for exception handling support:
+#ifndef _CPPUNWIND
+#  define BOOST_NO_EXCEPTIONS
+#endif
+
+//
+// C++0x features
+//
+#define BOOST_NO_AUTO_DECLARATIONS
+#define BOOST_NO_AUTO_MULTIDECLARATIONS
+#define BOOST_NO_CHAR16_T
+#define BOOST_NO_CHAR32_T
+#define BOOST_NO_CONCEPTS
+#define BOOST_NO_CONSTEXPR
+#define BOOST_NO_DECLTYPE
+#define BOOST_NO_DEFAULTED_FUNCTIONS
+#define BOOST_NO_DELETED_FUNCTIONS
+#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+#define BOOST_NO_EXTERN_TEMPLATE
+#define BOOST_NO_INITIALIZER_LISTS
+#define BOOST_NO_LAMBDAS
+#define BOOST_NO_NULLPTR
+#define BOOST_NO_RAW_LITERALS
+#define BOOST_NO_RVALUE_REFERENCES
+#define BOOST_NO_SCOPED_ENUMS
+#define BOOST_NO_SFINAE_EXPR
+#define BOOST_NO_STATIC_ASSERT
+#define BOOST_NO_TEMPLATE_ALIASES
+#define BOOST_NO_UNICODE_LITERALS
+#define BOOST_NO_VARIADIC_TEMPLATES
+
+#if __DMC__ < 0x800
+#error "Compiler not supported or configured - please reconfigure"
+#endif
+//
+// last known and checked version is ...:
+#if (__DMC__ > 0x848)
+#  if defined(BOOST_ASSERT_CONFIG)
+#     error "Unknown compiler version - please run the configure tests and report the results"
+#  endif
+#endif
index 76954a9f7603b352aff0cef1852bf191a9b00e87..5dd67c760402aa46a30ff5fbf628e71ca0e3a7c0 100644 (file)
@@ -1,30 +1,30 @@
-//  (C) Copyright John Maddock 2006. \r
-//  Use, modification and distribution are subject to the \r
-//  Boost Software License, Version 1.0. (See accompanying file \r
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-//  See http://www.boost.org for most recent version.\r
-\r
-//  GCC-XML C++ compiler setup:\r
-\r
-#  if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3))\r
-#     define BOOST_NO_IS_ABSTRACT\r
-#  endif\r
-\r
-//\r
-// Threading support: Turn this on unconditionally here (except for\r
-// those platforms where we can know for sure). It will get turned off again\r
-// later if no threading API is detected.\r
-//\r
-#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)\r
-# define BOOST_HAS_THREADS\r
-#endif \r
-\r
-//\r
-// gcc has "long long"\r
-//\r
-#define BOOST_HAS_LONG_LONG\r
-\r
-#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__\r
-\r
-\r
+//  (C) Copyright John Maddock 2006. 
+//  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 for most recent version.
+
+//  GCC-XML C++ compiler setup:
+
+#  if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3))
+#     define BOOST_NO_IS_ABSTRACT
+#  endif
+
+//
+// Threading support: Turn this on unconditionally here (except for
+// those platforms where we can know for sure). It will get turned off again
+// later if no threading API is detected.
+//
+#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
+# define BOOST_HAS_THREADS
+#endif 
+
+//
+// gcc has "long long"
+//
+#define BOOST_HAS_LONG_LONG
+
+#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
+
+
index 86c65b411a4ba193901e6f3c3d9f42dd9d083b01..e40553efc04e18d3775f64cdbcbcdd9baaa82628 100644 (file)
@@ -1,62 +1,62 @@
-//  (C) Copyright Noel Belcourt 2007.\r
-//  Use, modification and distribution are subject to the \r
-//  Boost Software License, Version 1.0. (See accompanying file \r
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-//  See http://www.boost.org for most recent version.\r
-\r
-//  PGI C++ compiler setup:\r
-\r
-#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__\r
-#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)\r
-\r
-//\r
-// Threading support:\r
-// Turn this on unconditionally here, it will get turned off again later\r
-// if no threading API is detected.\r
-//\r
-\r
-#if (__PGIC__ >= 7)\r
-\r
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL \r
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP\r
-#define BOOST_NO_SWPRINTF\r
-\r
-#else\r
-\r
-#  error "Pgi compiler not configured - please reconfigure"\r
-\r
-#endif\r
-//\r
-// C++0x features\r
-//\r
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG\r
-//\r
-#define BOOST_NO_AUTO_DECLARATIONS\r
-#define BOOST_NO_AUTO_MULTIDECLARATIONS\r
-#define BOOST_NO_CHAR16_T\r
-#define BOOST_NO_CHAR32_T\r
-#define BOOST_NO_CONCEPTS\r
-#define BOOST_NO_CONSTEXPR\r
-#define BOOST_NO_DECLTYPE\r
-#define BOOST_NO_DEFAULTED_FUNCTIONS\r
-#define BOOST_NO_DELETED_FUNCTIONS\r
-#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS\r
-#define BOOST_NO_EXTERN_TEMPLATE\r
-#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS\r
-#define BOOST_NO_INITIALIZER_LISTS\r
-#define BOOST_NO_LAMBDAS\r
-#define BOOST_NO_NULLPTR\r
-#define BOOST_NO_RAW_LITERALS\r
-#define BOOST_NO_RVALUE_REFERENCES\r
-#define BOOST_NO_SCOPED_ENUMS\r
-#define BOOST_NO_SFINAE_EXPR\r
-#define BOOST_NO_STATIC_ASSERT\r
-#define BOOST_NO_TEMPLATE_ALIASES\r
-#define BOOST_NO_UNICODE_LITERALS\r
-#define BOOST_NO_VARIADIC_TEMPLATES\r
-\r
-//\r
-// version check:\r
-// probably nothing to do here?\r
-\r
+//  (C) Copyright Noel Belcourt 2007.
+//  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 for most recent version.
+
+//  PGI C++ compiler setup:
+
+#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
+#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
+
+//
+// Threading support:
+// Turn this on unconditionally here, it will get turned off again later
+// if no threading API is detected.
+//
+
+#if (__PGIC__ >= 7)
+
+#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL 
+#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define BOOST_NO_SWPRINTF
+
+#else
+
+#  error "Pgi compiler not configured - please reconfigure"
+
+#endif
+//
+// C++0x features
+//
+//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
+//
+#define BOOST_NO_AUTO_DECLARATIONS
+#define BOOST_NO_AUTO_MULTIDECLARATIONS
+#define BOOST_NO_CHAR16_T
+#define BOOST_NO_CHAR32_T
+#define BOOST_NO_CONCEPTS
+#define BOOST_NO_CONSTEXPR
+#define BOOST_NO_DECLTYPE
+#define BOOST_NO_DEFAULTED_FUNCTIONS
+#define BOOST_NO_DELETED_FUNCTIONS
+#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+#define BOOST_NO_EXTERN_TEMPLATE
+#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define BOOST_NO_INITIALIZER_LISTS
+#define BOOST_NO_LAMBDAS
+#define BOOST_NO_NULLPTR
+#define BOOST_NO_RAW_LITERALS
+#define BOOST_NO_RVALUE_REFERENCES
+#define BOOST_NO_SCOPED_ENUMS
+#define BOOST_NO_SFINAE_EXPR
+#define BOOST_NO_STATIC_ASSERT
+#define BOOST_NO_TEMPLATE_ALIASES
+#define BOOST_NO_UNICODE_LITERALS
+#define BOOST_NO_VARIADIC_TEMPLATES
+
+//
+// version check:
+// probably nothing to do here?
+
index 19ff52634483f66e04fecca0c32ecf5082eafcec..d8268d842a78c04513614dea908446b0649755e3 100644 (file)
@@ -1,28 +1,28 @@
-//  (C) Copyright John Maddock 2008.\r
-//  Use, modification and distribution are subject to the\r
-//  Boost Software License, Version 1.0. (See accompanying file\r
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// The aim of this header is just to include <cmath> but to do\r
-// so in a way that does not result in recursive inclusion of\r
-// the Boost TR1 components if boost/tr1/tr1/cmath is in the\r
-// include search path.  We have to do this to avoid circular\r
-// dependencies:\r
-//\r
-\r
-#ifndef BOOST_CONFIG_CMATH\r
-#  define BOOST_CONFIG_CMATH\r
-\r
-#  ifndef BOOST_TR1_NO_RECURSION\r
-#     define BOOST_TR1_NO_RECURSION\r
-#     define BOOST_CONFIG_NO_CMATH_RECURSION\r
-#  endif\r
-\r
-#  include <cmath>\r
-\r
-#  ifdef BOOST_CONFIG_NO_CMATH_RECURSION\r
-#     undef BOOST_TR1_NO_RECURSION\r
-#     undef BOOST_CONFIG_NO_CMATH_RECURSION\r
-#  endif\r
-\r
-#endif\r
+//  (C) Copyright John Maddock 2008.
+//  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)
+//
+// The aim of this header is just to include <cmath> but to do
+// so in a way that does not result in recursive inclusion of
+// the Boost TR1 components if boost/tr1/tr1/cmath is in the
+// include search path.  We have to do this to avoid circular
+// dependencies:
+//
+
+#ifndef BOOST_CONFIG_CMATH
+#  define BOOST_CONFIG_CMATH
+
+#  ifndef BOOST_TR1_NO_RECURSION
+#     define BOOST_TR1_NO_RECURSION
+#     define BOOST_CONFIG_NO_CMATH_RECURSION
+#  endif
+
+#  include <cmath>
+
+#  ifdef BOOST_CONFIG_NO_CMATH_RECURSION
+#     undef BOOST_TR1_NO_RECURSION
+#     undef BOOST_CONFIG_NO_CMATH_RECURSION
+#  endif
+
+#endif
index 102f27c69227f227fd7be0e217ad751e357dad17..b1377c8d2c3d991d3acb2c70c9201146a25939b1 100644 (file)
@@ -1,31 +1,31 @@
-//  (C) Copyright Jim Douglas 2005. \r
-//  Use, modification and distribution are subject to the \r
-//  Boost Software License, Version 1.0. (See accompanying file \r
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-//  See http://www.boost.org for most recent version.\r
-\r
-//  QNX specific config options:\r
-\r
-#define BOOST_PLATFORM "QNX"\r
-\r
-#define BOOST_HAS_UNISTD_H\r
-#include <boost/config/posix_features.hpp>\r
-\r
-// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h\r
-// or log1p and expm1:\r
-#undef  BOOST_HAS_NL_TYPES_H\r
-#undef  BOOST_HAS_LOG1P\r
-#undef  BOOST_HAS_EXPM1\r
-\r
-#define BOOST_HAS_PTHREADS\r
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE\r
-\r
-#define BOOST_HAS_GETTIMEOFDAY\r
-#define BOOST_HAS_CLOCK_GETTIME\r
-#define BOOST_HAS_NANOSLEEP\r
-\r
-\r
-\r
-\r
-\r
+//  (C) Copyright Jim Douglas 2005. 
+//  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 for most recent version.
+
+//  QNX specific config options:
+
+#define BOOST_PLATFORM "QNX"
+
+#define BOOST_HAS_UNISTD_H
+#include <boost/config/posix_features.hpp>
+
+// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
+// or log1p and expm1:
+#undef  BOOST_HAS_NL_TYPES_H
+#undef  BOOST_HAS_LOG1P
+#undef  BOOST_HAS_EXPM1
+
+#define BOOST_HAS_PTHREADS
+#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+
+#define BOOST_HAS_GETTIMEOFDAY
+#define BOOST_HAS_CLOCK_GETTIME
+#define BOOST_HAS_NANOSLEEP
+
+
+
+
+
index 75b14ca02a49e2e9caa1cd61a31edcf81919b750..6ec5171e390df14e4530b42895d67407d76f10b3 100755 (executable)
@@ -1,31 +1,31 @@
-//  (C) Copyright Dustin Spicuzza 2009. \r
-//  Use, modification and distribution are subject to the \r
-//  Boost Software License, Version 1.0. (See accompanying file \r
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-//  See http://www.boost.org for most recent version.\r
-\r
-//  vxWorks specific config options:\r
-\r
-#define BOOST_PLATFORM "vxWorks"\r
-\r
-#define BOOST_NO_CWCHAR\r
-#define BOOST_NO_INTRINSIC_WCHAR_T\r
-\r
-#if defined(__GNUC__) && defined(__STRICT_ANSI__)\r
-#define BOOST_NO_INT64_T\r
-#endif\r
-\r
-#define BOOST_HAS_UNISTD_H\r
-\r
-// these allow posix_features to work, since vxWorks doesn't\r
-// define them itself\r
-#define _POSIX_TIMERS 1\r
-#define _POSIX_THREADS 1\r
-\r
-// vxworks doesn't work with asio serial ports\r
-#define BOOST_ASIO_DISABLE_SERIAL_PORT\r
-\r
-// boilerplate code:\r
-#include <boost/config/posix_features.hpp>\r
\r
+//  (C) Copyright Dustin Spicuzza 2009. 
+//  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 for most recent version.
+
+//  vxWorks specific config options:
+
+#define BOOST_PLATFORM "vxWorks"
+
+#define BOOST_NO_CWCHAR
+#define BOOST_NO_INTRINSIC_WCHAR_T
+
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define BOOST_NO_INT64_T
+#endif
+
+#define BOOST_HAS_UNISTD_H
+
+// these allow posix_features to work, since vxWorks doesn't
+// define them itself
+#define _POSIX_TIMERS 1
+#define _POSIX_THREADS 1
+
+// vxworks doesn't work with asio serial ports
+#define BOOST_ASIO_DISABLE_SERIAL_PORT
+
+// boilerplate code:
+#include <boost/config/posix_features.hpp>
index b79723b88c378206a4ae66f8b39c08db3f8dcf6e..cfaff23027cd024d5b14d3ab34cf6e70aec3577e 100644 (file)
@@ -1,92 +1,92 @@
-//  (C) Copyright John Maddock 2003. \r
-//  Use, modification and distribution are subject to the \r
-//  Boost Software License, Version 1.0. (See accompanying file \r
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-\r
-#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP\r
-#define BOOST_CONFIG_REQUIRES_THREADS_HPP\r
-\r
-#ifndef BOOST_CONFIG_HPP\r
-#  include <boost/config.hpp>\r
-#endif\r
-\r
-#if defined(BOOST_DISABLE_THREADS)\r
-\r
-//\r
-// special case to handle versions of gcc which don't currently support threads:\r
-//\r
-#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG))\r
-//\r
-// this is checked up to gcc 3.3:\r
-//\r
-#if defined(__sgi) || defined(__hpux)\r
-#  error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)"\r
-#endif\r
-\r
-#endif\r
-\r
-#  error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"\r
-\r
-#elif !defined(BOOST_HAS_THREADS)\r
-\r
-# if defined __COMO__\r
-//  Comeau C++\r
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)"\r
-\r
-#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)\r
-//  Intel\r
-#ifdef _WIN32\r
-#  error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"\r
-#else\r
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp"\r
-#endif\r
-\r
-# elif defined __GNUC__\r
-//  GNU C++:\r
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"\r
-\r
-#elif defined __sgi\r
-//  SGI MIPSpro C++\r
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE"\r
-\r
-#elif defined __DECCXX\r
-//  Compaq Tru64 Unix cxx\r
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread"\r
-\r
-#elif defined __BORLANDC__\r
-//  Borland\r
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM"\r
-\r
-#elif defined  __MWERKS__\r
-//  Metrowerks CodeWarrior\r
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd"\r
-\r
-#elif defined  __SUNPRO_CC\r
-//  Sun Workshop Compiler C++\r
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"\r
-\r
-#elif defined __HP_aCC\r
-//  HP aCC\r
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"\r
-\r
-#elif defined(__IBMCPP__)\r
-//  IBM Visual Age\r
-#   error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler"\r
-\r
-#elif defined _MSC_VER\r
-//  Microsoft Visual C++\r
-//\r
-//  Must remain the last #elif since some other vendors (Metrowerks, for\r
-//  example) also #define _MSC_VER\r
-#  error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"\r
-\r
-#else\r
-\r
-#  error "Compiler threading support is not turned on.  Please consult your compiler's documentation for the appropriate options to use"\r
-\r
-#endif // compilers\r
-\r
-#endif // BOOST_HAS_THREADS\r
-\r
-#endif // BOOST_CONFIG_REQUIRES_THREADS_HPP\r
+//  (C) Copyright John Maddock 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)
+
+
+#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP
+#define BOOST_CONFIG_REQUIRES_THREADS_HPP
+
+#ifndef BOOST_CONFIG_HPP
+#  include <boost/config.hpp>
+#endif
+
+#if defined(BOOST_DISABLE_THREADS)
+
+//
+// special case to handle versions of gcc which don't currently support threads:
+//
+#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG))
+//
+// this is checked up to gcc 3.3:
+//
+#if defined(__sgi) || defined(__hpux)
+#  error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)"
+#endif
+
+#endif
+
+#  error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
+
+#elif !defined(BOOST_HAS_THREADS)
+
+# if defined __COMO__
+//  Comeau C++
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)"
+
+#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
+//  Intel
+#ifdef _WIN32
+#  error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
+#else
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp"
+#endif
+
+# elif defined __GNUC__
+//  GNU C++:
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"
+
+#elif defined __sgi
+//  SGI MIPSpro C++
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE"
+
+#elif defined __DECCXX
+//  Compaq Tru64 Unix cxx
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread"
+
+#elif defined __BORLANDC__
+//  Borland
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM"
+
+#elif defined  __MWERKS__
+//  Metrowerks CodeWarrior
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd"
+
+#elif defined  __SUNPRO_CC
+//  Sun Workshop Compiler C++
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
+
+#elif defined __HP_aCC
+//  HP aCC
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
+
+#elif defined(__IBMCPP__)
+//  IBM Visual Age
+#   error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler"
+
+#elif defined _MSC_VER
+//  Microsoft Visual C++
+//
+//  Must remain the last #elif since some other vendors (Metrowerks, for
+//  example) also #define _MSC_VER
+#  error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
+
+#else
+
+#  error "Compiler threading support is not turned on.  Please consult your compiler's documentation for the appropriate options to use"
+
+#endif // compilers
+
+#endif // BOOST_HAS_THREADS
+
+#endif // BOOST_CONFIG_REQUIRES_THREADS_HPP
index 8fd46ff73abbd43a15f1c52acaaacb45d38a2308..26ff1323c0379541707c737ad4d1f5e9077f3dc8 100644 (file)
@@ -1,47 +1,47 @@
-//  Copyright John Maddock 2008\r
-//  Use, modification, and distribution is subject to the Boost Software\r
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  This file exists to turn off some overly-pedantic warning emitted\r
-//  by certain compilers.  You should include this header only in:\r
-//\r
-//  * A test case, before any other headers, or,\r
-//  * A library source file before any other headers.\r
-//\r
-//  IT SHOULD NOT BE INCLUDED BY ANY BOOST HEADER.\r
-//\r
-//  YOU SHOULD NOT INCLUDE IT IF YOU CAN REASONABLY FIX THE WARNING.\r
-//\r
-//  The only warnings disabled here are those that are:\r
-//\r
-//  * Quite unreasonably pedantic.\r
-//  * Generally only emitted by a single compiler.\r
-//  * Can't easily be fixed: for example if the vendors own std lib \r
-//    code emits these warnings!\r
-//\r
-//  Note that THIS HEADER MUST NOT INCLUDE ANY OTHER HEADERS:\r
-//  not even std library ones!  Doing so may turn the warning\r
-//  off too late to be of any use.  For example the VC++ C4996\r
-//  warning can be omitted from <iosfwd> if that header is included\r
-//  before or by this one :-(\r
-//\r
-\r
-#ifndef BOOST_CONFIG_WARNING_DISABLE_HPP\r
-#define BOOST_CONFIG_WARNING_DISABLE_HPP\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1400) \r
-   // Error 'function': was declared deprecated\r
-   // http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx\r
-   // This error is emitted when you use some perfectly conforming\r
-   // std lib functions in a perfectly correct way, and also by\r
-   // some of Microsoft's own std lib code !\r
-#  pragma warning(disable:4996)\r
-#endif\r
-#if defined(__INTEL_COMPILER) || defined(__ICL)\r
-   // As above: gives warning when a "deprecated"\r
-   // std library function is encountered.\r
-#  pragma warning(disable:1786)\r
-#endif\r
-\r
-#endif // BOOST_CONFIG_WARNING_DISABLE_HPP\r
+//  Copyright John Maddock 2008
+//  Use, modification, and distribution is subject to the Boost Software
+//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+//  http://www.boost.org/LICENSE_1_0.txt)
+//
+//  This file exists to turn off some overly-pedantic warning emitted
+//  by certain compilers.  You should include this header only in:
+//
+//  * A test case, before any other headers, or,
+//  * A library source file before any other headers.
+//
+//  IT SHOULD NOT BE INCLUDED BY ANY BOOST HEADER.
+//
+//  YOU SHOULD NOT INCLUDE IT IF YOU CAN REASONABLY FIX THE WARNING.
+//
+//  The only warnings disabled here are those that are:
+//
+//  * Quite unreasonably pedantic.
+//  * Generally only emitted by a single compiler.
+//  * Can't easily be fixed: for example if the vendors own std lib 
+//    code emits these warnings!
+//
+//  Note that THIS HEADER MUST NOT INCLUDE ANY OTHER HEADERS:
+//  not even std library ones!  Doing so may turn the warning
+//  off too late to be of any use.  For example the VC++ C4996
+//  warning can be omitted from <iosfwd> if that header is included
+//  before or by this one :-(
+//
+
+#ifndef BOOST_CONFIG_WARNING_DISABLE_HPP
+#define BOOST_CONFIG_WARNING_DISABLE_HPP
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1400) 
+   // Error 'function': was declared deprecated
+   // http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx
+   // This error is emitted when you use some perfectly conforming
+   // std lib functions in a perfectly correct way, and also by
+   // some of Microsoft's own std lib code !
+#  pragma warning(disable:4996)
+#endif
+#if defined(__INTEL_COMPILER) || defined(__ICL)
+   // As above: gives warning when a "deprecated"
+   // std library function is encountered.
+#  pragma warning(disable:1786)
+#endif
+
+#endif // BOOST_CONFIG_WARNING_DISABLE_HPP
index 04f2ac51351192be78812f4dd492acf041e5ecab..bc7f780b060965c5e96ed47b5ce4ec1613c9d522 100644 (file)
@@ -1,99 +1,99 @@
-\r
-// Copyright 2005-2008 Daniel James.\r
-// Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#if !defined(BOOST_DETAIL_CONTAINER_FWD_HPP)\r
-#define BOOST_DETAIL_CONTAINER_FWD_HPP\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/detail/workaround.hpp>\r
-\r
-#if ((defined(__GLIBCPP__) || defined(__GLIBCXX__)) && defined(_GLIBCXX_DEBUG)) \\r
-    || BOOST_WORKAROUND(__BORLANDC__, > 0x551) \\r
-    || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x842)) \\r
-    || (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))\r
-\r
-#include <deque>\r
-#include <list>\r
-#include <vector>\r
-#include <map>\r
-#include <set>\r
-#include <bitset>\r
-#include <string>\r
-#include <complex>\r
-\r
-#else\r
-\r
-#include <cstddef>\r
-\r
-#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) && \\r
-        defined(__STL_CONFIG_H)\r
-\r
-#define BOOST_CONTAINER_FWD_BAD_BITSET\r
-\r
-#if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG)\r
-#define BOOST_CONTAINER_FWD_BAD_DEQUE\r
-#endif\r
-\r
-#endif\r
-\r
-#if defined(BOOST_CONTAINER_FWD_BAD_DEQUE)\r
-#include <deque>\r
-#endif\r
-\r
-#if defined(BOOST_CONTAINER_FWD_BAD_BITSET)\r
-#include <bitset>\r
-#endif\r
-\r
-#if defined(BOOST_MSVC)\r
-#pragma warning(push)\r
-#pragma warning(disable:4099) // struct/class mismatch in fwd declarations\r
-#endif\r
-\r
-namespace std\r
-{\r
-    template <class T> class allocator;\r
-    template <class charT, class traits, class Allocator> class basic_string;\r
-\r
-#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)\r
-    template <class charT> struct string_char_traits;\r
-#else\r
-    template <class charT> struct char_traits;\r
-#endif\r
-\r
-    template <class T> class complex;\r
-}\r
-\r
-// gcc 3.4 and greater\r
-namespace std\r
-{\r
-#if !defined(BOOST_CONTAINER_FWD_BAD_DEQUE)\r
-    template <class T, class Allocator> class deque;\r
-#endif\r
-\r
-    template <class T, class Allocator> class list;\r
-    template <class T, class Allocator> class vector;\r
-    template <class Key, class T, class Compare, class Allocator> class map;\r
-    template <class Key, class T, class Compare, class Allocator>\r
-    class multimap;\r
-    template <class Key, class Compare, class Allocator> class set;\r
-    template <class Key, class Compare, class Allocator> class multiset;\r
-\r
-#if !defined(BOOST_CONTAINER_FWD_BAD_BITSET)\r
-    template <size_t N> class bitset;\r
-#endif\r
-    template <class T1, class T2> struct pair;\r
-}\r
-\r
-#if defined(BOOST_MSVC)\r
-#pragma warning(pop)\r
-#endif\r
-\r
-#endif\r
-\r
-#endif\r
+
+// Copyright 2005-2008 Daniel James.
+// 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(BOOST_DETAIL_CONTAINER_FWD_HPP)
+#define BOOST_DETAIL_CONTAINER_FWD_HPP
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+#include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>
+
+#if ((defined(__GLIBCPP__) || defined(__GLIBCXX__)) && defined(_GLIBCXX_DEBUG)) \
+    || BOOST_WORKAROUND(__BORLANDC__, > 0x551) \
+    || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x842)) \
+    || (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
+
+#include <deque>
+#include <list>
+#include <vector>
+#include <map>
+#include <set>
+#include <bitset>
+#include <string>
+#include <complex>
+
+#else
+
+#include <cstddef>
+
+#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) && \
+        defined(__STL_CONFIG_H)
+
+#define BOOST_CONTAINER_FWD_BAD_BITSET
+
+#if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG)
+#define BOOST_CONTAINER_FWD_BAD_DEQUE
+#endif
+
+#endif
+
+#if defined(BOOST_CONTAINER_FWD_BAD_DEQUE)
+#include <deque>
+#endif
+
+#if defined(BOOST_CONTAINER_FWD_BAD_BITSET)
+#include <bitset>
+#endif
+
+#if defined(BOOST_MSVC)
+#pragma warning(push)
+#pragma warning(disable:4099) // struct/class mismatch in fwd declarations
+#endif
+
+namespace std
+{
+    template <class T> class allocator;
+    template <class charT, class traits, class Allocator> class basic_string;
+
+#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
+    template <class charT> struct string_char_traits;
+#else
+    template <class charT> struct char_traits;
+#endif
+
+    template <class T> class complex;
+}
+
+// gcc 3.4 and greater
+namespace std
+{
+#if !defined(BOOST_CONTAINER_FWD_BAD_DEQUE)
+    template <class T, class Allocator> class deque;
+#endif
+
+    template <class T, class Allocator> class list;
+    template <class T, class Allocator> class vector;
+    template <class Key, class T, class Compare, class Allocator> class map;
+    template <class Key, class T, class Compare, class Allocator>
+    class multimap;
+    template <class Key, class Compare, class Allocator> class set;
+    template <class Key, class Compare, class Allocator> class multiset;
+
+#if !defined(BOOST_CONTAINER_FWD_BAD_BITSET)
+    template <size_t N> class bitset;
+#endif
+    template <class T1, class T2> struct pair;
+}
+
+#if defined(BOOST_MSVC)
+#pragma warning(pop)
+#endif
+
+#endif
+
+#endif
index e5fe984111121183ee835cb5597154a760b29ca9..644c1386b7a4c3f2fd5e327350b831a329eaf80c 100755 (executable)
@@ -1,56 +1,56 @@
-//  scoped_enum_emulation.hpp  ---------------------------------------------------------//\r
-\r
-//  Copyright Beman Dawes, 2009\r
-\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See http://www.boost.org/LICENSE_1_0.txt\r
-\r
-//  Generates C++0x scoped enums if the feature is present, otherwise emulates C++0x\r
-//  scoped enums with C++03 namespaces and enums. The Boost.Config BOOST_NO_SCOPED_ENUMS\r
-//  macro is used to detect feature support.\r
-//\r
-//  See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf for a\r
-//  description of the scoped enum feature. Note that the committee changed the name\r
-//  from strongly typed enum to scoped enum.  \r
-//\r
-//  Caution: only the syntax is emulated; the semantics are not emulated and\r
-//  the syntax emulation doesn't include being able to specify the underlying\r
-//  representation type.\r
-//\r
-//  The emulation is via struct rather than namespace to allow use within classes.\r
-//  Thanks to Andrey Semashev for pointing that out.\r
-//\r
-//  Helpful comments and suggestions were also made by Kjell Elster, Phil Endecott,\r
-//  Joel Falcou, Mathias Gaunard, Felipe Magno de Almeida, Matt Calabrese, Vincente\r
-//  Botet, and Daniel James. \r
-//\r
-//  Sample usage:\r
-//\r
-//     BOOST_SCOPED_ENUM_START(algae) { green, red, cyan }; BOOST_SCOPED_ENUM_END\r
-//     ...\r
-//     BOOST_SCOPED_ENUM(algae) sample( algae::red );\r
-//     void foo( BOOST_SCOPED_ENUM(algae) color );\r
-//     ...\r
-//     sample = algae::green;\r
-//     foo( algae::cyan );\r
-\r
-#ifndef BOOST_SCOPED_ENUM_EMULATION_HPP\r
-#define BOOST_SCOPED_ENUM_EMULATION_HPP\r
-\r
-#include <boost/config.hpp>\r
-\r
-#ifdef BOOST_NO_SCOPED_ENUMS\r
-\r
-# define BOOST_SCOPED_ENUM_START(name) struct name { enum enum_t\r
-# define BOOST_SCOPED_ENUM_END };\r
-# define BOOST_SCOPED_ENUM(name) name::enum_t\r
-\r
-#else\r
-\r
-# define BOOST_SCOPED_ENUM_START(name) enum class name\r
-# define BOOST_SCOPED_ENUM_END\r
-# define BOOST_SCOPED_ENUM(name) name\r
-\r
-#endif\r
-\r
-#endif  // BOOST_SCOPED_ENUM_EMULATION_HPP\r
+//  scoped_enum_emulation.hpp  ---------------------------------------------------------//
+
+//  Copyright Beman Dawes, 2009
+
+//  Distributed under the Boost Software License, Version 1.0.
+//  See http://www.boost.org/LICENSE_1_0.txt
+
+//  Generates C++0x scoped enums if the feature is present, otherwise emulates C++0x
+//  scoped enums with C++03 namespaces and enums. The Boost.Config BOOST_NO_SCOPED_ENUMS
+//  macro is used to detect feature support.
+//
+//  See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf for a
+//  description of the scoped enum feature. Note that the committee changed the name
+//  from strongly typed enum to scoped enum.  
+//
+//  Caution: only the syntax is emulated; the semantics are not emulated and
+//  the syntax emulation doesn't include being able to specify the underlying
+//  representation type.
+//
+//  The emulation is via struct rather than namespace to allow use within classes.
+//  Thanks to Andrey Semashev for pointing that out.
+//
+//  Helpful comments and suggestions were also made by Kjell Elster, Phil Endecott,
+//  Joel Falcou, Mathias Gaunard, Felipe Magno de Almeida, Matt Calabrese, Vincente
+//  Botet, and Daniel James. 
+//
+//  Sample usage:
+//
+//     BOOST_SCOPED_ENUM_START(algae) { green, red, cyan }; BOOST_SCOPED_ENUM_END
+//     ...
+//     BOOST_SCOPED_ENUM(algae) sample( algae::red );
+//     void foo( BOOST_SCOPED_ENUM(algae) color );
+//     ...
+//     sample = algae::green;
+//     foo( algae::cyan );
+
+#ifndef BOOST_SCOPED_ENUM_EMULATION_HPP
+#define BOOST_SCOPED_ENUM_EMULATION_HPP
+
+#include <boost/config.hpp>
+
+#ifdef BOOST_NO_SCOPED_ENUMS
+
+# define BOOST_SCOPED_ENUM_START(name) struct name { enum enum_t
+# define BOOST_SCOPED_ENUM_END };
+# define BOOST_SCOPED_ENUM(name) name::enum_t
+
+#else
+
+# define BOOST_SCOPED_ENUM_START(name) enum class name
+# define BOOST_SCOPED_ENUM_END
+# define BOOST_SCOPED_ENUM(name) name
+
+#endif
+
+#endif  // BOOST_SCOPED_ENUM_EMULATION_HPP
index 62fce85fab681773fc9df076fdcfc034ee4a1271..c47738b2c6db4e2e6b98f4b3b3ca75a3e2fa9ec6 100644 (file)
@@ -1,27 +1,27 @@
-//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_316FDA946C0D11DEA9CBAE5255D89593\r
-#define UUID_316FDA946C0D11DEA9CBAE5255D89593\r
-\r
-#include <boost/exception/diagnostic_information.hpp>\r
-#include <boost/exception/error_info.hpp>\r
-#include <boost/exception/exception.hpp>\r
-#include <boost/exception/get_error_info.hpp>\r
-#include <boost/exception/info.hpp>\r
-#include <boost/exception/info_tuple.hpp>\r
-#include <boost/exception/errinfo_api_function.hpp>\r
-#include <boost/exception/errinfo_at_line.hpp>\r
-#include <boost/exception/errinfo_errno.hpp>\r
-#include <boost/exception/errinfo_file_handle.hpp>\r
-#include <boost/exception/errinfo_file_name.hpp>\r
-#include <boost/exception/errinfo_file_open_mode.hpp>\r
-#include <boost/exception/errinfo_type_info_name.hpp>\r
-#ifndef BOOST_NO_EXCEPTIONS\r
-#include <boost/exception/errinfo_nested_exception.hpp>\r
-#include <boost/exception_ptr.hpp>\r
-#endif\r
-\r
-#endif\r
+//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
+
+//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 UUID_316FDA946C0D11DEA9CBAE5255D89593
+#define UUID_316FDA946C0D11DEA9CBAE5255D89593
+
+#include <boost/exception/diagnostic_information.hpp>
+#include <boost/exception/error_info.hpp>
+#include <boost/exception/exception.hpp>
+#include <boost/exception/get_error_info.hpp>
+#include <boost/exception/info.hpp>
+#include <boost/exception/info_tuple.hpp>
+#include <boost/exception/errinfo_api_function.hpp>
+#include <boost/exception/errinfo_at_line.hpp>
+#include <boost/exception/errinfo_errno.hpp>
+#include <boost/exception/errinfo_file_handle.hpp>
+#include <boost/exception/errinfo_file_name.hpp>
+#include <boost/exception/errinfo_file_open_mode.hpp>
+#include <boost/exception/errinfo_type_info_name.hpp>
+#ifndef BOOST_NO_EXCEPTIONS
+#include <boost/exception/errinfo_nested_exception.hpp>
+#include <boost/exception_ptr.hpp>
+#endif
+
+#endif
index 61f2b7a07030ab0b3cf79eb16f3eb151feacd609..228b6ea10ec45f2c0d61e401cacdb7f7e2ed66ce 100644 (file)
@@ -1,34 +1,34 @@
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_7E83C166200811DE885E826156D89593\r
-#define UUID_7E83C166200811DE885E826156D89593\r
-\r
-namespace\r
-boost\r
-    {\r
-    template <class E>\r
-    inline\r
-    E *\r
-    current_exception_cast()\r
-        {\r
-        try\r
-            {\r
-            throw;\r
-            }\r
-        catch(\r
-        E & e )\r
-            {\r
-            return &e;\r
-            }\r
-        catch(\r
-        ...)\r
-            {\r
-            return 0;\r
-            }\r
-        }\r
-    }\r
-\r
-#endif\r
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
+
+//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 UUID_7E83C166200811DE885E826156D89593
+#define UUID_7E83C166200811DE885E826156D89593
+
+namespace
+boost
+    {
+    template <class E>
+    inline
+    E *
+    current_exception_cast()
+        {
+        try
+            {
+            throw;
+            }
+        catch(
+        E & e )
+            {
+            return &e;
+            }
+        catch(
+        ...)
+            {
+            return 0;
+            }
+        }
+    }
+
+#endif
index 9d2102c3d38327c459899003c9f2c08da7fa62fe..1cb0763efdc97e362b91d813bf4c74d03eedb088 100644 (file)
@@ -1,19 +1,19 @@
-//Copyright (c) 2009 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_61531AB0680611DEADD5846855D89593\r
-#define UUID_61531AB0680611DEADD5846855D89593\r
-\r
-#include <boost/config.hpp>\r
-\r
-#if defined(BOOST_MSVC)\r
-#define BOOST_ATTRIBUTE_NORETURN __declspec(noreturn)\r
-#elif defined(__GNUC__)\r
-#define BOOST_ATTRIBUTE_NORETURN __attribute__((noreturn))\r
-#else\r
-#define BOOST_ATTRIBUTE_NORETURN\r
-#endif\r
-\r
-#endif\r
+//Copyright (c) 2009 Emil Dotchevski and Reverge Studios, Inc.
+
+//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 UUID_61531AB0680611DEADD5846855D89593
+#define UUID_61531AB0680611DEADD5846855D89593
+
+#include <boost/config.hpp>
+
+#if defined(BOOST_MSVC)
+#define BOOST_ATTRIBUTE_NORETURN __declspec(noreturn)
+#elif defined(__GNUC__)
+#define BOOST_ATTRIBUTE_NORETURN __attribute__((noreturn))
+#else
+#define BOOST_ATTRIBUTE_NORETURN
+#endif
+
+#endif
index 6bb3e7946891d16937ecc58667fe17a48b2f655d..a25d066fd1d8a5f5f648ae620447a33d7c4f5fb1 100644 (file)
@@ -1,67 +1,67 @@
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_CE6983AC753411DDA764247956D89593\r
-#define UUID_CE6983AC753411DDA764247956D89593\r
-\r
-#include <string>\r
-\r
-namespace\r
-boost\r
-    {\r
-    namespace\r
-    exception_detail\r
-        {\r
-        class\r
-        error_info_base\r
-            {\r
-            public:\r
-\r
-            virtual char const * tag_typeid_name() const = 0;\r
-            virtual std::string value_as_string() const = 0;\r
-\r
-            protected:\r
-\r
-            virtual\r
-            ~error_info_base() throw()\r
-                {\r
-                }\r
-            };\r
-        }\r
-\r
-    template <class Tag,class T>\r
-    class\r
-    error_info:\r
-        public exception_detail::error_info_base\r
-        {\r
-        public:\r
-\r
-        typedef T value_type;\r
-\r
-        error_info( value_type const & value );\r
-        ~error_info() throw();\r
-\r
-        value_type const &\r
-        value() const\r
-            {\r
-            return value_;\r
-            }\r
-\r
-        value_type &\r
-        value()\r
-            {\r
-            return value_;\r
-            }\r
-\r
-        private:\r
-\r
-        char const * tag_typeid_name() const;\r
-        std::string value_as_string() const;\r
-\r
-        value_type value_;\r
-        };\r
-    }\r
-\r
-#endif\r
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
+
+//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 UUID_CE6983AC753411DDA764247956D89593
+#define UUID_CE6983AC753411DDA764247956D89593
+
+#include <string>
+
+namespace
+boost
+    {
+    namespace
+    exception_detail
+        {
+        class
+        error_info_base
+            {
+            public:
+
+            virtual char const * tag_typeid_name() const = 0;
+            virtual std::string value_as_string() const = 0;
+
+            protected:
+
+            virtual
+            ~error_info_base() throw()
+                {
+                }
+            };
+        }
+
+    template <class Tag,class T>
+    class
+    error_info:
+        public exception_detail::error_info_base
+        {
+        public:
+
+        typedef T value_type;
+
+        error_info( value_type const & value );
+        ~error_info() throw();
+
+        value_type const &
+        value() const
+            {
+            return value_;
+            }
+
+        value_type &
+        value()
+            {
+            return value_;
+            }
+
+        private:
+
+        char const * tag_typeid_name() const;
+        std::string value_as_string() const;
+
+        value_type value_;
+        };
+    }
+
+#endif
index 77092e8e09b54d0312c1ef1442305db81d1a58e5..ac68cab7c61f1560775c95b28c389dd416aef46a 100644 (file)
@@ -1,33 +1,33 @@
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_DC4208C6417811DEBF11E1EC55D89593\r
-#define UUID_DC4208C6417811DEBF11E1EC55D89593\r
-\r
-namespace\r
-boost\r
-    {\r
-        namespace\r
-        exception_detail\r
-                {\r
-                class\r
-                exception_ptr_base\r
-                        {\r
-                        public:\r
-\r
-                        virtual void _rethrow() const=0;\r
-                        virtual bool _empty() const=0;\r
-\r
-                        protected:\r
-\r
-                        virtual\r
-                        ~exception_ptr_base() throw()\r
-                            {\r
-                            }\r
-                        };\r
-                }\r
-    }\r
-\r
-#endif\r
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
+
+//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 UUID_DC4208C6417811DEBF11E1EC55D89593
+#define UUID_DC4208C6417811DEBF11E1EC55D89593
+
+namespace
+boost
+    {
+        namespace
+        exception_detail
+                {
+                class
+                exception_ptr_base
+                        {
+                        public:
+
+                        virtual void _rethrow() const=0;
+                        virtual bool _empty() const=0;
+
+                        protected:
+
+                        virtual
+                        ~exception_ptr_base() throw()
+                            {
+                            }
+                        };
+                }
+    }
+
+#endif
index 369470e6f0ad4fc5bd618bb445e4f81aed5bd499..ac0960db68af6a4aee8cb8a731e17ca2eb27d1f9 100644 (file)
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_C3E1741C754311DDB2834CCA55D89593\r
-#define UUID_C3E1741C754311DDB2834CCA55D89593\r
-\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-#include <boost/current_function.hpp>\r
-\r
-namespace\r
-boost\r
-    {\r
-    template <class T>\r
-    inline\r
-    char const *\r
-    tag_type_name()\r
-        {\r
-#ifdef BOOST_NO_TYPEID\r
-        return BOOST_CURRENT_FUNCTION;\r
-#else\r
-        return typeid(T*).name();\r
-#endif\r
-        }\r
-\r
-    template <class T>\r
-    inline\r
-    char const *\r
-    type_name()\r
-        {\r
-#ifdef BOOST_NO_TYPEID\r
-        return BOOST_CURRENT_FUNCTION;\r
-#else\r
-        return typeid(T).name();\r
-#endif\r
-        }\r
-\r
-    namespace\r
-    exception_detail\r
-        {\r
-#ifdef BOOST_NO_TYPEID\r
-        struct\r
-        type_info_\r
-            {\r
-            detail::sp_typeinfo type_;\r
-            char const * name_;\r
-\r
-            explicit\r
-            type_info_( detail::sp_typeinfo type, char const * name ):\r
-                type_(type),\r
-                name_(name)\r
-                {\r
-                }\r
-\r
-            friend\r
-            bool\r
-            operator==( type_info_ const & a, type_info_ const & b )\r
-                {\r
-                return a.type_==b.type_;\r
-                }\r
-\r
-            friend\r
-            bool\r
-            operator<( type_info_ const & a, type_info_ const & b )\r
-                {\r
-                return a.type_<b.type_;\r
-                }\r
-\r
-            char const *\r
-            name() const\r
-                {\r
-                return name_;\r
-                }\r
-            };\r
-#else\r
-        struct\r
-        type_info_\r
-            {\r
-            detail::sp_typeinfo const * type_;\r
-\r
-            explicit\r
-            type_info_( detail::sp_typeinfo const & type ):\r
-                type_(&type)\r
-                {\r
-                }\r
-\r
-            type_info_( detail::sp_typeinfo const & type, char const * ):\r
-                type_(&type)\r
-                {\r
-                }\r
-\r
-            friend\r
-            bool\r
-            operator==( type_info_ const & a, type_info_ const & b )\r
-                {\r
-                return (*a.type_)==(*b.type_);\r
-                }\r
-\r
-            friend\r
-            bool\r
-            operator<( type_info_ const & a, type_info_ const & b )\r
-                {\r
-                return 0!=(a.type_->before(*b.type_));\r
-                }\r
-\r
-            char const *\r
-            name() const\r
-                {\r
-                return type_->name();\r
-                }\r
-            };\r
-#endif\r
-\r
-        inline\r
-        bool\r
-        operator!=( type_info_ const & a, type_info_ const & b )\r
-            {\r
-            return !(a==b);\r
-            }\r
-        }\r
-    }\r
-\r
-#define BOOST_EXCEPTION_STATIC_TYPEID(T) ::boost::exception_detail::type_info_(BOOST_SP_TYPEID(T),::boost::tag_type_name<T>())\r
-\r
-#ifndef BOOST_NO_RTTI\r
-#define BOOST_EXCEPTION_DYNAMIC_TYPEID(x) ::boost::exception_detail::type_info_(typeid(x))\r
-#endif\r
-\r
-#endif\r
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
+
+//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 UUID_C3E1741C754311DDB2834CCA55D89593
+#define UUID_C3E1741C754311DDB2834CCA55D89593
+
+#include <boost/detail/sp_typeinfo.hpp>
+#include <boost/current_function.hpp>
+
+namespace
+boost
+    {
+    template <class T>
+    inline
+    char const *
+    tag_type_name()
+        {
+#ifdef BOOST_NO_TYPEID
+        return BOOST_CURRENT_FUNCTION;
+#else
+        return typeid(T*).name();
+#endif
+        }
+
+    template <class T>
+    inline
+    char const *
+    type_name()
+        {
+#ifdef BOOST_NO_TYPEID
+        return BOOST_CURRENT_FUNCTION;
+#else
+        return typeid(T).name();
+#endif
+        }
+
+    namespace
+    exception_detail
+        {
+#ifdef BOOST_NO_TYPEID
+        struct
+        type_info_
+            {
+            detail::sp_typeinfo type_;
+            char const * name_;
+
+            explicit
+            type_info_( detail::sp_typeinfo type, char const * name ):
+                type_(type),
+                name_(name)
+                {
+                }
+
+            friend
+            bool
+            operator==( type_info_ const & a, type_info_ const & b )
+                {
+                return a.type_==b.type_;
+                }
+
+            friend
+            bool
+            operator<( type_info_ const & a, type_info_ const & b )
+                {
+                return a.type_<b.type_;
+                }
+
+            char const *
+            name() const
+                {
+                return name_;
+                }
+            };
+#else
+        struct
+        type_info_
+            {
+            detail::sp_typeinfo const * type_;
+
+            explicit
+            type_info_( detail::sp_typeinfo const & type ):
+                type_(&type)
+                {
+                }
+
+            type_info_( detail::sp_typeinfo const & type, char const * ):
+                type_(&type)
+                {
+                }
+
+            friend
+            bool
+            operator==( type_info_ const & a, type_info_ const & b )
+                {
+                return (*a.type_)==(*b.type_);
+                }
+
+            friend
+            bool
+            operator<( type_info_ const & a, type_info_ const & b )
+                {
+                return 0!=(a.type_->before(*b.type_));
+                }
+
+            char const *
+            name() const
+                {
+                return type_->name();
+                }
+            };
+#endif
+
+        inline
+        bool
+        operator!=( type_info_ const & a, type_info_ const & b )
+            {
+            return !(a==b);
+            }
+        }
+    }
+
+#define BOOST_EXCEPTION_STATIC_TYPEID(T) ::boost::exception_detail::type_info_(BOOST_SP_TYPEID(T),::boost::tag_type_name<T>())
+
+#ifndef BOOST_NO_RTTI
+#define BOOST_EXCEPTION_DYNAMIC_TYPEID(x) ::boost::exception_detail::type_info_(typeid(x))
+#endif
+
+#endif
index 7b6a9fee7670790c4893c4854497790e6dc64315..481c61314e35623b113583e08d196e1e3e474373 100644 (file)
@@ -1,22 +1,22 @@
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_DDFBB4546C1211DEA4659E9055D89593\r
-#define UUID_DDFBB4546C1211DEA4659E9055D89593\r
-\r
-#include "boost/exception/error_info.hpp"\r
-\r
-namespace\r
-boost\r
-    {\r
-    //Usage hint:\r
-    //if( api_function(....)!=0 )\r
-    //    BOOST_THROW_EXCEPTION(\r
-    //        failure() <<\r
-    //        errinfo_api_function("api_function") );\r
-    typedef error_info<struct errinfo_api_function_,char const *> errinfo_api_function;\r
-    }\r
-\r
-#endif\r
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
+
+//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 UUID_DDFBB4546C1211DEA4659E9055D89593
+#define UUID_DDFBB4546C1211DEA4659E9055D89593
+
+#include "boost/exception/error_info.hpp"
+
+namespace
+boost
+    {
+    //Usage hint:
+    //if( api_function(....)!=0 )
+    //    BOOST_THROW_EXCEPTION(
+    //        failure() <<
+    //        errinfo_api_function("api_function") );
+    typedef error_info<struct errinfo_api_function_,char const *> errinfo_api_function;
+    }
+
+#endif
index cc422ce53b2c0b1e24ca1c17ecb1a4b9668954b4..cbd5ccefba0456edcb7e7187a1edcd6c34c982d0 100644 (file)
@@ -1,18 +1,18 @@
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_E7255CE26C1211DE85800C9155D89593\r
-#define UUID_E7255CE26C1211DE85800C9155D89593\r
-\r
-namespace\r
-boost\r
-    {\r
-    template <class Tag,class T> class error_info;\r
-\r
-    //Use with parsing errors exceptions, for example in a XML file parser.\r
-    typedef error_info<struct errinfo_at_line_,int> errinfo_at_line;\r
-    }\r
-\r
-#endif\r
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
+
+//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 UUID_E7255CE26C1211DE85800C9155D89593
+#define UUID_E7255CE26C1211DE85800C9155D89593
+
+namespace
+boost
+    {
+    template <class Tag,class T> class error_info;
+
+    //Use with parsing errors exceptions, for example in a XML file parser.
+    typedef error_info<struct errinfo_at_line_,int> errinfo_at_line;
+    }
+
+#endif
index 2e781f469e1e7c08d8f796e00793ce8b699b1256..310ceb78d0fcd07d1aff421b8dafb36a54fc697f 100644 (file)
@@ -1,35 +1,35 @@
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_F0EE17BE6C1211DE87FF459155D89593\r
-#define UUID_F0EE17BE6C1211DE87FF459155D89593\r
-\r
-#include "boost/exception/info.hpp"\r
-#include <errno.h>\r
-#include <string.h>\r
-\r
-namespace\r
-boost\r
-    {\r
-    typedef error_info<struct errinfo_errno_,int> errinfo_errno;\r
-\r
-    //Usage hint:\r
-    //if( c_function(....)!=0 )\r
-    //    BOOST_THROW_EXCEPTION(\r
-    //        failure() <<\r
-    //        errinfo_errno(errno) <<\r
-    //        errinfo_api_function("c_function") );\r
-    inline\r
-    std::string\r
-    to_string( errinfo_errno const & e )\r
-        {\r
-        std::ostringstream tmp;\r
-        int v=e.value();\r
-        tmp << v << ", \"" << strerror(v) << "\"";\r
-        return tmp.str();\r
-        }\r
-    }\r
-\r
-#endif\r
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
+
+//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 UUID_F0EE17BE6C1211DE87FF459155D89593
+#define UUID_F0EE17BE6C1211DE87FF459155D89593
+
+#include "boost/exception/info.hpp"
+#include <errno.h>
+#include <string.h>
+
+namespace
+boost
+    {
+    typedef error_info<struct errinfo_errno_,int> errinfo_errno;
+
+    //Usage hint:
+    //if( c_function(....)!=0 )
+    //    BOOST_THROW_EXCEPTION(
+    //        failure() <<
+    //        errinfo_errno(errno) <<
+    //        errinfo_api_function("c_function") );
+    inline
+    std::string
+    to_string( errinfo_errno const & e )
+        {
+        std::ostringstream tmp;
+        int v=e.value();
+        tmp << v << ", \"" << strerror(v) << "\"";
+        return tmp.str();
+        }
+    }
+
+#endif
index 5b9673d70ea46c8b530b2fd1f686cd85967eb571..8e6cff8fd89e9c5e264721a205dc0180e9528ffd 100644 (file)
@@ -1,20 +1,20 @@
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_F79E6EE26C1211DEB26E929155D89593\r
-#define UUID_F79E6EE26C1211DEB26E929155D89593\r
-\r
-#include <stdio.h>\r
-\r
-namespace\r
-boost\r
-    {\r
-    template <class> class weak_ptr;\r
-    template <class Tag,class T> class error_info;\r
-\r
-    typedef error_info<struct errinfo_file_handle_,weak_ptr<FILE> > errinfo_file_handle;\r
-    }\r
-\r
-#endif\r
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
+
+//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 UUID_F79E6EE26C1211DEB26E929155D89593
+#define UUID_F79E6EE26C1211DEB26E929155D89593
+
+#include <stdio.h>
+
+namespace
+boost
+    {
+    template <class> class weak_ptr;
+    template <class Tag,class T> class error_info;
+
+    typedef error_info<struct errinfo_file_handle_,weak_ptr<FILE> > errinfo_file_handle;
+    }
+
+#endif
index c6f1c9e1045c0d04308b77f7a00b97282c215a70..d3cce4d356b8ef8565c4d258d9d94c8d0f720981 100644 (file)
@@ -1,26 +1,26 @@
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_FEE5120A6C1211DE94E8BC9155D89593\r
-#define UUID_FEE5120A6C1211DE94E8BC9155D89593\r
-\r
-#include <string>\r
-\r
-namespace\r
-boost\r
-    {\r
-    template <class Tag,class T> class error_info;\r
-\r
-    //Usage hint:\r
-    //FILE * f=fopen(name,mode);\r
-    //if( !f )\r
-    //    BOOST_THROW_EXCEPTION(\r
-    //        file_open_error() <<\r
-    //        errinfo_file_name(name) <<\r
-    //        errinfo_file_open_mode(mode) );\r
-    typedef error_info<struct errinfo_file_name_,std::string> errinfo_file_name;\r
-    }\r
-\r
-#endif\r
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
+
+//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 UUID_FEE5120A6C1211DE94E8BC9155D89593
+#define UUID_FEE5120A6C1211DE94E8BC9155D89593
+
+#include <string>
+
+namespace
+boost
+    {
+    template <class Tag,class T> class error_info;
+
+    //Usage hint:
+    //FILE * f=fopen(name,mode);
+    //if( !f )
+    //    BOOST_THROW_EXCEPTION(
+    //        file_open_error() <<
+    //        errinfo_file_name(name) <<
+    //        errinfo_file_open_mode(mode) );
+    typedef error_info<struct errinfo_file_name_,std::string> errinfo_file_name;
+    }
+
+#endif
index c1bbaa15937d3c4ae7044b447f7265b66525b1c6..f4fba0d5cc0b3f44a740b33d8a991f4ee6c731b0 100644 (file)
@@ -1,26 +1,26 @@
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_056F1F266C1311DE8E74299255D89593\r
-#define UUID_056F1F266C1311DE8E74299255D89593\r
-\r
-#include <string>\r
-\r
-namespace\r
-boost\r
-    {\r
-    template <class Tag,class T> class error_info;\r
-\r
-    //Usage hint:\r
-    //FILE * f=fopen(name,mode);\r
-    //if( !f )\r
-    //    BOOST_THROW_EXCEPTION(\r
-    //        file_open_error() <<\r
-    //        errinfo_file_name(name) <<\r
-    //        errinfo_file_open_mode(mode) );\r
-    typedef error_info<struct errinfo_file_open_mode_,std::string> errinfo_file_open_mode;\r
-    }\r
-\r
-#endif\r
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
+
+//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 UUID_056F1F266C1311DE8E74299255D89593
+#define UUID_056F1F266C1311DE8E74299255D89593
+
+#include <string>
+
+namespace
+boost
+    {
+    template <class Tag,class T> class error_info;
+
+    //Usage hint:
+    //FILE * f=fopen(name,mode);
+    //if( !f )
+    //    BOOST_THROW_EXCEPTION(
+    //        file_open_error() <<
+    //        errinfo_file_name(name) <<
+    //        errinfo_file_open_mode(mode) );
+    typedef error_info<struct errinfo_file_open_mode_,std::string> errinfo_file_open_mode;
+    }
+
+#endif
index dbd9abff09fcbfbc1fd95454dedf92cf022ae5d5..0b060e2e11c0ce98e035b4e8b4d0c85e1bf3be5d 100644 (file)
@@ -1,23 +1,23 @@
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_0E11109E6C1311DEB7EA649255D89593\r
-#define UUID_0E11109E6C1311DEB7EA649255D89593\r
-\r
-#include <string>\r
-\r
-namespace\r
-boost\r
-    {\r
-    template <class Tag,class T> class error_info;\r
-\r
-    //Usage hint:\r
-    //BOOST_THROW_EXCEPTION(\r
-    //    bad_type() <<\r
-    //    errinfo_type_info_name(typeid(x).name()) );\r
-    typedef error_info<struct errinfo_type_info_name_,std::string> errinfo_type_info_name;\r
-    }\r
-\r
-#endif\r
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
+
+//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 UUID_0E11109E6C1311DEB7EA649255D89593
+#define UUID_0E11109E6C1311DEB7EA649255D89593
+
+#include <string>
+
+namespace
+boost
+    {
+    template <class Tag,class T> class error_info;
+
+    //Usage hint:
+    //BOOST_THROW_EXCEPTION(
+    //    bad_type() <<
+    //    errinfo_type_info_name(typeid(x).name()) );
+    typedef error_info<struct errinfo_type_info_name_,std::string> errinfo_type_info_name;
+    }
+
+#endif
index aba9dec670ae8c77f903f70b91c9f6016ee7a408..640a612f3d20b5682c99acf5144accd2463c2dd7 100644 (file)
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_1A590226753311DD9E4CCF6156D89593\r
-#define UUID_1A590226753311DD9E4CCF6156D89593\r
-\r
-#include <boost/exception/exception.hpp>\r
-#include <boost/exception/detail/error_info_impl.hpp>\r
-#include <boost/exception/detail/type_info.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-\r
-namespace\r
-boost\r
-    {\r
-    namespace\r
-    exception_detail\r
-        {\r
-        template <class ErrorInfo>\r
-        struct\r
-        get_info\r
-            {\r
-            static\r
-            typename ErrorInfo::value_type *\r
-            get( exception const & x )\r
-                {\r
-                if( exception_detail::error_info_container * c=x.data_.get() )\r
-                    if( shared_ptr<exception_detail::error_info_base> eib = c->get(BOOST_EXCEPTION_STATIC_TYPEID(ErrorInfo)) )\r
-                        {\r
-#ifndef BOOST_NO_RTTI\r
-                        BOOST_ASSERT( 0!=dynamic_cast<ErrorInfo *>(eib.get()) );\r
-#endif\r
-                        ErrorInfo * w = static_cast<ErrorInfo *>(eib.get());\r
-                        return &w->value();\r
-                        }\r
-                return 0;\r
-                }\r
-            };\r
-\r
-        template <>\r
-        struct\r
-        get_info<throw_function>\r
-            {\r
-            static\r
-            char const * *\r
-            get( exception const & x )\r
-                {\r
-                return x.throw_function_ ? &x.throw_function_ : 0;\r
-                }\r
-            };\r
-\r
-        template <>\r
-        struct\r
-        get_info<throw_file>\r
-            {\r
-            static\r
-            char const * *\r
-            get( exception const & x )\r
-                {\r
-                return x.throw_file_ ? &x.throw_file_ : 0;\r
-                }\r
-            };\r
-\r
-        template <>\r
-        struct\r
-        get_info<throw_line>\r
-            {\r
-            static\r
-            int *\r
-            get( exception const & x )\r
-                {\r
-                return x.throw_line_!=-1 ? &x.throw_line_ : 0;\r
-                }\r
-            };\r
-\r
-        template <class T,class R>\r
-        struct\r
-        get_error_info_return_type\r
-            {\r
-            typedef R * type;\r
-            };\r
-\r
-        template <class T,class R>\r
-        struct\r
-        get_error_info_return_type<T const,R>\r
-            {\r
-            typedef R const * type;\r
-            };\r
-        }\r
-\r
-#ifdef BOOST_NO_RTTI\r
-    template <class ErrorInfo>\r
-    inline\r
-    typename ErrorInfo::value_type const *\r
-    get_error_info( boost::exception const & x )\r
-        {\r
-        return exception_detail::get_info<ErrorInfo>::get(x);\r
-        }\r
-    template <class ErrorInfo>\r
-    inline\r
-    typename ErrorInfo::value_type *\r
-    get_error_info( boost::exception & x )\r
-        {\r
-        return exception_detail::get_info<ErrorInfo>::get(x);\r
-        }\r
-#else\r
-    template <class ErrorInfo,class E>\r
-    inline\r
-    typename exception_detail::get_error_info_return_type<E,typename ErrorInfo::value_type>::type\r
-    get_error_info( E & some_exception )\r
-        {\r
-        if( exception const * x = dynamic_cast<exception const *>(&some_exception) )\r
-            return exception_detail::get_info<ErrorInfo>::get(*x);\r
-        else\r
-            return 0;\r
-        }\r
-#endif\r
-    }\r
-\r
-#endif\r
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
+
+//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 UUID_1A590226753311DD9E4CCF6156D89593
+#define UUID_1A590226753311DD9E4CCF6156D89593
+
+#include <boost/exception/exception.hpp>
+#include <boost/exception/detail/error_info_impl.hpp>
+#include <boost/exception/detail/type_info.hpp>
+#include <boost/shared_ptr.hpp>
+
+namespace
+boost
+    {
+    namespace
+    exception_detail
+        {
+        template <class ErrorInfo>
+        struct
+        get_info
+            {
+            static
+            typename ErrorInfo::value_type *
+            get( exception const & x )
+                {
+                if( exception_detail::error_info_container * c=x.data_.get() )
+                    if( shared_ptr<exception_detail::error_info_base> eib = c->get(BOOST_EXCEPTION_STATIC_TYPEID(ErrorInfo)) )
+                        {
+#ifndef BOOST_NO_RTTI
+                        BOOST_ASSERT( 0!=dynamic_cast<ErrorInfo *>(eib.get()) );
+#endif
+                        ErrorInfo * w = static_cast<ErrorInfo *>(eib.get());
+                        return &w->value();
+                        }
+                return 0;
+                }
+            };
+
+        template <>
+        struct
+        get_info<throw_function>
+            {
+            static
+            char const * *
+            get( exception const & x )
+                {
+                return x.throw_function_ ? &x.throw_function_ : 0;
+                }
+            };
+
+        template <>
+        struct
+        get_info<throw_file>
+            {
+            static
+            char const * *
+            get( exception const & x )
+                {
+                return x.throw_file_ ? &x.throw_file_ : 0;
+                }
+            };
+
+        template <>
+        struct
+        get_info<throw_line>
+            {
+            static
+            int *
+            get( exception const & x )
+                {
+                return x.throw_line_!=-1 ? &x.throw_line_ : 0;
+                }
+            };
+
+        template <class T,class R>
+        struct
+        get_error_info_return_type
+            {
+            typedef R * type;
+            };
+
+        template <class T,class R>
+        struct
+        get_error_info_return_type<T const,R>
+            {
+            typedef R const * type;
+            };
+        }
+
+#ifdef BOOST_NO_RTTI
+    template <class ErrorInfo>
+    inline
+    typename ErrorInfo::value_type const *
+    get_error_info( boost::exception const & x )
+        {
+        return exception_detail::get_info<ErrorInfo>::get(x);
+        }
+    template <class ErrorInfo>
+    inline
+    typename ErrorInfo::value_type *
+    get_error_info( boost::exception & x )
+        {
+        return exception_detail::get_info<ErrorInfo>::get(x);
+        }
+#else
+    template <class ErrorInfo,class E>
+    inline
+    typename exception_detail::get_error_info_return_type<E,typename ErrorInfo::value_type>::type
+    get_error_info( E & some_exception )
+        {
+        if( exception const * x = dynamic_cast<exception const *>(&some_exception) )
+            return exception_detail::get_info<ErrorInfo>::get(*x);
+        else
+            return 0;
+        }
+#endif
+    }
+
+#endif
index cc092838124553d5b5a222ae45488454324f3b4c..fb318c990af4b5b5d0b0558b609b8f2928c0500b 100644 (file)
@@ -1,70 +1,70 @@
-// Boost.Function library\r
-//  Copyright (C) Douglas Gregor 2008\r
-//\r
-//  Use, modification and distribution is subject to the Boost\r
-//  Software License, Version 1.0.  (See accompanying file\r
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// For more information, see http://www.boost.org\r
-#ifndef BOOST_FUNCTION_FWD_HPP\r
-#define BOOST_FUNCTION_FWD_HPP\r
-#include <boost/config.hpp>\r
-\r
-#if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730 && !defined(BOOST_STRICT_CONFIG)\r
-// Work around a compiler bug.\r
-// boost::python::objects::function has to be seen by the compiler before the\r
-// boost::function class template.\r
-namespace boost { namespace python { namespace objects {\r
-  class function;\r
-}}}\r
-#endif\r
-\r
-#if defined (BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)                    \\r
- || defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)                         \\r
- || !(defined(BOOST_STRICT_CONFIG) || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540)\r
-#  define BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX\r
-#endif\r
-\r
-namespace boost {\r
-  class bad_function_call;\r
-\r
-#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)\r
-  // Preferred syntax\r
-  template<typename Signature> class function;\r
-\r
-  template<typename Signature>\r
-  inline void swap(function<Signature>& f1, function<Signature>& f2)\r
-  {\r
-    f1.swap(f2);\r
-  }\r
-#endif // have partial specialization\r
-\r
-  // Portable syntax\r
-  template<typename R> class function0;\r
-  template<typename R, typename T1> class function1;\r
-  template<typename R, typename T1, typename T2> class function2;\r
-  template<typename R, typename T1, typename T2, typename T3> class function3;\r
-  template<typename R, typename T1, typename T2, typename T3, typename T4> \r
-    class function4;\r
-  template<typename R, typename T1, typename T2, typename T3, typename T4,\r
-           typename T5> \r
-    class function5;\r
-  template<typename R, typename T1, typename T2, typename T3, typename T4,\r
-           typename T5, typename T6> \r
-    class function6;\r
-  template<typename R, typename T1, typename T2, typename T3, typename T4,\r
-           typename T5, typename T6, typename T7> \r
-    class function7;\r
-  template<typename R, typename T1, typename T2, typename T3, typename T4,\r
-           typename T5, typename T6, typename T7, typename T8> \r
-    class function8;\r
-  template<typename R, typename T1, typename T2, typename T3, typename T4,\r
-           typename T5, typename T6, typename T7, typename T8, typename T9> \r
-    class function9;\r
-  template<typename R, typename T1, typename T2, typename T3, typename T4,\r
-           typename T5, typename T6, typename T7, typename T8, typename T9,\r
-           typename T10> \r
-    class function10;\r
-}\r
-\r
-#endif\r
+// Boost.Function library
+//  Copyright (C) Douglas Gregor 2008
+//
+//  Use, modification and distribution is subject to the Boost
+//  Software License, Version 1.0.  (See accompanying file
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+// For more information, see http://www.boost.org
+#ifndef BOOST_FUNCTION_FWD_HPP
+#define BOOST_FUNCTION_FWD_HPP
+#include <boost/config.hpp>
+
+#if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730 && !defined(BOOST_STRICT_CONFIG)
+// Work around a compiler bug.
+// boost::python::objects::function has to be seen by the compiler before the
+// boost::function class template.
+namespace boost { namespace python { namespace objects {
+  class function;
+}}}
+#endif
+
+#if defined (BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)                    \
+ || defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)                         \
+ || !(defined(BOOST_STRICT_CONFIG) || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540)
+#  define BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX
+#endif
+
+namespace boost {
+  class bad_function_call;
+
+#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
+  // Preferred syntax
+  template<typename Signature> class function;
+
+  template<typename Signature>
+  inline void swap(function<Signature>& f1, function<Signature>& f2)
+  {
+    f1.swap(f2);
+  }
+#endif // have partial specialization
+
+  // Portable syntax
+  template<typename R> class function0;
+  template<typename R, typename T1> class function1;
+  template<typename R, typename T1, typename T2> class function2;
+  template<typename R, typename T1, typename T2, typename T3> class function3;
+  template<typename R, typename T1, typename T2, typename T3, typename T4> 
+    class function4;
+  template<typename R, typename T1, typename T2, typename T3, typename T4,
+           typename T5> 
+    class function5;
+  template<typename R, typename T1, typename T2, typename T3, typename T4,
+           typename T5, typename T6> 
+    class function6;
+  template<typename R, typename T1, typename T2, typename T3, typename T4,
+           typename T5, typename T6, typename T7> 
+    class function7;
+  template<typename R, typename T1, typename T2, typename T3, typename T4,
+           typename T5, typename T6, typename T7, typename T8> 
+    class function8;
+  template<typename R, typename T1, typename T2, typename T3, typename T4,
+           typename T5, typename T6, typename T7, typename T8, typename T9> 
+    class function9;
+  template<typename R, typename T1, typename T2, typename T3, typename T4,
+           typename T5, typename T6, typename T7, typename T8, typename T9,
+           typename T10> 
+    class function10;
+}
+
+#endif
index b2c1255e22f9360efdba2da23305c455a23a9b2a..246dc15d09adcb8e534305b95b3278ed5ac70bf8 100644 (file)
@@ -1,45 +1,45 @@
-// Boost.Function library - Typeof support\r
-//  Copyright (C) Douglas Gregor 2008\r
-//\r
-//  Use, modification and distribution is subject to the Boost\r
-//  Software License, Version 1.0.  (See accompanying file\r
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// For more information, see http://www.boost.org\r
-#ifndef BOOST_FUNCTION_TYPEOF_HPP\r
-#define BOOST_FUNCTION_TYPEOF_HPP\r
-#include <boost/function/function_fwd.hpp>\r
-#include <boost/typeof/typeof.hpp>\r
-\r
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()\r
-\r
-BOOST_TYPEOF_REGISTER_TYPE(boost::bad_function_call)\r
-\r
-#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)\r
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function, (typename))\r
-#endif\r
-\r
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function0, (typename))\r
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function1, (typename)(typename))\r
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function2, (typename)(typename)(typename))\r
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function3, \r
-  (typename)(typename)(typename)(typename))\r
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function4, \r
-  (typename)(typename)(typename)(typename)(typename))\r
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function5, \r
-  (typename)(typename)(typename)(typename)(typename)(typename))\r
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function6, \r
-  (typename)(typename)(typename)(typename)(typename)(typename)(typename))\r
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function7, \r
-  (typename)(typename)(typename)(typename)(typename)(typename)(typename)\r
-  (typename))\r
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function8, \r
-  (typename)(typename)(typename)(typename)(typename)(typename)(typename)\r
-  (typename)(typename))\r
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function9, \r
-  (typename)(typename)(typename)(typename)(typename)(typename)(typename)\r
-  (typename)(typename)(typename))\r
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function10, \r
-  (typename)(typename)(typename)(typename)(typename)(typename)(typename)\r
-  (typename)(typename)(typename)(typename))\r
-#endif\r
+// Boost.Function library - Typeof support
+//  Copyright (C) Douglas Gregor 2008
+//
+//  Use, modification and distribution is subject to the Boost
+//  Software License, Version 1.0.  (See accompanying file
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+// For more information, see http://www.boost.org
+#ifndef BOOST_FUNCTION_TYPEOF_HPP
+#define BOOST_FUNCTION_TYPEOF_HPP
+#include <boost/function/function_fwd.hpp>
+#include <boost/typeof/typeof.hpp>
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::bad_function_call)
+
+#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function, (typename))
+#endif
+
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function0, (typename))
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function1, (typename)(typename))
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function2, (typename)(typename)(typename))
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function3, 
+  (typename)(typename)(typename)(typename))
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function4, 
+  (typename)(typename)(typename)(typename)(typename))
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function5, 
+  (typename)(typename)(typename)(typename)(typename)(typename))
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function6, 
+  (typename)(typename)(typename)(typename)(typename)(typename)(typename))
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function7, 
+  (typename)(typename)(typename)(typename)(typename)(typename)(typename)
+  (typename))
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function8, 
+  (typename)(typename)(typename)(typename)(typename)(typename)(typename)
+  (typename)(typename))
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function9, 
+  (typename)(typename)(typename)(typename)(typename)(typename)(typename)
+  (typename)(typename)(typename))
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function10, 
+  (typename)(typename)(typename)(typename)(typename)(typename)(typename)
+  (typename)(typename)(typename)(typename))
+#endif
index 2388e645d032defd85468cfbe412e9ab6974e809..9a69d155b2a1d0249d2c8c247c316fbae28b7513 100644 (file)
@@ -1,19 +1,19 @@
-\r
-// Copyright 2005-2008 Daniel James.\r
-// Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-// Forwarding header for container_fwd.hpp's new location.\r
-// This header is deprecated, I'll be adding a warning in a future release,\r
-// then converting it to an error and finally removing this header completely.\r
-\r
-#if !defined(BOOST_FUNCTIONAL_DETAIL_CONTAINER_FWD_HPP)\r
-#define BOOST_FUNCTIONAL_DETAIL_CONTAINER_FWD_HPP\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-#include <boost/detail/container_fwd.hpp>\r
-\r
-#endif\r
+
+// Copyright 2005-2008 Daniel James.
+// 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)
+
+// Forwarding header for container_fwd.hpp's new location.
+// This header is deprecated, I'll be adding a warning in a future release,
+// then converting it to an error and finally removing this header completely.
+
+#if !defined(BOOST_FUNCTIONAL_DETAIL_CONTAINER_FWD_HPP)
+#define BOOST_FUNCTIONAL_DETAIL_CONTAINER_FWD_HPP
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+#include <boost/detail/container_fwd.hpp>
+
+#endif
index 80f7fa9a8c206f9d25377e80f626169ae4b4e47e..44983f19b2670e932f8ad94b4a27386b5a567e4f 100644 (file)
@@ -1,7 +1,7 @@
-\r
-// Copyright 2005-2009 Daniel James.\r
-// Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#include <boost/functional/hash/hash.hpp>\r
-\r
+
+// Copyright 2005-2009 Daniel James.
+// 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)
+
+#include <boost/functional/hash/hash.hpp>
+
index b46b6735f86684e57d2867f03c91d3b301abeacc..01cac097224c4cab9d7b9bae64ed2760d734927a 100644 (file)
-\r
-// Copyright 2005-2009 Daniel James.\r
-// Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_FLOAT_FUNCTIONS_HPP)\r
-#define BOOST_FUNCTIONAL_HASH_DETAIL_FLOAT_FUNCTIONS_HPP\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/config/no_tr1/cmath.hpp>\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-// The C++ standard requires that the C float functions are overloarded\r
-// for float, double and long double in the std namespace, but some of the older\r
-// library implementations don't support this. On some that don't, the C99\r
-// float functions (frexpf, frexpl, etc.) are available.\r
-//\r
-// The following tries to automatically detect which are available.\r
-\r
-namespace boost {\r
-    namespace hash_detail {\r
-\r
-        // Returned by dummy versions of the float functions.\r
-    \r
-        struct not_found {\r
-            // Implicitly convertible to float and long double in order to avoid\r
-            // a compile error when the dummy float functions are used.\r
-\r
-            inline operator float() const { return 0; }\r
-            inline operator long double() const { return 0; }\r
-        };\r
-          \r
-        // A type for detecting the return type of functions.\r
-\r
-        template <typename T> struct is;\r
-        template <> struct is<float> { char x[10]; };\r
-        template <> struct is<double> { char x[20]; };\r
-        template <> struct is<long double> { char x[30]; };\r
-        template <> struct is<boost::hash_detail::not_found> { char x[40]; };\r
-            \r
-        // Used to convert the return type of a function to a type for sizeof.\r
-\r
-        template <typename T> is<T> float_type(T);\r
-\r
-        // call_ldexp\r
-        //\r
-        // This will get specialized for float and long double\r
-        \r
-        template <typename Float> struct call_ldexp\r
-        {\r
-            typedef double float_type;\r
-            \r
-            inline double operator()(double a, int b) const\r
-            {\r
-                using namespace std;\r
-                return ldexp(a, b);\r
-            }\r
-        };\r
-\r
-        // call_frexp\r
-        //\r
-        // This will get specialized for float and long double\r
-\r
-        template <typename Float> struct call_frexp\r
-        {\r
-            typedef double float_type;\r
-            \r
-            inline double operator()(double a, int* b) const\r
-            {\r
-                using namespace std;\r
-                return frexp(a, b);\r
-            }\r
-        };\r
-    }\r
-}\r
-            \r
-// A namespace for dummy functions to detect when the actual function we want\r
-// isn't available. ldexpl, ldexpf etc. might be added tby the macros below.\r
-//\r
-// AFAICT these have to be outside of the boost namespace, as if they're in\r
-// the boost namespace they'll always be preferable to any other function\r
-// (since the arguments are built in types, ADL can't be used).\r
-\r
-namespace BOOST_HASH_DETECT_FLOAT_FUNCTIONS {\r
-    template <class Float> boost::hash_detail::not_found ldexp(Float, int);\r
-    template <class Float> boost::hash_detail::not_found frexp(Float, int*);    \r
-}\r
-\r
-// Macros for generating specializations of call_ldexp and call_frexp.\r
-//\r
-// check_cpp and check_c99 check if the C++ or C99 functions are available.\r
-//\r
-// Then the call_* functions select an appropriate implementation.\r
-//\r
-// I used c99_func in a few places just to get a unique name.\r
-//\r
-// Important: when using 'using namespace' at namespace level, include as\r
-// little as possible in that namespace, as Visual C++ has an odd bug which\r
-// can cause the namespace to be imported at the global level. This seems to\r
-// happen mainly when there's a template in the same namesapce.\r
-\r
-#define BOOST_HASH_CALL_FLOAT_FUNC(cpp_func, c99_func, type1, type2)    \\r
-namespace BOOST_HASH_DETECT_FLOAT_FUNCTIONS {                           \\r
-    template <class Float>                                              \\r
-    boost::hash_detail::not_found c99_func(Float, type2);               \\r
-}                                                                       \\r
-                                                                        \\r
-namespace boost {                                                       \\r
-    namespace hash_detail {                                             \\r
-        namespace c99_func##_detect {                                   \\r
-            using namespace std;                                        \\r
-            using namespace BOOST_HASH_DETECT_FLOAT_FUNCTIONS;          \\r
-                                                                        \\r
-            struct check {                                              \\r
-                static type1 x;                                         \\r
-                static type2 y;                                         \\r
-                BOOST_STATIC_CONSTANT(bool, cpp =                       \\r
-                    sizeof(float_type(cpp_func(x,y)))                   \\r
-                        == sizeof(is<type1>));                          \\r
-                BOOST_STATIC_CONSTANT(bool, c99 =                       \\r
-                    sizeof(float_type(c99_func(x,y)))                   \\r
-                        == sizeof(is<type1>));                          \\r
-            };                                                          \\r
-        }                                                               \\r
-                                                                        \\r
-        template <bool x>                                               \\r
-        struct call_c99_##c99_func :                                    \\r
-            boost::hash_detail::call_##cpp_func<double> {};             \\r
-                                                                        \\r
-        template <>                                                     \\r
-        struct call_c99_##c99_func<true> {                              \\r
-            typedef type1 float_type;                                   \\r
-                                                                        \\r
-            template <typename T>                                       \\r
-            inline type1 operator()(type1 a, T b)  const                \\r
-            {                                                           \\r
-                using namespace std;                                    \\r
-                return c99_func(a, b);                                  \\r
-            }                                                           \\r
-        };                                                              \\r
-                                                                        \\r
-        template <bool x>                                               \\r
-        struct call_cpp_##c99_func :                                    \\r
-            call_c99_##c99_func<                                        \\r
-                ::boost::hash_detail::c99_func##_detect::check::c99     \\r
-            > {};                                                       \\r
-                                                                        \\r
-        template <>                                                     \\r
-        struct call_cpp_##c99_func<true> {                              \\r
-            typedef type1 float_type;                                   \\r
-                                                                        \\r
-            template <typename T>                                       \\r
-            inline type1 operator()(type1 a, T b)  const                \\r
-            {                                                           \\r
-                using namespace std;                                    \\r
-                return cpp_func(a, b);                                  \\r
-            }                                                           \\r
-        };                                                              \\r
-                                                                        \\r
-        template <>                                                     \\r
-        struct call_##cpp_func<type1> :                                 \\r
-            call_cpp_##c99_func<                                        \\r
-                ::boost::hash_detail::c99_func##_detect::check::cpp     \\r
-            > {};                                                       \\r
-    }                                                                   \\r
-}\r
-\r
-#define BOOST_HASH_CALL_FLOAT_MACRO(cpp_func, c99_func, type1, type2)   \\r
-namespace boost {                                                       \\r
-    namespace hash_detail {                                             \\r
-                                                                        \\r
-        template <>                                                     \\r
-        struct call_##cpp_func<type1> {                                 \\r
-            typedef type1 float_type;                                   \\r
-            inline type1 operator()(type1 x, type2 y) const {           \\r
-                return c99_func(x, y);                                  \\r
-            }                                                           \\r
-        };                                                              \\r
-    }                                                                   \\r
-}\r
-\r
-#if defined(ldexpf)\r
-BOOST_HASH_CALL_FLOAT_MACRO(ldexp, ldexpf, float, int)\r
-#else\r
-BOOST_HASH_CALL_FLOAT_FUNC(ldexp, ldexpf, float, int)\r
-#endif\r
-\r
-#if defined(ldexpl)\r
-BOOST_HASH_CALL_FLOAT_MACRO(ldexp, ldexpl, long double, int)\r
-#else\r
-BOOST_HASH_CALL_FLOAT_FUNC(ldexp, ldexpl, long double, int)\r
-#endif\r
-\r
-#if defined(frexpf)\r
-BOOST_HASH_CALL_FLOAT_MACRO(frexp, frexpf, float, int*)\r
-#else\r
-BOOST_HASH_CALL_FLOAT_FUNC(frexp, frexpf, float, int*)\r
-#endif\r
-\r
-#if defined(frexpl)\r
-BOOST_HASH_CALL_FLOAT_MACRO(frexp, frexpl, long double, int*)\r
-#else\r
-BOOST_HASH_CALL_FLOAT_FUNC(frexp, frexpl, long double, int*)\r
-#endif\r
-\r
-#undef BOOST_HASH_CALL_FLOAT_MACRO\r
-#undef BOOST_HASH_CALL_FLOAT_FUNC\r
-\r
-\r
-namespace boost\r
-{\r
-    namespace hash_detail\r
-    {\r
-        template <typename Float1, typename Float2>\r
-        struct select_hash_type_impl {\r
-            typedef double type;\r
-        };\r
-\r
-        template <>\r
-        struct select_hash_type_impl<float, float> {\r
-            typedef float type;\r
-        };\r
-\r
-        template <>\r
-        struct select_hash_type_impl<long double, long double> {\r
-            typedef long double type;\r
-        };\r
-\r
-\r
-        // select_hash_type\r
-        //\r
-        // If there is support for a particular floating point type, use that\r
-        // otherwise use double (there's always support for double).\r
-             \r
-        template <typename Float>\r
-        struct select_hash_type : select_hash_type_impl<\r
-                BOOST_DEDUCED_TYPENAME call_ldexp<Float>::float_type,\r
-                BOOST_DEDUCED_TYPENAME call_frexp<Float>::float_type\r
-            > {};            \r
-    }\r
-}\r
-\r
-#endif\r
+
+// Copyright 2005-2009 Daniel James.
+// 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(BOOST_FUNCTIONAL_HASH_DETAIL_FLOAT_FUNCTIONS_HPP)
+#define BOOST_FUNCTIONAL_HASH_DETAIL_FLOAT_FUNCTIONS_HPP
+
+#include <boost/config.hpp>
+#include <boost/config/no_tr1/cmath.hpp>
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+// The C++ standard requires that the C float functions are overloarded
+// for float, double and long double in the std namespace, but some of the older
+// library implementations don't support this. On some that don't, the C99
+// float functions (frexpf, frexpl, etc.) are available.
+//
+// The following tries to automatically detect which are available.
+
+namespace boost {
+    namespace hash_detail {
+
+        // Returned by dummy versions of the float functions.
+    
+        struct not_found {
+            // Implicitly convertible to float and long double in order to avoid
+            // a compile error when the dummy float functions are used.
+
+            inline operator float() const { return 0; }
+            inline operator long double() const { return 0; }
+        };
+          
+        // A type for detecting the return type of functions.
+
+        template <typename T> struct is;
+        template <> struct is<float> { char x[10]; };
+        template <> struct is<double> { char x[20]; };
+        template <> struct is<long double> { char x[30]; };
+        template <> struct is<boost::hash_detail::not_found> { char x[40]; };
+            
+        // Used to convert the return type of a function to a type for sizeof.
+
+        template <typename T> is<T> float_type(T);
+
+        // call_ldexp
+        //
+        // This will get specialized for float and long double
+        
+        template <typename Float> struct call_ldexp
+        {
+            typedef double float_type;
+            
+            inline double operator()(double a, int b) const
+            {
+                using namespace std;
+                return ldexp(a, b);
+            }
+        };
+
+        // call_frexp
+        //
+        // This will get specialized for float and long double
+
+        template <typename Float> struct call_frexp
+        {
+            typedef double float_type;
+            
+            inline double operator()(double a, int* b) const
+            {
+                using namespace std;
+                return frexp(a, b);
+            }
+        };
+    }
+}
+            
+// A namespace for dummy functions to detect when the actual function we want
+// isn't available. ldexpl, ldexpf etc. might be added tby the macros below.
+//
+// AFAICT these have to be outside of the boost namespace, as if they're in
+// the boost namespace they'll always be preferable to any other function
+// (since the arguments are built in types, ADL can't be used).
+
+namespace BOOST_HASH_DETECT_FLOAT_FUNCTIONS {
+    template <class Float> boost::hash_detail::not_found ldexp(Float, int);
+    template <class Float> boost::hash_detail::not_found frexp(Float, int*);    
+}
+
+// Macros for generating specializations of call_ldexp and call_frexp.
+//
+// check_cpp and check_c99 check if the C++ or C99 functions are available.
+//
+// Then the call_* functions select an appropriate implementation.
+//
+// I used c99_func in a few places just to get a unique name.
+//
+// Important: when using 'using namespace' at namespace level, include as
+// little as possible in that namespace, as Visual C++ has an odd bug which
+// can cause the namespace to be imported at the global level. This seems to
+// happen mainly when there's a template in the same namesapce.
+
+#define BOOST_HASH_CALL_FLOAT_FUNC(cpp_func, c99_func, type1, type2)    \
+namespace BOOST_HASH_DETECT_FLOAT_FUNCTIONS {                           \
+    template <class Float>                                              \
+    boost::hash_detail::not_found c99_func(Float, type2);               \
+}                                                                       \
+                                                                        \
+namespace boost {                                                       \
+    namespace hash_detail {                                             \
+        namespace c99_func##_detect {                                   \
+            using namespace std;                                        \
+            using namespace BOOST_HASH_DETECT_FLOAT_FUNCTIONS;          \
+                                                                        \
+            struct check {                                              \
+                static type1 x;                                         \
+                static type2 y;                                         \
+                BOOST_STATIC_CONSTANT(bool, cpp =                       \
+                    sizeof(float_type(cpp_func(x,y)))                   \
+                        == sizeof(is<type1>));                          \
+                BOOST_STATIC_CONSTANT(bool, c99 =                       \
+                    sizeof(float_type(c99_func(x,y)))                   \
+                        == sizeof(is<type1>));                          \
+            };                                                          \
+        }                                                               \
+                                                                        \
+        template <bool x>                                               \
+        struct call_c99_##c99_func :                                    \
+            boost::hash_detail::call_##cpp_func<double> {};             \
+                                                                        \
+        template <>                                                     \
+        struct call_c99_##c99_func<true> {                              \
+            typedef type1 float_type;                                   \
+                                                                        \
+            template <typename T>                                       \
+            inline type1 operator()(type1 a, T b)  const                \
+            {                                                           \
+                using namespace std;                                    \
+                return c99_func(a, b);                                  \
+            }                                                           \
+        };                                                              \
+                                                                        \
+        template <bool x>                                               \
+        struct call_cpp_##c99_func :                                    \
+            call_c99_##c99_func<                                        \
+                ::boost::hash_detail::c99_func##_detect::check::c99     \
+            > {};                                                       \
+                                                                        \
+        template <>                                                     \
+        struct call_cpp_##c99_func<true> {                              \
+            typedef type1 float_type;                                   \
+                                                                        \
+            template <typename T>                                       \
+            inline type1 operator()(type1 a, T b)  const                \
+            {                                                           \
+                using namespace std;                                    \
+                return cpp_func(a, b);                                  \
+            }                                                           \
+        };                                                              \
+                                                                        \
+        template <>                                                     \
+        struct call_##cpp_func<type1> :                                 \
+            call_cpp_##c99_func<                                        \
+                ::boost::hash_detail::c99_func##_detect::check::cpp     \
+            > {};                                                       \
+    }                                                                   \
+}
+
+#define BOOST_HASH_CALL_FLOAT_MACRO(cpp_func, c99_func, type1, type2)   \
+namespace boost {                                                       \
+    namespace hash_detail {                                             \
+                                                                        \
+        template <>                                                     \
+        struct call_##cpp_func<type1> {                                 \
+            typedef type1 float_type;                                   \
+            inline type1 operator()(type1 x, type2 y) const {           \
+                return c99_func(x, y);                                  \
+            }                                                           \
+        };                                                              \
+    }                                                                   \
+}
+
+#if defined(ldexpf)
+BOOST_HASH_CALL_FLOAT_MACRO(ldexp, ldexpf, float, int)
+#else
+BOOST_HASH_CALL_FLOAT_FUNC(ldexp, ldexpf, float, int)
+#endif
+
+#if defined(ldexpl)
+BOOST_HASH_CALL_FLOAT_MACRO(ldexp, ldexpl, long double, int)
+#else
+BOOST_HASH_CALL_FLOAT_FUNC(ldexp, ldexpl, long double, int)
+#endif
+
+#if defined(frexpf)
+BOOST_HASH_CALL_FLOAT_MACRO(frexp, frexpf, float, int*)
+#else
+BOOST_HASH_CALL_FLOAT_FUNC(frexp, frexpf, float, int*)
+#endif
+
+#if defined(frexpl)
+BOOST_HASH_CALL_FLOAT_MACRO(frexp, frexpl, long double, int*)
+#else
+BOOST_HASH_CALL_FLOAT_FUNC(frexp, frexpl, long double, int*)
+#endif
+
+#undef BOOST_HASH_CALL_FLOAT_MACRO
+#undef BOOST_HASH_CALL_FLOAT_FUNC
+
+
+namespace boost
+{
+    namespace hash_detail
+    {
+        template <typename Float1, typename Float2>
+        struct select_hash_type_impl {
+            typedef double type;
+        };
+
+        template <>
+        struct select_hash_type_impl<float, float> {
+            typedef float type;
+        };
+
+        template <>
+        struct select_hash_type_impl<long double, long double> {
+            typedef long double type;
+        };
+
+
+        // select_hash_type
+        //
+        // If there is support for a particular floating point type, use that
+        // otherwise use double (there's always support for double).
+             
+        template <typename Float>
+        struct select_hash_type : select_hash_type_impl<
+                BOOST_DEDUCED_TYPENAME call_ldexp<Float>::float_type,
+                BOOST_DEDUCED_TYPENAME call_frexp<Float>::float_type
+            > {};            
+    }
+}
+
+#endif
index 8108f4650ccd6a2cdb34136d28fb410ab6e17670..ea1bc25f483a1a8aacc0de0fa75f4af61d12cc34 100644 (file)
-\r
-// Copyright 2005-2009 Daniel James.\r
-// Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_HEADER)\r
-#define BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_HEADER\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/functional/hash/detail/float_functions.hpp>\r
-#include <boost/functional/hash/detail/limits.hpp>\r
-#include <boost/integer/static_log2.hpp>\r
-#include <boost/cstdint.hpp>\r
-#include <boost/assert.hpp>\r
-\r
-// Include hash implementation for the current platform.\r
-\r
-// Cygwn\r
-#if defined(__CYGWIN__)\r
-#  if defined(__i386__) || defined(_M_IX86)\r
-#    include <boost/functional/hash/detail/hash_float_x86.hpp>\r
-#  else\r
-#    include <boost/functional/hash/detail/hash_float_generic.hpp>\r
-#  endif\r
-#else\r
-#  include <boost/functional/hash/detail/hash_float_generic.hpp>\r
-#endif\r
-\r
-// Can we use fpclassify?\r
-\r
-// STLport\r
-#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)\r
-#define BOOST_HASH_USE_FPCLASSIFY 0\r
-\r
-// GNU libstdc++ 3\r
-#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)\r
-#  if (defined(__USE_ISOC99) || defined(_GLIBCXX_USE_C99_MATH)) && \\r
-      !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__))\r
-#    define BOOST_HASH_USE_FPCLASSIFY 1\r
-#  else\r
-#    define BOOST_HASH_USE_FPCLASSIFY 0\r
-#  endif\r
-\r
-// Everything else\r
-#else\r
-#  define BOOST_HASH_USE_FPCLASSIFY 0\r
-#endif\r
-\r
-#if BOOST_HASH_USE_FPCLASSIFY\r
-\r
-#include <boost/config/no_tr1/cmath.hpp>\r
-\r
-namespace boost\r
-{\r
-    namespace hash_detail\r
-    {\r
-        template <class T>\r
-        inline std::size_t float_hash_value(T v)\r
-        {\r
-            using namespace std;\r
-            switch (fpclassify(v)) {\r
-            case FP_ZERO:\r
-                return 0;\r
-            case FP_INFINITE:\r
-                return (std::size_t)(v > 0 ? -1 : -2);\r
-            case FP_NAN:\r
-                return (std::size_t)(-3);\r
-            case FP_NORMAL:\r
-            case FP_SUBNORMAL:\r
-                return float_hash_impl(v);\r
-            default:\r
-                BOOST_ASSERT(0);\r
-                return 0;\r
-            }\r
-        }\r
-    }\r
-}\r
-\r
-#else // !BOOST_HASH_USE_FPCLASSIFY\r
-\r
-namespace boost\r
-{\r
-    namespace hash_detail\r
-    {\r
-        template <class T>\r
-        inline std::size_t float_hash_value(T v)\r
-        {\r
-            return v == 0 ? 0 : float_hash_impl(v);\r
-        }\r
-    }\r
-}\r
-\r
-#endif // BOOST_HASH_USE_FPCLASSIFY\r
-\r
-#undef BOOST_HASH_USE_FPCLASSIFY\r
-\r
-#endif\r
+
+// Copyright 2005-2009 Daniel James.
+// 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(BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_HEADER)
+#define BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_HEADER
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+#include <boost/config.hpp>
+#include <boost/functional/hash/detail/float_functions.hpp>
+#include <boost/functional/hash/detail/limits.hpp>
+#include <boost/integer/static_log2.hpp>
+#include <boost/cstdint.hpp>
+#include <boost/assert.hpp>
+
+// Include hash implementation for the current platform.
+
+// Cygwn
+#if defined(__CYGWIN__)
+#  if defined(__i386__) || defined(_M_IX86)
+#    include <boost/functional/hash/detail/hash_float_x86.hpp>
+#  else
+#    include <boost/functional/hash/detail/hash_float_generic.hpp>
+#  endif
+#else
+#  include <boost/functional/hash/detail/hash_float_generic.hpp>
+#endif
+
+// Can we use fpclassify?
+
+// STLport
+#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
+#define BOOST_HASH_USE_FPCLASSIFY 0
+
+// GNU libstdc++ 3
+#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
+#  if (defined(__USE_ISOC99) || defined(_GLIBCXX_USE_C99_MATH)) && \
+      !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__))
+#    define BOOST_HASH_USE_FPCLASSIFY 1
+#  else
+#    define BOOST_HASH_USE_FPCLASSIFY 0
+#  endif
+
+// Everything else
+#else
+#  define BOOST_HASH_USE_FPCLASSIFY 0
+#endif
+
+#if BOOST_HASH_USE_FPCLASSIFY
+
+#include <boost/config/no_tr1/cmath.hpp>
+
+namespace boost
+{
+    namespace hash_detail
+    {
+        template <class T>
+        inline std::size_t float_hash_value(T v)
+        {
+            using namespace std;
+            switch (fpclassify(v)) {
+            case FP_ZERO:
+                return 0;
+            case FP_INFINITE:
+                return (std::size_t)(v > 0 ? -1 : -2);
+            case FP_NAN:
+                return (std::size_t)(-3);
+            case FP_NORMAL:
+            case FP_SUBNORMAL:
+                return float_hash_impl(v);
+            default:
+                BOOST_ASSERT(0);
+                return 0;
+            }
+        }
+    }
+}
+
+#else // !BOOST_HASH_USE_FPCLASSIFY
+
+namespace boost
+{
+    namespace hash_detail
+    {
+        template <class T>
+        inline std::size_t float_hash_value(T v)
+        {
+            return v == 0 ? 0 : float_hash_impl(v);
+        }
+    }
+}
+
+#endif // BOOST_HASH_USE_FPCLASSIFY
+
+#undef BOOST_HASH_USE_FPCLASSIFY
+
+#endif
index abb16a6518e233d507be7861f390a5a58038e787..f9acee9cd1ecb34ced8fe5cdca5fb3d7d066162a 100644 (file)
@@ -1,93 +1,93 @@
-\r
-// Copyright 2005-2009 Daniel James.\r
-// Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-// A general purpose hash function for non-zero floating point values.\r
-\r
-#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_GENERIC_HEADER)\r
-#define BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_GENERIC_HEADER\r
-\r
-#include <boost/functional/hash/detail/float_functions.hpp>\r
-#include <boost/integer/static_log2.hpp>\r
-#include <boost/functional/hash/detail/limits.hpp>\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-#if defined(BOOST_MSVC)\r
-#pragma warning(push)\r
-#if BOOST_MSVC >= 1400\r
-#pragma warning(disable:6294) // Ill-defined for-loop: initial condition does\r
-                              // not satisfy test. Loop body not executed \r
-#endif\r
-#endif\r
-\r
-namespace boost\r
-{\r
-    namespace hash_detail\r
-    {\r
-        inline void hash_float_combine(std::size_t& seed, std::size_t value)\r
-        {\r
-            seed ^= value + (seed<<6) + (seed>>2);\r
-        }\r
-\r
-        template <class T>\r
-        inline std::size_t float_hash_impl2(T v)\r
-        {\r
-            boost::hash_detail::call_frexp<T> frexp;\r
-            boost::hash_detail::call_ldexp<T> ldexp;\r
-        \r
-            int exp = 0;\r
-\r
-            v = frexp(v, &exp);\r
-\r
-            // A postive value is easier to hash, so combine the\r
-            // sign with the exponent and use the absolute value.\r
-            if(v < 0) {\r
-                v = -v;\r
-                exp += limits<T>::max_exponent -\r
-                    limits<T>::min_exponent;\r
-            }\r
-\r
-            // The result of frexp is always between 0.5 and 1, so its\r
-            // top bit will always be 1. Subtract by 0.5 to remove that.\r
-            v -= T(0.5);\r
-            v = ldexp(v, limits<std::size_t>::digits + 1);\r
-            std::size_t seed = static_cast<std::size_t>(v);\r
-            v -= seed;\r
-\r
-            // ceiling(digits(T) * log2(radix(T))/ digits(size_t)) - 1;\r
-            std::size_t const length\r
-                = (limits<T>::digits *\r
-                        boost::static_log2<limits<T>::radix>::value - 1)\r
-                / limits<std::size_t>::digits;\r
-\r
-            for(std::size_t i = 0; i != length; ++i)\r
-            {\r
-                v = ldexp(v, limits<std::size_t>::digits);\r
-                std::size_t part = static_cast<std::size_t>(v);\r
-                v -= part;\r
-                hash_float_combine(seed, part);\r
-            }\r
-\r
-            hash_float_combine(seed, exp);\r
-\r
-            return seed;\r
-        }\r
-\r
-        template <class T>\r
-        inline std::size_t float_hash_impl(T v)\r
-        {\r
-            typedef BOOST_DEDUCED_TYPENAME select_hash_type<T>::type type;\r
-            return float_hash_impl2(static_cast<type>(v));\r
-        }\r
-    }\r
-}\r
-\r
-#if defined(BOOST_MSVC)\r
-#pragma warning(pop)\r
-#endif\r
-\r
-#endif\r
+
+// Copyright 2005-2009 Daniel James.
+// 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)
+
+// A general purpose hash function for non-zero floating point values.
+
+#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_GENERIC_HEADER)
+#define BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_GENERIC_HEADER
+
+#include <boost/functional/hash/detail/float_functions.hpp>
+#include <boost/integer/static_log2.hpp>
+#include <boost/functional/hash/detail/limits.hpp>
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+#if defined(BOOST_MSVC)
+#pragma warning(push)
+#if BOOST_MSVC >= 1400
+#pragma warning(disable:6294) // Ill-defined for-loop: initial condition does
+                              // not satisfy test. Loop body not executed 
+#endif
+#endif
+
+namespace boost
+{
+    namespace hash_detail
+    {
+        inline void hash_float_combine(std::size_t& seed, std::size_t value)
+        {
+            seed ^= value + (seed<<6) + (seed>>2);
+        }
+
+        template <class T>
+        inline std::size_t float_hash_impl2(T v)
+        {
+            boost::hash_detail::call_frexp<T> frexp;
+            boost::hash_detail::call_ldexp<T> ldexp;
+        
+            int exp = 0;
+
+            v = frexp(v, &exp);
+
+            // A postive value is easier to hash, so combine the
+            // sign with the exponent and use the absolute value.
+            if(v < 0) {
+                v = -v;
+                exp += limits<T>::max_exponent -
+                    limits<T>::min_exponent;
+            }
+
+            // The result of frexp is always between 0.5 and 1, so its
+            // top bit will always be 1. Subtract by 0.5 to remove that.
+            v -= T(0.5);
+            v = ldexp(v, limits<std::size_t>::digits + 1);
+            std::size_t seed = static_cast<std::size_t>(v);
+            v -= seed;
+
+            // ceiling(digits(T) * log2(radix(T))/ digits(size_t)) - 1;
+            std::size_t const length
+                = (limits<T>::digits *
+                        boost::static_log2<limits<T>::radix>::value - 1)
+                / limits<std::size_t>::digits;
+
+            for(std::size_t i = 0; i != length; ++i)
+            {
+                v = ldexp(v, limits<std::size_t>::digits);
+                std::size_t part = static_cast<std::size_t>(v);
+                v -= part;
+                hash_float_combine(seed, part);
+            }
+
+            hash_float_combine(seed, exp);
+
+            return seed;
+        }
+
+        template <class T>
+        inline std::size_t float_hash_impl(T v)
+        {
+            typedef BOOST_DEDUCED_TYPENAME select_hash_type<T>::type type;
+            return float_hash_impl2(static_cast<type>(v));
+        }
+    }
+}
+
+#if defined(BOOST_MSVC)
+#pragma warning(pop)
+#endif
+
+#endif
index ee8e75810bedf243bae260dcd37af8e64f414f92..b39bb0d081767474f48554feae091c10052d1022 100644 (file)
@@ -1,56 +1,56 @@
-\r
-// Copyright 2005-2009 Daniel James.\r
-// Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-// A non-portable hash function form non-zero floats on x86.\r
-//\r
-// Even if you're on an x86 platform, this might not work if their floating\r
-// point isn't set up as this expects. So this should only be used if it's\r
-// absolutely certain that it will work.\r
-\r
-#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_X86_HEADER)\r
-#define BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_X86_HEADER\r
-\r
-#include <boost/cstdint.hpp>\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-namespace boost\r
-{\r
-    namespace hash_detail\r
-    {\r
-        inline void hash_float_combine(std::size_t& seed, std::size_t value)\r
-        {\r
-            seed ^= value + (seed<<6) + (seed>>2);\r
-        }\r
-\r
-        inline std::size_t float_hash_impl(float v)\r
-        {\r
-            boost::uint32_t* ptr = (boost::uint32_t*)&v;\r
-            std::size_t seed = *ptr;\r
-            return seed;\r
-        }\r
-\r
-        inline std::size_t float_hash_impl(double v)\r
-        {\r
-            boost::uint32_t* ptr = (boost::uint32_t*)&v;\r
-            std::size_t seed = *ptr++;\r
-            hash_float_combine(seed, *ptr);\r
-            return seed;\r
-        }\r
-\r
-        inline std::size_t float_hash_impl(long double v)\r
-        {\r
-            boost::uint32_t* ptr = (boost::uint32_t*)&v;\r
-            std::size_t seed = *ptr++;\r
-            hash_float_combine(seed, *ptr++);\r
-            hash_float_combine(seed, *(boost::uint16_t*)ptr);\r
-            return seed;\r
-        }\r
-    }\r
-}\r
-\r
-#endif\r
+
+// Copyright 2005-2009 Daniel James.
+// 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)
+
+// A non-portable hash function form non-zero floats on x86.
+//
+// Even if you're on an x86 platform, this might not work if their floating
+// point isn't set up as this expects. So this should only be used if it's
+// absolutely certain that it will work.
+
+#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_X86_HEADER)
+#define BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_X86_HEADER
+
+#include <boost/cstdint.hpp>
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+namespace boost
+{
+    namespace hash_detail
+    {
+        inline void hash_float_combine(std::size_t& seed, std::size_t value)
+        {
+            seed ^= value + (seed<<6) + (seed>>2);
+        }
+
+        inline std::size_t float_hash_impl(float v)
+        {
+            boost::uint32_t* ptr = (boost::uint32_t*)&v;
+            std::size_t seed = *ptr;
+            return seed;
+        }
+
+        inline std::size_t float_hash_impl(double v)
+        {
+            boost::uint32_t* ptr = (boost::uint32_t*)&v;
+            std::size_t seed = *ptr++;
+            hash_float_combine(seed, *ptr);
+            return seed;
+        }
+
+        inline std::size_t float_hash_impl(long double v)
+        {
+            boost::uint32_t* ptr = (boost::uint32_t*)&v;
+            std::size_t seed = *ptr++;
+            hash_float_combine(seed, *ptr++);
+            hash_float_combine(seed, *(boost::uint16_t*)ptr);
+            return seed;
+        }
+    }
+}
+
+#endif
index e684593673674bdbee69ea34be7b2bdde4e31972..f5b520ea9d7355b25ebdb18bc93b1af27cc5050f 100644 (file)
@@ -1,61 +1,61 @@
-\r
-// Copyright 2005-2009 Daniel James.\r
-// Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// On some platforms std::limits gives incorrect values for long double.\r
-// This tries to work around them.\r
-\r
-#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_LIMITS_HEADER)\r
-#define BOOST_FUNCTIONAL_HASH_DETAIL_LIMITS_HEADER\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-#include <boost/limits.hpp>\r
-\r
-// On OpenBSD, numeric_limits is not reliable for long doubles, but\r
-// the macros defined in <float.h> are and support long double when STLport\r
-// doesn't.\r
-\r
-#if defined(__OpenBSD__) || defined(_STLP_NO_LONG_DOUBLE)\r
-#include <float.h>\r
-#endif\r
-\r
-namespace boost\r
-{\r
-    namespace hash_detail\r
-    {\r
-        template <class T>\r
-        struct limits : std::numeric_limits<T> {};\r
-\r
-#if defined(__OpenBSD__) || defined(_STLP_NO_LONG_DOUBLE)\r
-        template <>\r
-        struct limits<long double>\r
-             : std::numeric_limits<long double>\r
-        {\r
-            static long double epsilon() {\r
-                return LDBL_EPSILON;\r
-            }\r
-\r
-            static long double (max)() {\r
-                return LDBL_MAX;\r
-            }\r
-\r
-            static long double (min)() {\r
-                return LDBL_MIN;\r
-            }\r
-\r
-            BOOST_STATIC_CONSTANT(int, digits = LDBL_MANT_DIG);\r
-            BOOST_STATIC_CONSTANT(int, max_exponent = LDBL_MAX_EXP);\r
-            BOOST_STATIC_CONSTANT(int, min_exponent = LDBL_MIN_EXP);\r
-#if defined(_STLP_NO_LONG_DOUBLE)\r
-            BOOST_STATIC_CONSTANT(int, radix = FLT_RADIX);\r
-#endif\r
-        };\r
-#endif // __OpenBSD__\r
-    }\r
-}\r
-\r
-#endif\r
+
+// Copyright 2005-2009 Daniel James.
+// 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)
+//
+// On some platforms std::limits gives incorrect values for long double.
+// This tries to work around them.
+
+#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_LIMITS_HEADER)
+#define BOOST_FUNCTIONAL_HASH_DETAIL_LIMITS_HEADER
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+#include <boost/limits.hpp>
+
+// On OpenBSD, numeric_limits is not reliable for long doubles, but
+// the macros defined in <float.h> are and support long double when STLport
+// doesn't.
+
+#if defined(__OpenBSD__) || defined(_STLP_NO_LONG_DOUBLE)
+#include <float.h>
+#endif
+
+namespace boost
+{
+    namespace hash_detail
+    {
+        template <class T>
+        struct limits : std::numeric_limits<T> {};
+
+#if defined(__OpenBSD__) || defined(_STLP_NO_LONG_DOUBLE)
+        template <>
+        struct limits<long double>
+             : std::numeric_limits<long double>
+        {
+            static long double epsilon() {
+                return LDBL_EPSILON;
+            }
+
+            static long double (max)() {
+                return LDBL_MAX;
+            }
+
+            static long double (min)() {
+                return LDBL_MIN;
+            }
+
+            BOOST_STATIC_CONSTANT(int, digits = LDBL_MANT_DIG);
+            BOOST_STATIC_CONSTANT(int, max_exponent = LDBL_MAX_EXP);
+            BOOST_STATIC_CONSTANT(int, min_exponent = LDBL_MIN_EXP);
+#if defined(_STLP_NO_LONG_DOUBLE)
+            BOOST_STATIC_CONSTANT(int, radix = FLT_RADIX);
+#endif
+        };
+#endif // __OpenBSD__
+    }
+}
+
+#endif
index eea32efaa6eb432d0eeef62f64a895b3b924d022..3c587a3bf5de05c8e61bb95b75009480c3e2ea46 100644 (file)
-\r
-// Copyright 2005-2009 Daniel James.\r
-// Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-//  Based on Peter Dimov's proposal\r
-//  http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf\r
-//  issue 6.18. \r
-\r
-// This implements the extensions to the standard.\r
-// It's undocumented, so you shouldn't use it....\r
-\r
-#if !defined(BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP)\r
-#define BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP\r
-\r
-#include <boost/functional/hash/hash.hpp>\r
-#include <boost/detail/container_fwd.hpp>\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)\r
-#include <boost/type_traits/is_array.hpp>\r
-#endif\r
-\r
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
-#include <boost/type_traits/is_const.hpp>\r
-#endif\r
-\r
-namespace boost\r
-{\r
-    template <class A, class B>\r
-    std::size_t hash_value(std::pair<A, B> const&);\r
-    template <class T, class A>\r
-    std::size_t hash_value(std::vector<T, A> const&);\r
-    template <class T, class A>\r
-    std::size_t hash_value(std::list<T, A> const& v);\r
-    template <class T, class A>\r
-    std::size_t hash_value(std::deque<T, A> const& v);\r
-    template <class K, class C, class A>\r
-    std::size_t hash_value(std::set<K, C, A> const& v);\r
-    template <class K, class C, class A>\r
-    std::size_t hash_value(std::multiset<K, C, A> const& v);\r
-    template <class K, class T, class C, class A>\r
-    std::size_t hash_value(std::map<K, T, C, A> const& v);\r
-    template <class K, class T, class C, class A>\r
-    std::size_t hash_value(std::multimap<K, T, C, A> const& v);\r
-\r
-    template <class T>\r
-    std::size_t hash_value(std::complex<T> const&);\r
-\r
-    template <class A, class B>\r
-    std::size_t hash_value(std::pair<A, B> const& v)\r
-    {\r
-        std::size_t seed = 0;\r
-        hash_combine(seed, v.first);\r
-        hash_combine(seed, v.second);\r
-        return seed;\r
-    }\r
-\r
-    template <class T, class A>\r
-    std::size_t hash_value(std::vector<T, A> const& v)\r
-    {\r
-        return hash_range(v.begin(), v.end());\r
-    }\r
-\r
-    template <class T, class A>\r
-    std::size_t hash_value(std::list<T, A> const& v)\r
-    {\r
-        return hash_range(v.begin(), v.end());\r
-    }\r
-\r
-    template <class T, class A>\r
-    std::size_t hash_value(std::deque<T, A> const& v)\r
-    {\r
-        return hash_range(v.begin(), v.end());\r
-    }\r
-\r
-    template <class K, class C, class A>\r
-    std::size_t hash_value(std::set<K, C, A> const& v)\r
-    {\r
-        return hash_range(v.begin(), v.end());\r
-    }\r
-\r
-    template <class K, class C, class A>\r
-    std::size_t hash_value(std::multiset<K, C, A> const& v)\r
-    {\r
-        return hash_range(v.begin(), v.end());\r
-    }\r
-\r
-    template <class K, class T, class C, class A>\r
-    std::size_t hash_value(std::map<K, T, C, A> const& v)\r
-    {\r
-        return hash_range(v.begin(), v.end());\r
-    }\r
-\r
-    template <class K, class T, class C, class A>\r
-    std::size_t hash_value(std::multimap<K, T, C, A> const& v)\r
-    {\r
-        return hash_range(v.begin(), v.end());\r
-    }\r
-\r
-    template <class T>\r
-    std::size_t hash_value(std::complex<T> const& v)\r
-    {\r
-        boost::hash<T> hasher;\r
-        std::size_t seed = hasher(v.imag());\r
-        seed ^= hasher(v.real()) + (seed<<6) + (seed>>2);\r
-        return seed;\r
-    }\r
-\r
-    //\r
-    // call_hash_impl\r
-    //\r
-\r
-    // On compilers without function template ordering, this deals with arrays.\r
-\r
-#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)\r
-    namespace hash_detail\r
-    {\r
-        template <bool IsArray>\r
-        struct call_hash_impl\r
-        {\r
-            template <class T>\r
-            struct inner\r
-            {\r
-                static std::size_t call(T const& v)\r
-                {\r
-                    using namespace boost;\r
-                    return hash_value(v);\r
-                }\r
-            };\r
-        };\r
-\r
-        template <>\r
-        struct call_hash_impl<true>\r
-        {\r
-            template <class Array>\r
-            struct inner\r
-            {\r
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
-                static std::size_t call(Array const& v)\r
-#else\r
-                static std::size_t call(Array& v)\r
-#endif\r
-                {\r
-                    const int size = sizeof(v) / sizeof(*v);\r
-                    return boost::hash_range(v, v + size);\r
-                }\r
-            };\r
-        };\r
-\r
-        template <class T>\r
-        struct call_hash\r
-            : public call_hash_impl<boost::is_array<T>::value>\r
-                ::BOOST_NESTED_TEMPLATE inner<T>\r
-        {\r
-        };\r
-    }\r
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING\r
-\r
-    //\r
-    // boost::hash\r
-    //\r
-\r
-\r
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\r
-\r
-    template <class T> struct hash\r
-        : std::unary_function<T, std::size_t>\r
-    {\r
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)\r
-        std::size_t operator()(T const& val) const\r
-        {\r
-            return hash_value(val);\r
-        }\r
-#else\r
-        std::size_t operator()(T const& val) const\r
-        {\r
-            return hash_detail::call_hash<T>::call(val);\r
-        }\r
-#endif\r
-    };\r
-\r
-#if BOOST_WORKAROUND(__DMC__, <= 0x848)\r
-    template <class T, unsigned int n> struct hash<T[n]>\r
-        : std::unary_function<T[n], std::size_t>\r
-    {\r
-        std::size_t operator()(const T* val) const\r
-        {\r
-            return boost::hash_range(val, val+n);\r
-        }\r
-    };\r
-#endif\r
-\r
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION\r
-\r
-    // On compilers without partial specialization, boost::hash<T>\r
-    // has already been declared to deal with pointers, so just\r
-    // need to supply the non-pointer version of hash_impl.\r
-\r
-    namespace hash_detail\r
-    {\r
-        template <bool IsPointer>\r
-        struct hash_impl;\r
-\r
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
-\r
-        template <>\r
-        struct hash_impl<false>\r
-        {\r
-            template <class T>\r
-            struct inner\r
-                : std::unary_function<T, std::size_t>\r
-            {\r
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)\r
-                std::size_t operator()(T const& val) const\r
-                {\r
-                    return hash_value(val);\r
-                }\r
-#else\r
-                std::size_t operator()(T const& val) const\r
-                {\r
-                    return hash_detail::call_hash<T>::call(val);\r
-                }\r
-#endif\r
-            };\r
-        };\r
-\r
-#else // Visual C++ 6.5\r
-\r
-        // Visual C++ 6.5 has problems with nested member functions and\r
-        // applying const to const types in templates. So we get this:\r
-\r
-        template <bool IsConst>\r
-        struct hash_impl_msvc\r
-        {\r
-            template <class T>\r
-            struct inner\r
-                : public std::unary_function<T, std::size_t>\r
-            {\r
-                std::size_t operator()(T const& val) const\r
-                {\r
-                    return hash_detail::call_hash<T const>::call(val);\r
-                }\r
-\r
-                std::size_t operator()(T& val) const\r
-                {\r
-                    return hash_detail::call_hash<T>::call(val);\r
-                }\r
-            };\r
-        };\r
-\r
-        template <>\r
-        struct hash_impl_msvc<true>\r
-        {\r
-            template <class T>\r
-            struct inner\r
-                : public std::unary_function<T, std::size_t>\r
-            {\r
-                std::size_t operator()(T& val) const\r
-                {\r
-                    return hash_detail::call_hash<T>::call(val);\r
-                }\r
-            };\r
-        };\r
-        \r
-        template <class T>\r
-        struct hash_impl_msvc2\r
-            : public hash_impl_msvc<boost::is_const<T>::value>\r
-                    ::BOOST_NESTED_TEMPLATE inner<T> {};\r
-        \r
-        template <>\r
-        struct hash_impl<false>\r
-        {\r
-            template <class T>\r
-            struct inner : public hash_impl_msvc2<T> {};\r
-        };\r
-\r
-#endif // Visual C++ 6.5\r
-    }\r
-#endif  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION\r
-}\r
-\r
-#endif\r
+
+// Copyright 2005-2009 Daniel James.
+// 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)
+
+//  Based on Peter Dimov's proposal
+//  http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf
+//  issue 6.18. 
+
+// This implements the extensions to the standard.
+// It's undocumented, so you shouldn't use it....
+
+#if !defined(BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP)
+#define BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP
+
+#include <boost/functional/hash/hash.hpp>
+#include <boost/detail/container_fwd.hpp>
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
+#include <boost/type_traits/is_array.hpp>
+#endif
+
+#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#include <boost/type_traits/is_const.hpp>
+#endif
+
+namespace boost
+{
+    template <class A, class B>
+    std::size_t hash_value(std::pair<A, B> const&);
+    template <class T, class A>
+    std::size_t hash_value(std::vector<T, A> const&);
+    template <class T, class A>
+    std::size_t hash_value(std::list<T, A> const& v);
+    template <class T, class A>
+    std::size_t hash_value(std::deque<T, A> const& v);
+    template <class K, class C, class A>
+    std::size_t hash_value(std::set<K, C, A> const& v);
+    template <class K, class C, class A>
+    std::size_t hash_value(std::multiset<K, C, A> const& v);
+    template <class K, class T, class C, class A>
+    std::size_t hash_value(std::map<K, T, C, A> const& v);
+    template <class K, class T, class C, class A>
+    std::size_t hash_value(std::multimap<K, T, C, A> const& v);
+
+    template <class T>
+    std::size_t hash_value(std::complex<T> const&);
+
+    template <class A, class B>
+    std::size_t hash_value(std::pair<A, B> const& v)
+    {
+        std::size_t seed = 0;
+        hash_combine(seed, v.first);
+        hash_combine(seed, v.second);
+        return seed;
+    }
+
+    template <class T, class A>
+    std::size_t hash_value(std::vector<T, A> const& v)
+    {
+        return hash_range(v.begin(), v.end());
+    }
+
+    template <class T, class A>
+    std::size_t hash_value(std::list<T, A> const& v)
+    {
+        return hash_range(v.begin(), v.end());
+    }
+
+    template <class T, class A>
+    std::size_t hash_value(std::deque<T, A> const& v)
+    {
+        return hash_range(v.begin(), v.end());
+    }
+
+    template <class K, class C, class A>
+    std::size_t hash_value(std::set<K, C, A> const& v)
+    {
+        return hash_range(v.begin(), v.end());
+    }
+
+    template <class K, class C, class A>
+    std::size_t hash_value(std::multiset<K, C, A> const& v)
+    {
+        return hash_range(v.begin(), v.end());
+    }
+
+    template <class K, class T, class C, class A>
+    std::size_t hash_value(std::map<K, T, C, A> const& v)
+    {
+        return hash_range(v.begin(), v.end());
+    }
+
+    template <class K, class T, class C, class A>
+    std::size_t hash_value(std::multimap<K, T, C, A> const& v)
+    {
+        return hash_range(v.begin(), v.end());
+    }
+
+    template <class T>
+    std::size_t hash_value(std::complex<T> const& v)
+    {
+        boost::hash<T> hasher;
+        std::size_t seed = hasher(v.imag());
+        seed ^= hasher(v.real()) + (seed<<6) + (seed>>2);
+        return seed;
+    }
+
+    //
+    // call_hash_impl
+    //
+
+    // On compilers without function template ordering, this deals with arrays.
+
+#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
+    namespace hash_detail
+    {
+        template <bool IsArray>
+        struct call_hash_impl
+        {
+            template <class T>
+            struct inner
+            {
+                static std::size_t call(T const& v)
+                {
+                    using namespace boost;
+                    return hash_value(v);
+                }
+            };
+        };
+
+        template <>
+        struct call_hash_impl<true>
+        {
+            template <class Array>
+            struct inner
+            {
+#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+                static std::size_t call(Array const& v)
+#else
+                static std::size_t call(Array& v)
+#endif
+                {
+                    const int size = sizeof(v) / sizeof(*v);
+                    return boost::hash_range(v, v + size);
+                }
+            };
+        };
+
+        template <class T>
+        struct call_hash
+            : public call_hash_impl<boost::is_array<T>::value>
+                ::BOOST_NESTED_TEMPLATE inner<T>
+        {
+        };
+    }
+#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+
+    //
+    // boost::hash
+    //
+
+
+#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+
+    template <class T> struct hash
+        : std::unary_function<T, std::size_t>
+    {
+#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
+        std::size_t operator()(T const& val) const
+        {
+            return hash_value(val);
+        }
+#else
+        std::size_t operator()(T const& val) const
+        {
+            return hash_detail::call_hash<T>::call(val);
+        }
+#endif
+    };
+
+#if BOOST_WORKAROUND(__DMC__, <= 0x848)
+    template <class T, unsigned int n> struct hash<T[n]>
+        : std::unary_function<T[n], std::size_t>
+    {
+        std::size_t operator()(const T* val) const
+        {
+            return boost::hash_range(val, val+n);
+        }
+    };
+#endif
+
+#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+    // On compilers without partial specialization, boost::hash<T>
+    // has already been declared to deal with pointers, so just
+    // need to supply the non-pointer version of hash_impl.
+
+    namespace hash_detail
+    {
+        template <bool IsPointer>
+        struct hash_impl;
+
+#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+
+        template <>
+        struct hash_impl<false>
+        {
+            template <class T>
+            struct inner
+                : std::unary_function<T, std::size_t>
+            {
+#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
+                std::size_t operator()(T const& val) const
+                {
+                    return hash_value(val);
+                }
+#else
+                std::size_t operator()(T const& val) const
+                {
+                    return hash_detail::call_hash<T>::call(val);
+                }
+#endif
+            };
+        };
+
+#else // Visual C++ 6.5
+
+        // Visual C++ 6.5 has problems with nested member functions and
+        // applying const to const types in templates. So we get this:
+
+        template <bool IsConst>
+        struct hash_impl_msvc
+        {
+            template <class T>
+            struct inner
+                : public std::unary_function<T, std::size_t>
+            {
+                std::size_t operator()(T const& val) const
+                {
+                    return hash_detail::call_hash<T const>::call(val);
+                }
+
+                std::size_t operator()(T& val) const
+                {
+                    return hash_detail::call_hash<T>::call(val);
+                }
+            };
+        };
+
+        template <>
+        struct hash_impl_msvc<true>
+        {
+            template <class T>
+            struct inner
+                : public std::unary_function<T, std::size_t>
+            {
+                std::size_t operator()(T& val) const
+                {
+                    return hash_detail::call_hash<T>::call(val);
+                }
+            };
+        };
+        
+        template <class T>
+        struct hash_impl_msvc2
+            : public hash_impl_msvc<boost::is_const<T>::value>
+                    ::BOOST_NESTED_TEMPLATE inner<T> {};
+        
+        template <>
+        struct hash_impl<false>
+        {
+            template <class T>
+            struct inner : public hash_impl_msvc2<T> {};
+        };
+
+#endif // Visual C++ 6.5
+    }
+#endif  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+}
+
+#endif
index 337a98655c5222be3a7b82668c76bd66fb52e9a2..6784f3ef6b040ff5e1845330ecd3b5abe5d8f847 100644 (file)
-\r
-// Copyright 2005-2009 Daniel James.\r
-// Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-//  Based on Peter Dimov's proposal\r
-//  http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf\r
-//  issue 6.18. \r
-\r
-#if !defined(BOOST_FUNCTIONAL_HASH_HASH_HPP)\r
-#define BOOST_FUNCTIONAL_HASH_HASH_HPP\r
-\r
-#include <boost/functional/hash/hash_fwd.hpp>\r
-#include <functional>\r
-#include <boost/functional/hash/detail/hash_float.hpp>\r
-#include <string>\r
-#include <boost/limits.hpp>\r
-\r
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\r
-#include <boost/type_traits/is_pointer.hpp>\r
-#endif\r
-\r
-#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)\r
-#define BOOST_HASH_CHAR_TRAITS string_char_traits\r
-#else\r
-#define BOOST_HASH_CHAR_TRAITS char_traits\r
-#endif\r
-\r
-namespace boost\r
-{\r
-    std::size_t hash_value(bool);\r
-    std::size_t hash_value(char);\r
-    std::size_t hash_value(unsigned char);\r
-    std::size_t hash_value(signed char);\r
-    std::size_t hash_value(short);\r
-    std::size_t hash_value(unsigned short);\r
-    std::size_t hash_value(int);\r
-    std::size_t hash_value(unsigned int);\r
-    std::size_t hash_value(long);\r
-    std::size_t hash_value(unsigned long);\r
-\r
-#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)\r
-    std::size_t hash_value(wchar_t);\r
-#endif\r
-    \r
-#if defined(BOOST_HAS_LONG_LONG)\r
-    std::size_t hash_value(boost::long_long_type);\r
-    std::size_t hash_value(boost::ulong_long_type);\r
-#endif\r
-\r
-#if !BOOST_WORKAROUND(__DMC__, <= 0x848)\r
-    template <class T> std::size_t hash_value(T* const&);\r
-#else\r
-    template <class T> std::size_t hash_value(T*);\r
-#endif\r
-\r
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)\r
-    template< class T, unsigned N >\r
-    std::size_t hash_value(const T (&x)[N]);\r
-\r
-    template< class T, unsigned N >\r
-    std::size_t hash_value(T (&x)[N]);\r
-#endif\r
-\r
-    std::size_t hash_value(float v);\r
-    std::size_t hash_value(double v);\r
-    std::size_t hash_value(long double v);\r
-\r
-    template <class Ch, class A>\r
-    std::size_t hash_value(std::basic_string<Ch, std::BOOST_HASH_CHAR_TRAITS<Ch>, A> const&);\r
-\r
-    // Implementation\r
-\r
-    namespace hash_detail\r
-    {\r
-        template <class T>\r
-        inline std::size_t hash_value_signed(T val)\r
-        {\r
-             const int size_t_bits = std::numeric_limits<std::size_t>::digits;\r
-             // ceiling(std::numeric_limits<T>::digits / size_t_bits) - 1\r
-             const int length = (std::numeric_limits<T>::digits - 1)\r
-                 / size_t_bits;\r
-\r
-             std::size_t seed = 0;\r
-             T positive = val < 0 ? -1 - val : val;\r
-\r
-             // Hopefully, this loop can be unrolled.\r
-             for(unsigned int i = length * size_t_bits; i > 0; i -= size_t_bits)\r
-             {\r
-                 seed ^= (std::size_t) (positive >> i) + (seed<<6) + (seed>>2);\r
-             }\r
-             seed ^= (std::size_t) val + (seed<<6) + (seed>>2);\r
-\r
-             return seed;\r
-        }\r
-\r
-        template <class T>\r
-        inline std::size_t hash_value_unsigned(T val)\r
-        {\r
-             const int size_t_bits = std::numeric_limits<std::size_t>::digits;\r
-             // ceiling(std::numeric_limits<T>::digits / size_t_bits) - 1\r
-             const int length = (std::numeric_limits<T>::digits - 1)\r
-                 / size_t_bits;\r
-\r
-             std::size_t seed = 0;\r
-\r
-             // Hopefully, this loop can be unrolled.\r
-             for(unsigned int i = length * size_t_bits; i > 0; i -= size_t_bits)\r
-             {\r
-                 seed ^= (std::size_t) (val >> i) + (seed<<6) + (seed>>2);\r
-             }\r
-             seed ^= (std::size_t) val + (seed<<6) + (seed>>2);\r
-\r
-             return seed;\r
-        }\r
-    }\r
-\r
-    inline std::size_t hash_value(bool v)\r
-    {\r
-        return static_cast<std::size_t>(v);\r
-    }\r
-\r
-    inline std::size_t hash_value(char v)\r
-    {\r
-        return static_cast<std::size_t>(v);\r
-    }\r
-\r
-    inline std::size_t hash_value(unsigned char v)\r
-    {\r
-        return static_cast<std::size_t>(v);\r
-    }\r
-\r
-    inline std::size_t hash_value(signed char v)\r
-    {\r
-        return static_cast<std::size_t>(v);\r
-    }\r
-\r
-    inline std::size_t hash_value(short v)\r
-    {\r
-        return static_cast<std::size_t>(v);\r
-    }\r
-\r
-    inline std::size_t hash_value(unsigned short v)\r
-    {\r
-        return static_cast<std::size_t>(v);\r
-    }\r
-\r
-    inline std::size_t hash_value(int v)\r
-    {\r
-        return static_cast<std::size_t>(v);\r
-    }\r
-\r
-    inline std::size_t hash_value(unsigned int v)\r
-    {\r
-        return static_cast<std::size_t>(v);\r
-    }\r
-\r
-    inline std::size_t hash_value(long v)\r
-    {\r
-        return static_cast<std::size_t>(v);\r
-    }\r
-\r
-    inline std::size_t hash_value(unsigned long v)\r
-    {\r
-        return static_cast<std::size_t>(v);\r
-    }\r
-\r
-#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)\r
-    inline std::size_t hash_value(wchar_t v)\r
-    {\r
-        return static_cast<std::size_t>(v);\r
-    }\r
-#endif\r
-\r
-#if defined(BOOST_HAS_LONG_LONG)\r
-    inline std::size_t hash_value(boost::long_long_type v)\r
-    {\r
-        return hash_detail::hash_value_signed(v);\r
-    }\r
-\r
-    inline std::size_t hash_value(boost::ulong_long_type v)\r
-    {\r
-        return hash_detail::hash_value_unsigned(v);\r
-    }\r
-#endif\r
-\r
-    // Implementation by Alberto Barbati and Dave Harris.\r
-#if !BOOST_WORKAROUND(__DMC__, <= 0x848)\r
-    template <class T> std::size_t hash_value(T* const& v)\r
-#else\r
-    template <class T> std::size_t hash_value(T* v)\r
-#endif\r
-    {\r
-        std::size_t x = static_cast<std::size_t>(\r
-           reinterpret_cast<std::ptrdiff_t>(v));\r
-\r
-        return x + (x >> 3);\r
-    }\r
-\r
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
-    template <class T>\r
-    inline void hash_combine(std::size_t& seed, T& v)\r
-#else\r
-    template <class T>\r
-    inline void hash_combine(std::size_t& seed, T const& v)\r
-#endif\r
-    {\r
-        boost::hash<T> hasher;\r
-        seed ^= hasher(v) + 0x9e3779b9 + (seed<<6) + (seed>>2);\r
-    }\r
-\r
-    template <class It>\r
-    inline std::size_t hash_range(It first, It last)\r
-    {\r
-        std::size_t seed = 0;\r
-\r
-        for(; first != last; ++first)\r
-        {\r
-            hash_combine(seed, *first);\r
-        }\r
-\r
-        return seed;\r
-    }\r
-\r
-    template <class It>\r
-    inline void hash_range(std::size_t& seed, It first, It last)\r
-    {\r
-        for(; first != last; ++first)\r
-        {\r
-            hash_combine(seed, *first);\r
-        }\r
-    }\r
-\r
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))\r
-    template <class T>\r
-    inline std::size_t hash_range(T* first, T* last)\r
-    {\r
-        std::size_t seed = 0;\r
-\r
-        for(; first != last; ++first)\r
-        {\r
-            boost::hash<T> hasher;\r
-            seed ^= hasher(*first) + 0x9e3779b9 + (seed<<6) + (seed>>2);\r
-        }\r
-\r
-        return seed;\r
-    }\r
-\r
-    template <class T>\r
-    inline void hash_range(std::size_t& seed, T* first, T* last)\r
-    {\r
-        for(; first != last; ++first)\r
-        {\r
-            boost::hash<T> hasher;\r
-            seed ^= hasher(*first) + 0x9e3779b9 + (seed<<6) + (seed>>2);\r
-        }\r
-    }\r
-#endif\r
-\r
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)\r
-    template< class T, unsigned N >\r
-    inline std::size_t hash_value(const T (&x)[N])\r
-    {\r
-        return hash_range(x, x + N);\r
-    }\r
-\r
-    template< class T, unsigned N >\r
-    inline std::size_t hash_value(T (&x)[N])\r
-    {\r
-        return hash_range(x, x + N);\r
-    }\r
-#endif\r
-\r
-    template <class Ch, class A>\r
-    inline std::size_t hash_value(std::basic_string<Ch, std::BOOST_HASH_CHAR_TRAITS<Ch>, A> const& v)\r
-    {\r
-        return hash_range(v.begin(), v.end());\r
-    }\r
-\r
-    inline std::size_t hash_value(float v)\r
-    {\r
-        return boost::hash_detail::float_hash_value(v);\r
-    }\r
-\r
-    inline std::size_t hash_value(double v)\r
-    {\r
-        return boost::hash_detail::float_hash_value(v);\r
-    }\r
-\r
-    inline std::size_t hash_value(long double v)\r
-    {\r
-        return boost::hash_detail::float_hash_value(v);\r
-    }\r
-\r
-    //\r
-    // boost::hash\r
-    //\r
-    \r
-    // Define the specializations required by the standard. The general purpose\r
-    // boost::hash is defined later in extensions.hpp if BOOST_HASH_NO_EXTENSIONS\r
-    // is not defined.\r
-    \r
-    // BOOST_HASH_SPECIALIZE - define a specialization for a type which is\r
-    // passed by copy.\r
-    //\r
-    // BOOST_HASH_SPECIALIZE_REF - define a specialization for a type which is\r
-    // passed by copy.\r
-    //\r
-    // These are undefined later.\r
-\r
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
-#define BOOST_HASH_SPECIALIZE(type) \\r
-    template <> struct hash<type> \\r
-         : public std::unary_function<type, std::size_t> \\r
-    { \\r
-        std::size_t operator()(type v) const \\r
-        { \\r
-            return boost::hash_value(v); \\r
-        } \\r
-    };\r
-\r
-#define BOOST_HASH_SPECIALIZE_REF(type) \\r
-    template <> struct hash<type> \\r
-         : public std::unary_function<type, std::size_t> \\r
-    { \\r
-        std::size_t operator()(type const& v) const \\r
-        { \\r
-            return boost::hash_value(v); \\r
-        } \\r
-    };\r
-#else\r
-#define BOOST_HASH_SPECIALIZE(type) \\r
-    template <> struct hash<type> \\r
-         : public std::unary_function<type, std::size_t> \\r
-    { \\r
-        std::size_t operator()(type v) const \\r
-        { \\r
-            return boost::hash_value(v); \\r
-        } \\r
-    }; \\r
-    \\r
-    template <> struct hash<const type> \\r
-         : public std::unary_function<const type, std::size_t> \\r
-    { \\r
-        std::size_t operator()(const type v) const \\r
-        { \\r
-            return boost::hash_value(v); \\r
-        } \\r
-    };\r
-\r
-#define BOOST_HASH_SPECIALIZE_REF(type) \\r
-    template <> struct hash<type> \\r
-         : public std::unary_function<type, std::size_t> \\r
-    { \\r
-        std::size_t operator()(type const& v) const \\r
-        { \\r
-            return boost::hash_value(v); \\r
-        } \\r
-    }; \\r
-    \\r
-    template <> struct hash<const type> \\r
-         : public std::unary_function<const type, std::size_t> \\r
-    { \\r
-        std::size_t operator()(type const& v) const \\r
-        { \\r
-            return boost::hash_value(v); \\r
-        } \\r
-    };\r
-#endif\r
-\r
-    BOOST_HASH_SPECIALIZE(bool)\r
-    BOOST_HASH_SPECIALIZE(char)\r
-    BOOST_HASH_SPECIALIZE(signed char)\r
-    BOOST_HASH_SPECIALIZE(unsigned char)\r
-#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)\r
-    BOOST_HASH_SPECIALIZE(wchar_t)\r
-#endif\r
-    BOOST_HASH_SPECIALIZE(short)\r
-    BOOST_HASH_SPECIALIZE(unsigned short)\r
-    BOOST_HASH_SPECIALIZE(int)\r
-    BOOST_HASH_SPECIALIZE(unsigned int)\r
-    BOOST_HASH_SPECIALIZE(long)\r
-    BOOST_HASH_SPECIALIZE(unsigned long)\r
-\r
-    BOOST_HASH_SPECIALIZE(float)\r
-    BOOST_HASH_SPECIALIZE(double)\r
-    BOOST_HASH_SPECIALIZE(long double)\r
-\r
-    BOOST_HASH_SPECIALIZE_REF(std::string)\r
-#if !defined(BOOST_NO_STD_WSTRING)\r
-    BOOST_HASH_SPECIALIZE_REF(std::wstring)\r
-#endif\r
-\r
-#if defined(BOOST_HAS_LONG_LONG)\r
-    BOOST_HASH_SPECIALIZE(boost::long_long_type)\r
-    BOOST_HASH_SPECIALIZE(boost::ulong_long_type)\r
-#endif\r
-\r
-#undef BOOST_HASH_SPECIALIZE\r
-#undef BOOST_HASH_SPECIALIZE_REF\r
-\r
-// Specializing boost::hash for pointers.\r
-\r
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\r
-\r
-    template <class T>\r
-    struct hash<T*>\r
-        : public std::unary_function<T*, std::size_t>\r
-    {\r
-        std::size_t operator()(T* v) const\r
-        {\r
-#if !BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590)\r
-            return boost::hash_value(v);\r
-#else\r
-            std::size_t x = static_cast<std::size_t>(\r
-                reinterpret_cast<std::ptrdiff_t>(v));\r
-\r
-            return x + (x >> 3);\r
-#endif\r
-        }\r
-    };\r
-\r
-#else\r
-\r
-    // For compilers without partial specialization, we define a\r
-    // boost::hash for all remaining types. But hash_impl is only defined\r
-    // for pointers in 'extensions.hpp' - so when BOOST_HASH_NO_EXTENSIONS\r
-    // is defined there will still be a compile error for types not supported\r
-    // in the standard.\r
-\r
-    namespace hash_detail\r
-    {\r
-        template <bool IsPointer>\r
-        struct hash_impl;\r
-\r
-        template <>\r
-        struct hash_impl<true>\r
-        {\r
-            template <class T>\r
-            struct inner\r
-                : public std::unary_function<T, std::size_t>\r
-            {\r
-                std::size_t operator()(T val) const\r
-                {\r
-#if !BOOST_WORKAROUND(__SUNPRO_CC, <= 590)\r
-                    return boost::hash_value(val);\r
-#else\r
-                    std::size_t x = static_cast<std::size_t>(\r
-                        reinterpret_cast<std::ptrdiff_t>(val));\r
-\r
-                    return x + (x >> 3);\r
-#endif\r
-                }\r
-            };\r
-        };\r
-    }\r
-\r
-    template <class T> struct hash\r
-        : public boost::hash_detail::hash_impl<boost::is_pointer<T>::value>\r
-            ::BOOST_NESTED_TEMPLATE inner<T>\r
-    {\r
-    };\r
-\r
-#endif\r
-}\r
-\r
-#undef BOOST_HASH_CHAR_TRAITS\r
-\r
-#endif // BOOST_FUNCTIONAL_HASH_HASH_HPP\r
-\r
-// Include this outside of the include guards in case the file is included\r
-// twice - once with BOOST_HASH_NO_EXTENSIONS defined, and then with it\r
-// undefined.\r
-\r
-#if !defined(BOOST_HASH_NO_EXTENSIONS) \\r
-    && !defined(BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP)\r
-#include <boost/functional/hash/extensions.hpp>\r
-#endif\r
+
+// Copyright 2005-2009 Daniel James.
+// 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)
+
+//  Based on Peter Dimov's proposal
+//  http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf
+//  issue 6.18. 
+
+#if !defined(BOOST_FUNCTIONAL_HASH_HASH_HPP)
+#define BOOST_FUNCTIONAL_HASH_HASH_HPP
+
+#include <boost/functional/hash/hash_fwd.hpp>
+#include <functional>
+#include <boost/functional/hash/detail/hash_float.hpp>
+#include <string>
+#include <boost/limits.hpp>
+
+#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#include <boost/type_traits/is_pointer.hpp>
+#endif
+
+#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
+#define BOOST_HASH_CHAR_TRAITS string_char_traits
+#else
+#define BOOST_HASH_CHAR_TRAITS char_traits
+#endif
+
+namespace boost
+{
+    std::size_t hash_value(bool);
+    std::size_t hash_value(char);
+    std::size_t hash_value(unsigned char);
+    std::size_t hash_value(signed char);
+    std::size_t hash_value(short);
+    std::size_t hash_value(unsigned short);
+    std::size_t hash_value(int);
+    std::size_t hash_value(unsigned int);
+    std::size_t hash_value(long);
+    std::size_t hash_value(unsigned long);
+
+#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
+    std::size_t hash_value(wchar_t);
+#endif
+    
+#if defined(BOOST_HAS_LONG_LONG)
+    std::size_t hash_value(boost::long_long_type);
+    std::size_t hash_value(boost::ulong_long_type);
+#endif
+
+#if !BOOST_WORKAROUND(__DMC__, <= 0x848)
+    template <class T> std::size_t hash_value(T* const&);
+#else
+    template <class T> std::size_t hash_value(T*);
+#endif
+
+#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
+    template< class T, unsigned N >
+    std::size_t hash_value(const T (&x)[N]);
+
+    template< class T, unsigned N >
+    std::size_t hash_value(T (&x)[N]);
+#endif
+
+    std::size_t hash_value(float v);
+    std::size_t hash_value(double v);
+    std::size_t hash_value(long double v);
+
+    template <class Ch, class A>
+    std::size_t hash_value(std::basic_string<Ch, std::BOOST_HASH_CHAR_TRAITS<Ch>, A> const&);
+
+    // Implementation
+
+    namespace hash_detail
+    {
+        template <class T>
+        inline std::size_t hash_value_signed(T val)
+        {
+             const int size_t_bits = std::numeric_limits<std::size_t>::digits;
+             // ceiling(std::numeric_limits<T>::digits / size_t_bits) - 1
+             const int length = (std::numeric_limits<T>::digits - 1)
+                 / size_t_bits;
+
+             std::size_t seed = 0;
+             T positive = val < 0 ? -1 - val : val;
+
+             // Hopefully, this loop can be unrolled.
+             for(unsigned int i = length * size_t_bits; i > 0; i -= size_t_bits)
+             {
+                 seed ^= (std::size_t) (positive >> i) + (seed<<6) + (seed>>2);
+             }
+             seed ^= (std::size_t) val + (seed<<6) + (seed>>2);
+
+             return seed;
+        }
+
+        template <class T>
+        inline std::size_t hash_value_unsigned(T val)
+        {
+             const int size_t_bits = std::numeric_limits<std::size_t>::digits;
+             // ceiling(std::numeric_limits<T>::digits / size_t_bits) - 1
+             const int length = (std::numeric_limits<T>::digits - 1)
+                 / size_t_bits;
+
+             std::size_t seed = 0;
+
+             // Hopefully, this loop can be unrolled.
+             for(unsigned int i = length * size_t_bits; i > 0; i -= size_t_bits)
+             {
+                 seed ^= (std::size_t) (val >> i) + (seed<<6) + (seed>>2);
+             }
+             seed ^= (std::size_t) val + (seed<<6) + (seed>>2);
+
+             return seed;
+        }
+    }
+
+    inline std::size_t hash_value(bool v)
+    {
+        return static_cast<std::size_t>(v);
+    }
+
+    inline std::size_t hash_value(char v)
+    {
+        return static_cast<std::size_t>(v);
+    }
+
+    inline std::size_t hash_value(unsigned char v)
+    {
+        return static_cast<std::size_t>(v);
+    }
+
+    inline std::size_t hash_value(signed char v)
+    {
+        return static_cast<std::size_t>(v);
+    }
+
+    inline std::size_t hash_value(short v)
+    {
+        return static_cast<std::size_t>(v);
+    }
+
+    inline std::size_t hash_value(unsigned short v)
+    {
+        return static_cast<std::size_t>(v);
+    }
+
+    inline std::size_t hash_value(int v)
+    {
+        return static_cast<std::size_t>(v);
+    }
+
+    inline std::size_t hash_value(unsigned int v)
+    {
+        return static_cast<std::size_t>(v);
+    }
+
+    inline std::size_t hash_value(long v)
+    {
+        return static_cast<std::size_t>(v);
+    }
+
+    inline std::size_t hash_value(unsigned long v)
+    {
+        return static_cast<std::size_t>(v);
+    }
+
+#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
+    inline std::size_t hash_value(wchar_t v)
+    {
+        return static_cast<std::size_t>(v);
+    }
+#endif
+
+#if defined(BOOST_HAS_LONG_LONG)
+    inline std::size_t hash_value(boost::long_long_type v)
+    {
+        return hash_detail::hash_value_signed(v);
+    }
+
+    inline std::size_t hash_value(boost::ulong_long_type v)
+    {
+        return hash_detail::hash_value_unsigned(v);
+    }
+#endif
+
+    // Implementation by Alberto Barbati and Dave Harris.
+#if !BOOST_WORKAROUND(__DMC__, <= 0x848)
+    template <class T> std::size_t hash_value(T* const& v)
+#else
+    template <class T> std::size_t hash_value(T* v)
+#endif
+    {
+        std::size_t x = static_cast<std::size_t>(
+           reinterpret_cast<std::ptrdiff_t>(v));
+
+        return x + (x >> 3);
+    }
+
+#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+    template <class T>
+    inline void hash_combine(std::size_t& seed, T& v)
+#else
+    template <class T>
+    inline void hash_combine(std::size_t& seed, T const& v)
+#endif
+    {
+        boost::hash<T> hasher;
+        seed ^= hasher(v) + 0x9e3779b9 + (seed<<6) + (seed>>2);
+    }
+
+    template <class It>
+    inline std::size_t hash_range(It first, It last)
+    {
+        std::size_t seed = 0;
+
+        for(; first != last; ++first)
+        {
+            hash_combine(seed, *first);
+        }
+
+        return seed;
+    }
+
+    template <class It>
+    inline void hash_range(std::size_t& seed, It first, It last)
+    {
+        for(; first != last; ++first)
+        {
+            hash_combine(seed, *first);
+        }
+    }
+
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
+    template <class T>
+    inline std::size_t hash_range(T* first, T* last)
+    {
+        std::size_t seed = 0;
+
+        for(; first != last; ++first)
+        {
+            boost::hash<T> hasher;
+            seed ^= hasher(*first) + 0x9e3779b9 + (seed<<6) + (seed>>2);
+        }
+
+        return seed;
+    }
+
+    template <class T>
+    inline void hash_range(std::size_t& seed, T* first, T* last)
+    {
+        for(; first != last; ++first)
+        {
+            boost::hash<T> hasher;
+            seed ^= hasher(*first) + 0x9e3779b9 + (seed<<6) + (seed>>2);
+        }
+    }
+#endif
+
+#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
+    template< class T, unsigned N >
+    inline std::size_t hash_value(const T (&x)[N])
+    {
+        return hash_range(x, x + N);
+    }
+
+    template< class T, unsigned N >
+    inline std::size_t hash_value(T (&x)[N])
+    {
+        return hash_range(x, x + N);
+    }
+#endif
+
+    template <class Ch, class A>
+    inline std::size_t hash_value(std::basic_string<Ch, std::BOOST_HASH_CHAR_TRAITS<Ch>, A> const& v)
+    {
+        return hash_range(v.begin(), v.end());
+    }
+
+    inline std::size_t hash_value(float v)
+    {
+        return boost::hash_detail::float_hash_value(v);
+    }
+
+    inline std::size_t hash_value(double v)
+    {
+        return boost::hash_detail::float_hash_value(v);
+    }
+
+    inline std::size_t hash_value(long double v)
+    {
+        return boost::hash_detail::float_hash_value(v);
+    }
+
+    //
+    // boost::hash
+    //
+    
+    // Define the specializations required by the standard. The general purpose
+    // boost::hash is defined later in extensions.hpp if BOOST_HASH_NO_EXTENSIONS
+    // is not defined.
+    
+    // BOOST_HASH_SPECIALIZE - define a specialization for a type which is
+    // passed by copy.
+    //
+    // BOOST_HASH_SPECIALIZE_REF - define a specialization for a type which is
+    // passed by copy.
+    //
+    // These are undefined later.
+
+#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#define BOOST_HASH_SPECIALIZE(type) \
+    template <> struct hash<type> \
+         : public std::unary_function<type, std::size_t> \
+    { \
+        std::size_t operator()(type v) const \
+        { \
+            return boost::hash_value(v); \
+        } \
+    };
+
+#define BOOST_HASH_SPECIALIZE_REF(type) \
+    template <> struct hash<type> \
+         : public std::unary_function<type, std::size_t> \
+    { \
+        std::size_t operator()(type const& v) const \
+        { \
+            return boost::hash_value(v); \
+        } \
+    };
+#else
+#define BOOST_HASH_SPECIALIZE(type) \
+    template <> struct hash<type> \
+         : public std::unary_function<type, std::size_t> \
+    { \
+        std::size_t operator()(type v) const \
+        { \
+            return boost::hash_value(v); \
+        } \
+    }; \
+    \
+    template <> struct hash<const type> \
+         : public std::unary_function<const type, std::size_t> \
+    { \
+        std::size_t operator()(const type v) const \
+        { \
+            return boost::hash_value(v); \
+        } \
+    };
+
+#define BOOST_HASH_SPECIALIZE_REF(type) \
+    template <> struct hash<type> \
+         : public std::unary_function<type, std::size_t> \
+    { \
+        std::size_t operator()(type const& v) const \
+        { \
+            return boost::hash_value(v); \
+        } \
+    }; \
+    \
+    template <> struct hash<const type> \
+         : public std::unary_function<const type, std::size_t> \
+    { \
+        std::size_t operator()(type const& v) const \
+        { \
+            return boost::hash_value(v); \
+        } \
+    };
+#endif
+
+    BOOST_HASH_SPECIALIZE(bool)
+    BOOST_HASH_SPECIALIZE(char)
+    BOOST_HASH_SPECIALIZE(signed char)
+    BOOST_HASH_SPECIALIZE(unsigned char)
+#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
+    BOOST_HASH_SPECIALIZE(wchar_t)
+#endif
+    BOOST_HASH_SPECIALIZE(short)
+    BOOST_HASH_SPECIALIZE(unsigned short)
+    BOOST_HASH_SPECIALIZE(int)
+    BOOST_HASH_SPECIALIZE(unsigned int)
+    BOOST_HASH_SPECIALIZE(long)
+    BOOST_HASH_SPECIALIZE(unsigned long)
+
+    BOOST_HASH_SPECIALIZE(float)
+    BOOST_HASH_SPECIALIZE(double)
+    BOOST_HASH_SPECIALIZE(long double)
+
+    BOOST_HASH_SPECIALIZE_REF(std::string)
+#if !defined(BOOST_NO_STD_WSTRING)
+    BOOST_HASH_SPECIALIZE_REF(std::wstring)
+#endif
+
+#if defined(BOOST_HAS_LONG_LONG)
+    BOOST_HASH_SPECIALIZE(boost::long_long_type)
+    BOOST_HASH_SPECIALIZE(boost::ulong_long_type)
+#endif
+
+#undef BOOST_HASH_SPECIALIZE
+#undef BOOST_HASH_SPECIALIZE_REF
+
+// Specializing boost::hash for pointers.
+
+#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+
+    template <class T>
+    struct hash<T*>
+        : public std::unary_function<T*, std::size_t>
+    {
+        std::size_t operator()(T* v) const
+        {
+#if !BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590)
+            return boost::hash_value(v);
+#else
+            std::size_t x = static_cast<std::size_t>(
+                reinterpret_cast<std::ptrdiff_t>(v));
+
+            return x + (x >> 3);
+#endif
+        }
+    };
+
+#else
+
+    // For compilers without partial specialization, we define a
+    // boost::hash for all remaining types. But hash_impl is only defined
+    // for pointers in 'extensions.hpp' - so when BOOST_HASH_NO_EXTENSIONS
+    // is defined there will still be a compile error for types not supported
+    // in the standard.
+
+    namespace hash_detail
+    {
+        template <bool IsPointer>
+        struct hash_impl;
+
+        template <>
+        struct hash_impl<true>
+        {
+            template <class T>
+            struct inner
+                : public std::unary_function<T, std::size_t>
+            {
+                std::size_t operator()(T val) const
+                {
+#if !BOOST_WORKAROUND(__SUNPRO_CC, <= 590)
+                    return boost::hash_value(val);
+#else
+                    std::size_t x = static_cast<std::size_t>(
+                        reinterpret_cast<std::ptrdiff_t>(val));
+
+                    return x + (x >> 3);
+#endif
+                }
+            };
+        };
+    }
+
+    template <class T> struct hash
+        : public boost::hash_detail::hash_impl<boost::is_pointer<T>::value>
+            ::BOOST_NESTED_TEMPLATE inner<T>
+    {
+    };
+
+#endif
+}
+
+#undef BOOST_HASH_CHAR_TRAITS
+
+#endif // BOOST_FUNCTIONAL_HASH_HASH_HPP
+
+// Include this outside of the include guards in case the file is included
+// twice - once with BOOST_HASH_NO_EXTENSIONS defined, and then with it
+// undefined.
+
+#if !defined(BOOST_HASH_NO_EXTENSIONS) \
+    && !defined(BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP)
+#include <boost/functional/hash/extensions.hpp>
+#endif
index 1d0d06680bb577e651a91eba9b1735a53881a2a5..1d51b07f2de4488e7cdeb522d12676e52d4c3b3a 100644 (file)
@@ -1,40 +1,40 @@
-\r
-// Copyright 2005-2009 Daniel James.\r
-// Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-//  Based on Peter Dimov's proposal\r
-//  http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf\r
-//  issue 6.18. \r
-\r
-#if !defined(BOOST_FUNCTIONAL_HASH_FWD_HPP)\r
-#define BOOST_FUNCTIONAL_HASH_FWD_HPP\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-#include <boost/config.hpp>\r
-#include <cstddef>\r
-#include <boost/detail/workaround.hpp>\r
-\r
-namespace boost\r
-{\r
-    template <class T> struct hash;\r
-\r
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
-    template <class T> void hash_combine(std::size_t& seed, T& v);\r
-#else\r
-    template <class T> void hash_combine(std::size_t& seed, T const& v);\r
-#endif\r
-\r
-    template <class It> std::size_t hash_range(It, It);\r
-    template <class It> void hash_range(std::size_t&, It, It);\r
-\r
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))\r
-    template <class T> inline std::size_t hash_range(T*, T*);\r
-    template <class T> inline void hash_range(std::size_t&, T*, T*);\r
-#endif\r
-}\r
-\r
-#endif\r
+
+// Copyright 2005-2009 Daniel James.
+// 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)
+
+//  Based on Peter Dimov's proposal
+//  http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf
+//  issue 6.18. 
+
+#if !defined(BOOST_FUNCTIONAL_HASH_FWD_HPP)
+#define BOOST_FUNCTIONAL_HASH_FWD_HPP
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+#include <boost/config.hpp>
+#include <cstddef>
+#include <boost/detail/workaround.hpp>
+
+namespace boost
+{
+    template <class T> struct hash;
+
+#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+    template <class T> void hash_combine(std::size_t& seed, T& v);
+#else
+    template <class T> void hash_combine(std::size_t& seed, T const& v);
+#endif
+
+    template <class It> std::size_t hash_range(It, It);
+    template <class It> void hash_range(std::size_t&, It, It);
+
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
+    template <class T> inline std::size_t hash_range(T*, T*);
+    template <class T> inline void hash_range(std::size_t&, T*, T*);
+#endif
+}
+
+#endif
index b8f8c9a26c47bda3c9a5d7e561f87813af7caec0..b6409886181db5224bb352c529bdaf446f0799ba 100644 (file)
@@ -1,7 +1,7 @@
-\r
-// Copyright 2005-2009 Daniel James.\r
-// Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#include <boost/functional/hash/hash_fwd.hpp>\r
-\r
+
+// Copyright 2005-2009 Daniel James.
+// 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)
+
+#include <boost/functional/hash/hash_fwd.hpp>
+
index 09fc5a718e6bb03302aed6424853ec4cc609db1f..1298a31f55d8efbc4923352dae9956036c5b4e6e 100644 (file)
-// Copyright David Abrahams 2003.\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-#ifndef COUNTING_ITERATOR_DWA200348_HPP\r
-# define COUNTING_ITERATOR_DWA200348_HPP\r
-\r
-# include <boost/iterator/iterator_adaptor.hpp>\r
-# include <boost/detail/numeric_traits.hpp>\r
-# include <boost/mpl/bool.hpp>\r
-# include <boost/mpl/if.hpp>\r
-# include <boost/mpl/identity.hpp>\r
-# include <boost/mpl/eval_if.hpp>\r
-\r
-namespace boost {\r
-\r
-template <\r
-    class Incrementable\r
-  , class CategoryOrTraversal\r
-  , class Difference\r
->\r
-class counting_iterator;\r
-\r
-namespace detail\r
-{\r
-  // Try to detect numeric types at compile time in ways compatible\r
-  // with the limitations of the compiler and library.\r
-  template <class T>\r
-  struct is_numeric_impl\r
-  {\r
-      // For a while, this wasn't true, but we rely on it below. This is a regression assert.\r
-      BOOST_STATIC_ASSERT(::boost::is_integral<char>::value);\r
-      \r
-# ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS\r
-      \r
-      BOOST_STATIC_CONSTANT(bool, value = std::numeric_limits<T>::is_specialized);\r
-      \r
-# else\r
-      \r
-#  if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))\r
-      BOOST_STATIC_CONSTANT(\r
-          bool, value = (\r
-              boost::is_convertible<int,T>::value\r
-           && boost::is_convertible<T,int>::value\r
-      ));\r
-#  else\r
-    BOOST_STATIC_CONSTANT(bool, value = ::boost::is_arithmetic<T>::value);\r
-#  endif\r
-      \r
-# endif\r
-  };\r
-\r
-  template <class T>\r
-  struct is_numeric\r
-    : mpl::bool_<(::boost::detail::is_numeric_impl<T>::value)>\r
-  {};\r
-\r
-#  if defined(BOOST_HAS_LONG_LONG)\r
-  template <>\r
-  struct is_numeric< ::boost::long_long_type>\r
-    : mpl::true_ {};\r
-  \r
-  template <>\r
-  struct is_numeric< ::boost::ulong_long_type>\r
-    : mpl::true_ {};\r
-#  endif\r
-\r
-  // Some compilers fail to have a numeric_limits specialization\r
-  template <>\r
-  struct is_numeric<wchar_t>\r
-    : mpl::true_ {};\r
-  \r
-  template <class T>\r
-  struct numeric_difference\r
-  {\r
-      typedef typename boost::detail::numeric_traits<T>::difference_type type;\r
-  };\r
-\r
-  BOOST_STATIC_ASSERT(is_numeric<int>::value);\r
-  \r
-  template <class Incrementable, class CategoryOrTraversal, class Difference>\r
-  struct counting_iterator_base\r
-  {\r
-      typedef typename detail::ia_dflt_help<\r
-          CategoryOrTraversal\r
-        , mpl::eval_if<\r
-              is_numeric<Incrementable>\r
-            , mpl::identity<random_access_traversal_tag>\r
-            , iterator_traversal<Incrementable>\r
-          >\r
-      >::type traversal;\r
-      \r
-      typedef typename detail::ia_dflt_help<\r
-          Difference\r
-        , mpl::eval_if<\r
-              is_numeric<Incrementable>\r
-            , numeric_difference<Incrementable>\r
-            , iterator_difference<Incrementable>\r
-          >\r
-      >::type difference;\r
-      \r
-      typedef iterator_adaptor<\r
-          counting_iterator<Incrementable, CategoryOrTraversal, Difference> // self\r
-        , Incrementable                                           // Base\r
-        , Incrementable                                           // Value\r
-# ifndef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY\r
-          const  // MSVC won't strip this.  Instead we enable Thomas'\r
-                 // criterion (see boost/iterator/detail/facade_iterator_category.hpp)\r
-# endif \r
-        , traversal\r
-        , Incrementable const&                                    // reference\r
-        , difference\r
-      > type;\r
-  };\r
-\r
-  // Template class distance_policy_select -- choose a policy for computing the\r
-  // distance between counting_iterators at compile-time based on whether or not\r
-  // the iterator wraps an integer or an iterator, using "poor man's partial\r
-  // specialization".\r
-\r
-  template <bool is_integer> struct distance_policy_select;\r
-\r
-  // A policy for wrapped iterators\r
-  template <class Difference, class Incrementable1, class Incrementable2>\r
-  struct iterator_distance\r
-  {\r
-      static Difference distance(Incrementable1 x, Incrementable2 y)\r
-      {\r
-          return y - x;\r
-      }\r
-  };\r
-\r
-  // A policy for wrapped numbers\r
-  template <class Difference, class Incrementable1, class Incrementable2>\r
-  struct number_distance\r
-  {\r
-      static Difference distance(Incrementable1 x, Incrementable2 y)\r
-      {\r
-          return numeric_distance(x, y);\r
-      }\r
-  };\r
-}\r
-\r
-template <\r
-    class Incrementable\r
-  , class CategoryOrTraversal = use_default\r
-  , class Difference = use_default\r
->\r
-class counting_iterator\r
-  : public detail::counting_iterator_base<\r
-        Incrementable, CategoryOrTraversal, Difference\r
-    >::type\r
-{\r
-    typedef typename detail::counting_iterator_base<\r
-        Incrementable, CategoryOrTraversal, Difference\r
-    >::type super_t;\r
-    \r
-    friend class iterator_core_access;\r
-\r
- public:\r
-    typedef typename super_t::difference_type difference_type;\r
-\r
-    counting_iterator() { }\r
-    \r
-    counting_iterator(counting_iterator const& rhs) : super_t(rhs.base()) {}\r
-\r
-    counting_iterator(Incrementable x)\r
-      : super_t(x)\r
-    {\r
-    }\r
-\r
-# if 0\r
-    template<class OtherIncrementable>\r
-    counting_iterator(\r
-        counting_iterator<OtherIncrementable, CategoryOrTraversal, Difference> const& t\r
-      , typename enable_if_convertible<OtherIncrementable, Incrementable>::type* = 0\r
-    )\r
-      : super_t(t.base())\r
-    {}\r
-# endif \r
-\r
- private:\r
-    \r
-    typename super_t::reference dereference() const\r
-    {\r
-        return this->base_reference();\r
-    }\r
-\r
-    template <class OtherIncrementable>\r
-    difference_type\r
-    distance_to(counting_iterator<OtherIncrementable, CategoryOrTraversal, Difference> const& y) const\r
-    {\r
-      typedef typename mpl::if_<\r
-          detail::is_numeric<Incrementable>\r
-        , detail::number_distance<difference_type, Incrementable, OtherIncrementable>\r
-        , detail::iterator_distance<difference_type, Incrementable, OtherIncrementable>\r
-      >::type d;\r
-\r
-      return d::distance(this->base(), y.base());\r
-    }\r
-};\r
-\r
-// Manufacture a counting iterator for an arbitrary incrementable type\r
-template <class Incrementable>\r
-inline counting_iterator<Incrementable>\r
-make_counting_iterator(Incrementable x)\r
-{\r
-  typedef counting_iterator<Incrementable> result_t;\r
-  return result_t(x);\r
-}\r
-\r
-\r
-} // namespace boost::iterator\r
-\r
-#endif // COUNTING_ITERATOR_DWA200348_HPP\r
+// Copyright David Abrahams 2003.
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+#ifndef COUNTING_ITERATOR_DWA200348_HPP
+# define COUNTING_ITERATOR_DWA200348_HPP
+
+# include <boost/iterator/iterator_adaptor.hpp>
+# include <boost/detail/numeric_traits.hpp>
+# include <boost/mpl/bool.hpp>
+# include <boost/mpl/if.hpp>
+# include <boost/mpl/identity.hpp>
+# include <boost/mpl/eval_if.hpp>
+
+namespace boost {
+
+template <
+    class Incrementable
+  , class CategoryOrTraversal
+  , class Difference
+>
+class counting_iterator;
+
+namespace detail
+{
+  // Try to detect numeric types at compile time in ways compatible
+  // with the limitations of the compiler and library.
+  template <class T>
+  struct is_numeric_impl
+  {
+      // For a while, this wasn't true, but we rely on it below. This is a regression assert.
+      BOOST_STATIC_ASSERT(::boost::is_integral<char>::value);
+      
+# ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+      
+      BOOST_STATIC_CONSTANT(bool, value = std::numeric_limits<T>::is_specialized);
+      
+# else
+      
+#  if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
+      BOOST_STATIC_CONSTANT(
+          bool, value = (
+              boost::is_convertible<int,T>::value
+           && boost::is_convertible<T,int>::value
+      ));
+#  else
+    BOOST_STATIC_CONSTANT(bool, value = ::boost::is_arithmetic<T>::value);
+#  endif
+      
+# endif
+  };
+
+  template <class T>
+  struct is_numeric
+    : mpl::bool_<(::boost::detail::is_numeric_impl<T>::value)>
+  {};
+
+#  if defined(BOOST_HAS_LONG_LONG)
+  template <>
+  struct is_numeric< ::boost::long_long_type>
+    : mpl::true_ {};
+  
+  template <>
+  struct is_numeric< ::boost::ulong_long_type>
+    : mpl::true_ {};
+#  endif
+
+  // Some compilers fail to have a numeric_limits specialization
+  template <>
+  struct is_numeric<wchar_t>
+    : mpl::true_ {};
+  
+  template <class T>
+  struct numeric_difference
+  {
+      typedef typename boost::detail::numeric_traits<T>::difference_type type;
+  };
+
+  BOOST_STATIC_ASSERT(is_numeric<int>::value);
+  
+  template <class Incrementable, class CategoryOrTraversal, class Difference>
+  struct counting_iterator_base
+  {
+      typedef typename detail::ia_dflt_help<
+          CategoryOrTraversal
+        , mpl::eval_if<
+              is_numeric<Incrementable>
+            , mpl::identity<random_access_traversal_tag>
+            , iterator_traversal<Incrementable>
+          >
+      >::type traversal;
+      
+      typedef typename detail::ia_dflt_help<
+          Difference
+        , mpl::eval_if<
+              is_numeric<Incrementable>
+            , numeric_difference<Incrementable>
+            , iterator_difference<Incrementable>
+          >
+      >::type difference;
+      
+      typedef iterator_adaptor<
+          counting_iterator<Incrementable, CategoryOrTraversal, Difference> // self
+        , Incrementable                                           // Base
+        , Incrementable                                           // Value
+# ifndef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
+          const  // MSVC won't strip this.  Instead we enable Thomas'
+                 // criterion (see boost/iterator/detail/facade_iterator_category.hpp)
+# endif 
+        , traversal
+        , Incrementable const&                                    // reference
+        , difference
+      > type;
+  };
+
+  // Template class distance_policy_select -- choose a policy for computing the
+  // distance between counting_iterators at compile-time based on whether or not
+  // the iterator wraps an integer or an iterator, using "poor man's partial
+  // specialization".
+
+  template <bool is_integer> struct distance_policy_select;
+
+  // A policy for wrapped iterators
+  template <class Difference, class Incrementable1, class Incrementable2>
+  struct iterator_distance
+  {
+      static Difference distance(Incrementable1 x, Incrementable2 y)
+      {
+          return y - x;
+      }
+  };
+
+  // A policy for wrapped numbers
+  template <class Difference, class Incrementable1, class Incrementable2>
+  struct number_distance
+  {
+      static Difference distance(Incrementable1 x, Incrementable2 y)
+      {
+          return numeric_distance(x, y);
+      }
+  };
+}
+
+template <
+    class Incrementable
+  , class CategoryOrTraversal = use_default
+  , class Difference = use_default
+>
+class counting_iterator
+  : public detail::counting_iterator_base<
+        Incrementable, CategoryOrTraversal, Difference
+    >::type
+{
+    typedef typename detail::counting_iterator_base<
+        Incrementable, CategoryOrTraversal, Difference
+    >::type super_t;
+    
+    friend class iterator_core_access;
+
+ public:
+    typedef typename super_t::difference_type difference_type;
+
+    counting_iterator() { }
+    
+    counting_iterator(counting_iterator const& rhs) : super_t(rhs.base()) {}
+
+    counting_iterator(Incrementable x)
+      : super_t(x)
+    {
+    }
+
+# if 0
+    template<class OtherIncrementable>
+    counting_iterator(
+        counting_iterator<OtherIncrementable, CategoryOrTraversal, Difference> const& t
+      , typename enable_if_convertible<OtherIncrementable, Incrementable>::type* = 0
+    )
+      : super_t(t.base())
+    {}
+# endif 
+
+ private:
+    
+    typename super_t::reference dereference() const
+    {
+        return this->base_reference();
+    }
+
+    template <class OtherIncrementable>
+    difference_type
+    distance_to(counting_iterator<OtherIncrementable, CategoryOrTraversal, Difference> const& y) const
+    {
+      typedef typename mpl::if_<
+          detail::is_numeric<Incrementable>
+        , detail::number_distance<difference_type, Incrementable, OtherIncrementable>
+        , detail::iterator_distance<difference_type, Incrementable, OtherIncrementable>
+      >::type d;
+
+      return d::distance(this->base(), y.base());
+    }
+};
+
+// Manufacture a counting iterator for an arbitrary incrementable type
+template <class Incrementable>
+inline counting_iterator<Incrementable>
+make_counting_iterator(Incrementable x)
+{
+  typedef counting_iterator<Incrementable> result_t;
+  return result_t(x);
+}
+
+
+} // namespace boost::iterator
+
+#endif // COUNTING_ITERATOR_DWA200348_HPP
index ce9e04323836be7d0a0f297207497995e949dd3d..25fa6448894c731fe88579ac0932a6151f023dcd 100644 (file)
@@ -1,19 +1,19 @@
-// Copyright David Abrahams 2003. Use, modification and distribution is\r
-// subject to the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-#ifndef ANY_CONVERSION_EATER_DWA20031117_HPP\r
-# define ANY_CONVERSION_EATER_DWA20031117_HPP\r
-\r
-namespace boost { namespace detail {\r
-\r
-// This type can be used in traits to "eat" up the one user-defined\r
-// implicit conversion allowed.\r
-struct any_conversion_eater\r
-{\r
-    template <class T>\r
-    any_conversion_eater(T const&);\r
-};\r
-\r
-}} // namespace boost::detail\r
-\r
-#endif // ANY_CONVERSION_EATER_DWA20031117_HPP\r
+// Copyright David Abrahams 2003. Use, modification and distribution is
+// subject to the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#ifndef ANY_CONVERSION_EATER_DWA20031117_HPP
+# define ANY_CONVERSION_EATER_DWA20031117_HPP
+
+namespace boost { namespace detail {
+
+// This type can be used in traits to "eat" up the one user-defined
+// implicit conversion allowed.
+struct any_conversion_eater
+{
+    template <class T>
+    any_conversion_eater(T const&);
+};
+
+}} // namespace boost::detail
+
+#endif // ANY_CONVERSION_EATER_DWA20031117_HPP
index 1db6ee4329b5915205abe12f83828dc331cbcbc9..3beb90df6d6869b38f3e714ade86cc2a570227fe 100644 (file)
-// Copyright David Abrahams 2003. Use, modification and distribution is\r
-// subject to the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-#ifndef IS_LVALUE_ITERATOR_DWA2003112_HPP\r
-# define IS_LVALUE_ITERATOR_DWA2003112_HPP\r
-\r
-#include <boost/iterator.hpp>\r
-\r
-#include <boost/detail/workaround.hpp>\r
-#include <boost/detail/iterator.hpp>\r
-\r
-#include <boost/iterator/detail/any_conversion_eater.hpp>\r
-\r
-// should be the last #includes\r
-#include <boost/type_traits/detail/bool_trait_def.hpp>\r
-#include <boost/iterator/detail/config_def.hpp>\r
-\r
-#ifndef BOOST_NO_IS_CONVERTIBLE\r
-\r
-namespace boost {\r
\r
-namespace detail\r
-{\r
-#ifndef BOOST_NO_LVALUE_RETURN_DETECTION\r
-  // Calling lvalue_preserver( <expression>, 0 ) returns a reference\r
-  // to the expression's result if <expression> is an lvalue, or\r
-  // not_an_lvalue() otherwise.\r
-  struct not_an_lvalue {};\r
-  \r
-  template <class T>\r
-  T& lvalue_preserver(T&, int);\r
-  \r
-  template <class U>\r
-  not_an_lvalue lvalue_preserver(U const&, ...);\r
-  \r
-# define BOOST_LVALUE_PRESERVER(expr) detail::lvalue_preserver(expr,0)\r
-  \r
-#else\r
-  \r
-# define BOOST_LVALUE_PRESERVER(expr) expr\r
-  \r
-#endif \r
-\r
-  // Guts of is_lvalue_iterator.  Value is the iterator's value_type\r
-  // and the result is computed in the nested rebind template.\r
-  template <class Value>\r
-  struct is_lvalue_iterator_impl\r
-  {\r
-      // Eat implicit conversions so we don't report true for things\r
-      // convertible to Value const&\r
-      struct conversion_eater\r
-      {\r
-          conversion_eater(Value&);\r
-      };\r
-\r
-      static char tester(conversion_eater, int);\r
-      static char (& tester(any_conversion_eater, ...) )[2];\r
-    \r
-      template <class It>\r
-      struct rebind\r
-      {\r
-          static It& x;\r
-          \r
-          BOOST_STATIC_CONSTANT(\r
-              bool\r
-            , value = (\r
-                sizeof(\r
-                    is_lvalue_iterator_impl<Value>::tester(\r
-                        BOOST_LVALUE_PRESERVER(*x), 0\r
-                    )\r
-                ) == 1\r
-            )\r
-          );\r
-      };\r
-  };\r
-\r
-#undef BOOST_LVALUE_PRESERVER\r
-  \r
-  //\r
-  // void specializations to handle std input and output iterators\r
-  //\r
-  template <>\r
-  struct is_lvalue_iterator_impl<void>\r
-  {\r
-      template <class It>\r
-      struct rebind : boost::mpl::false_\r
-      {};\r
-  };\r
-\r
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS\r
-  template <>\r
-  struct is_lvalue_iterator_impl<const void>\r
-  {\r
-      template <class It>\r
-      struct rebind : boost::mpl::false_\r
-      {};\r
-  };\r
-\r
-  template <>\r
-  struct is_lvalue_iterator_impl<volatile void>\r
-  {\r
-      template <class It>\r
-      struct rebind : boost::mpl::false_\r
-      {};\r
-  };\r
-\r
-  template <>\r
-  struct is_lvalue_iterator_impl<const volatile void>\r
-  {\r
-      template <class It>\r
-      struct rebind : boost::mpl::false_\r
-      {};\r
-  };\r
-#endif\r
-\r
-  //\r
-  // This level of dispatching is required for Borland.  We might save\r
-  // an instantiation by removing it for others.\r
-  //\r
-  template <class It>\r
-  struct is_readable_lvalue_iterator_impl\r
-    : is_lvalue_iterator_impl<\r
-          BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<It>::value_type const\r
-      >::template rebind<It>\r
-  {};\r
-\r
-  template <class It>\r
-  struct is_non_const_lvalue_iterator_impl\r
-    : is_lvalue_iterator_impl<\r
-          BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<It>::value_type\r
-      >::template rebind<It>\r
-  {};\r
-} // namespace detail\r
-\r
-// Define the trait with full mpl lambda capability and various broken\r
-// compiler workarounds\r
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(\r
-    is_lvalue_iterator,T,::boost::detail::is_readable_lvalue_iterator_impl<T>::value)\r
-    \r
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(\r
-    is_non_const_lvalue_iterator,T,::boost::detail::is_non_const_lvalue_iterator_impl<T>::value)\r
-    \r
-} // namespace boost\r
-\r
-#endif\r
-\r
-#include <boost/iterator/detail/config_undef.hpp>\r
-#include <boost/type_traits/detail/bool_trait_undef.hpp>\r
-\r
-#endif // IS_LVALUE_ITERATOR_DWA2003112_HPP\r
+// Copyright David Abrahams 2003. Use, modification and distribution is
+// subject to the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#ifndef IS_LVALUE_ITERATOR_DWA2003112_HPP
+# define IS_LVALUE_ITERATOR_DWA2003112_HPP
+
+#include <boost/iterator.hpp>
+
+#include <boost/detail/workaround.hpp>
+#include <boost/detail/iterator.hpp>
+
+#include <boost/iterator/detail/any_conversion_eater.hpp>
+
+// should be the last #includes
+#include <boost/type_traits/detail/bool_trait_def.hpp>
+#include <boost/iterator/detail/config_def.hpp>
+
+#ifndef BOOST_NO_IS_CONVERTIBLE
+
+namespace boost {
+namespace detail
+{
+#ifndef BOOST_NO_LVALUE_RETURN_DETECTION
+  // Calling lvalue_preserver( <expression>, 0 ) returns a reference
+  // to the expression's result if <expression> is an lvalue, or
+  // not_an_lvalue() otherwise.
+  struct not_an_lvalue {};
+  
+  template <class T>
+  T& lvalue_preserver(T&, int);
+  
+  template <class U>
+  not_an_lvalue lvalue_preserver(U const&, ...);
+  
+# define BOOST_LVALUE_PRESERVER(expr) detail::lvalue_preserver(expr,0)
+  
+#else
+  
+# define BOOST_LVALUE_PRESERVER(expr) expr
+  
+#endif 
+
+  // Guts of is_lvalue_iterator.  Value is the iterator's value_type
+  // and the result is computed in the nested rebind template.
+  template <class Value>
+  struct is_lvalue_iterator_impl
+  {
+      // Eat implicit conversions so we don't report true for things
+      // convertible to Value const&
+      struct conversion_eater
+      {
+          conversion_eater(Value&);
+      };
+
+      static char tester(conversion_eater, int);
+      static char (& tester(any_conversion_eater, ...) )[2];
+    
+      template <class It>
+      struct rebind
+      {
+          static It& x;
+          
+          BOOST_STATIC_CONSTANT(
+              bool
+            , value = (
+                sizeof(
+                    is_lvalue_iterator_impl<Value>::tester(
+                        BOOST_LVALUE_PRESERVER(*x), 0
+                    )
+                ) == 1
+            )
+          );
+      };
+  };
+
+#undef BOOST_LVALUE_PRESERVER
+  
+  //
+  // void specializations to handle std input and output iterators
+  //
+  template <>
+  struct is_lvalue_iterator_impl<void>
+  {
+      template <class It>
+      struct rebind : boost::mpl::false_
+      {};
+  };
+
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+  template <>
+  struct is_lvalue_iterator_impl<const void>
+  {
+      template <class It>
+      struct rebind : boost::mpl::false_
+      {};
+  };
+
+  template <>
+  struct is_lvalue_iterator_impl<volatile void>
+  {
+      template <class It>
+      struct rebind : boost::mpl::false_
+      {};
+  };
+
+  template <>
+  struct is_lvalue_iterator_impl<const volatile void>
+  {
+      template <class It>
+      struct rebind : boost::mpl::false_
+      {};
+  };
+#endif
+
+  //
+  // This level of dispatching is required for Borland.  We might save
+  // an instantiation by removing it for others.
+  //
+  template <class It>
+  struct is_readable_lvalue_iterator_impl
+    : is_lvalue_iterator_impl<
+          BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<It>::value_type const
+      >::template rebind<It>
+  {};
+
+  template <class It>
+  struct is_non_const_lvalue_iterator_impl
+    : is_lvalue_iterator_impl<
+          BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<It>::value_type
+      >::template rebind<It>
+  {};
+} // namespace detail
+
+// Define the trait with full mpl lambda capability and various broken
+// compiler workarounds
+BOOST_TT_AUX_BOOL_TRAIT_DEF1(
+    is_lvalue_iterator,T,::boost::detail::is_readable_lvalue_iterator_impl<T>::value)
+    
+BOOST_TT_AUX_BOOL_TRAIT_DEF1(
+    is_non_const_lvalue_iterator,T,::boost::detail::is_non_const_lvalue_iterator_impl<T>::value)
+    
+} // namespace boost
+
+#endif
+
+#include <boost/iterator/detail/config_undef.hpp>
+#include <boost/type_traits/detail/bool_trait_undef.hpp>
+
+#endif // IS_LVALUE_ITERATOR_DWA2003112_HPP
index 036585effbeddb63cbb5a966b0d7b7b7bfff54a8..60d6ff07f52ddc9dad1c93985783f0c484c3dc79 100644 (file)
-// Copyright David Abrahams 2003. Use, modification and distribution is\r
-// subject to the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-#ifndef IS_READABLE_ITERATOR_DWA2003112_HPP\r
-# define IS_READABLE_ITERATOR_DWA2003112_HPP\r
-\r
-#include <boost/mpl/bool.hpp>\r
-#include <boost/detail/iterator.hpp>\r
-\r
-#include <boost/type_traits/detail/bool_trait_def.hpp>\r
-#include <boost/iterator/detail/any_conversion_eater.hpp>\r
-\r
-// should be the last #include\r
-#include <boost/iterator/detail/config_def.hpp>\r
-\r
-#ifndef BOOST_NO_IS_CONVERTIBLE\r
-\r
-namespace boost {\r
\r
-namespace detail\r
-{\r
-  // Guts of is_readable_iterator.  Value is the iterator's value_type\r
-  // and the result is computed in the nested rebind template.\r
-  template <class Value>\r
-  struct is_readable_iterator_impl\r
-  {\r
-      static char tester(Value&, int);\r
-      static char (& tester(any_conversion_eater, ...) )[2];\r
-    \r
-      template <class It>\r
-      struct rebind\r
-      {\r
-          static It& x;\r
-          \r
-          BOOST_STATIC_CONSTANT(\r
-              bool\r
-            , value = (\r
-                sizeof(\r
-                    is_readable_iterator_impl<Value>::tester(*x, 1)\r
-                ) == 1\r
-            )\r
-          );\r
-      };\r
-  };\r
-\r
-#undef BOOST_READABLE_PRESERVER\r
-  \r
-  //\r
-  // void specializations to handle std input and output iterators\r
-  //\r
-  template <>\r
-  struct is_readable_iterator_impl<void>\r
-  {\r
-      template <class It>\r
-      struct rebind : boost::mpl::false_\r
-      {};\r
-  };\r
-\r
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS\r
-  template <>\r
-  struct is_readable_iterator_impl<const void>\r
-  {\r
-      template <class It>\r
-      struct rebind : boost::mpl::false_\r
-      {};\r
-  };\r
-\r
-  template <>\r
-  struct is_readable_iterator_impl<volatile void>\r
-  {\r
-      template <class It>\r
-      struct rebind : boost::mpl::false_\r
-      {};\r
-  };\r
-\r
-  template <>\r
-  struct is_readable_iterator_impl<const volatile void>\r
-  {\r
-      template <class It>\r
-      struct rebind : boost::mpl::false_\r
-      {};\r
-  };\r
-#endif\r
-\r
-  //\r
-  // This level of dispatching is required for Borland.  We might save\r
-  // an instantiation by removing it for others.\r
-  //\r
-  template <class It>\r
-  struct is_readable_iterator_impl2\r
-    : is_readable_iterator_impl<\r
-          BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<It>::value_type const\r
-      >::template rebind<It>\r
-  {};\r
-} // namespace detail\r
-\r
-// Define the trait with full mpl lambda capability and various broken\r
-// compiler workarounds\r
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(\r
-    is_readable_iterator,T,::boost::detail::is_readable_iterator_impl2<T>::value)\r
-    \r
-} // namespace boost\r
-\r
-#endif\r
-\r
-#include <boost/iterator/detail/config_undef.hpp>\r
-\r
-#endif // IS_READABLE_ITERATOR_DWA2003112_HPP\r
+// Copyright David Abrahams 2003. Use, modification and distribution is
+// subject to the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#ifndef IS_READABLE_ITERATOR_DWA2003112_HPP
+# define IS_READABLE_ITERATOR_DWA2003112_HPP
+
+#include <boost/mpl/bool.hpp>
+#include <boost/detail/iterator.hpp>
+
+#include <boost/type_traits/detail/bool_trait_def.hpp>
+#include <boost/iterator/detail/any_conversion_eater.hpp>
+
+// should be the last #include
+#include <boost/iterator/detail/config_def.hpp>
+
+#ifndef BOOST_NO_IS_CONVERTIBLE
+
+namespace boost {
+namespace detail
+{
+  // Guts of is_readable_iterator.  Value is the iterator's value_type
+  // and the result is computed in the nested rebind template.
+  template <class Value>
+  struct is_readable_iterator_impl
+  {
+      static char tester(Value&, int);
+      static char (& tester(any_conversion_eater, ...) )[2];
+    
+      template <class It>
+      struct rebind
+      {
+          static It& x;
+          
+          BOOST_STATIC_CONSTANT(
+              bool
+            , value = (
+                sizeof(
+                    is_readable_iterator_impl<Value>::tester(*x, 1)
+                ) == 1
+            )
+          );
+      };
+  };
+
+#undef BOOST_READABLE_PRESERVER
+  
+  //
+  // void specializations to handle std input and output iterators
+  //
+  template <>
+  struct is_readable_iterator_impl<void>
+  {
+      template <class It>
+      struct rebind : boost::mpl::false_
+      {};
+  };
+
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+  template <>
+  struct is_readable_iterator_impl<const void>
+  {
+      template <class It>
+      struct rebind : boost::mpl::false_
+      {};
+  };
+
+  template <>
+  struct is_readable_iterator_impl<volatile void>
+  {
+      template <class It>
+      struct rebind : boost::mpl::false_
+      {};
+  };
+
+  template <>
+  struct is_readable_iterator_impl<const volatile void>
+  {
+      template <class It>
+      struct rebind : boost::mpl::false_
+      {};
+  };
+#endif
+
+  //
+  // This level of dispatching is required for Borland.  We might save
+  // an instantiation by removing it for others.
+  //
+  template <class It>
+  struct is_readable_iterator_impl2
+    : is_readable_iterator_impl<
+          BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<It>::value_type const
+      >::template rebind<It>
+  {};
+} // namespace detail
+
+// Define the trait with full mpl lambda capability and various broken
+// compiler workarounds
+BOOST_TT_AUX_BOOL_TRAIT_DEF1(
+    is_readable_iterator,T,::boost::detail::is_readable_iterator_impl2<T>::value)
+    
+} // namespace boost
+
+#endif
+
+#include <boost/iterator/detail/config_undef.hpp>
+
+#endif // IS_READABLE_ITERATOR_DWA2003112_HPP
index 74b250b10b1dd90324ca8051ee86c59d8203dbc1..039de1cf7409570a55a02c6c400ce27eb19eba60 100644 (file)
-// (C) Copyright Jeremy Siek 2002.\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef BOOST_ITERATOR_ARCHETYPES_HPP\r
-#define BOOST_ITERATOR_ARCHETYPES_HPP\r
-\r
-#include <boost/iterator/iterator_categories.hpp>\r
-#include <boost/operators.hpp>\r
-#include <boost/static_assert.hpp>\r
-#include <boost/iterator.hpp>\r
-\r
-#include <boost/iterator/detail/facade_iterator_category.hpp>\r
-\r
-#include <boost/type_traits/is_const.hpp>\r
-#include <boost/type_traits/add_const.hpp>\r
-#include <boost/type_traits/remove_const.hpp>\r
-#include <boost/type_traits/remove_cv.hpp>\r
-\r
-#include <boost/concept_archetype.hpp>\r
-\r
-#include <boost/mpl/aux_/msvc_eti_base.hpp>\r
-#include <boost/mpl/bitand.hpp>\r
-#include <boost/mpl/int.hpp>\r
-#include <boost/mpl/equal_to.hpp>\r
-#include <boost/mpl/if.hpp>\r
-#include <boost/mpl/eval_if.hpp>\r
-#include <boost/mpl/and.hpp>\r
-#include <boost/mpl/identity.hpp>\r
-\r
-#include <cstddef>\r
-\r
-namespace boost {\r
-\r
-template <class Value, class AccessCategory>\r
-struct access_archetype;\r
-\r
-template <class Derived, class Value, class AccessCategory, class TraversalCategory>\r
-struct traversal_archetype;\r
-\r
-namespace iterator_archetypes\r
-{\r
-  enum {\r
-      readable_iterator_bit = 1\r
-    , writable_iterator_bit = 2\r
-    , swappable_iterator_bit = 4\r
-    , lvalue_iterator_bit = 8\r
-  };\r
-\r
-  // Not quite tags, since dispatching wouldn't work.\r
-  typedef mpl::int_<readable_iterator_bit>::type readable_iterator_t;\r
-  typedef mpl::int_<writable_iterator_bit>::type writable_iterator_t;\r
-  \r
-  typedef mpl::int_<\r
-      (readable_iterator_bit|writable_iterator_bit)\r
-          >::type readable_writable_iterator_t;\r
-  \r
-  typedef mpl::int_<\r
-      (readable_iterator_bit|lvalue_iterator_bit)\r
-          >::type readable_lvalue_iterator_t;\r
-  \r
-  typedef mpl::int_<\r
-      (lvalue_iterator_bit|writable_iterator_bit)\r
-          >::type writable_lvalue_iterator_t;\r
-  \r
-  typedef mpl::int_<swappable_iterator_bit>::type swappable_iterator_t;\r
-  typedef mpl::int_<lvalue_iterator_bit>::type lvalue_iterator_t;\r
-\r
-  template <class Derived, class Base>\r
-  struct has_access\r
-    : mpl::equal_to<\r
-          mpl::bitand_<Derived,Base>\r
-        , Base\r
-      >\r
-  {};\r
-}\r
-\r
-namespace detail\r
-{\r
-  template <class T>\r
-  struct assign_proxy\r
-  {\r
-      assign_proxy& operator=(T) { return *this; }\r
-  };\r
-\r
-  template <class T>\r
-  struct read_proxy\r
-  {\r
-      operator T() { return static_object<T>::get(); }\r
-  };\r
-\r
-  template <class T>\r
-  struct read_write_proxy\r
-    : read_proxy<T> // Use to inherit from assign_proxy, but that doesn't work. -JGS\r
-  {\r
-      read_write_proxy& operator=(T) { return *this; }\r
-  };\r
-\r
-  template <class T>\r
-  struct arrow_proxy\r
-  {\r
-      T const* operator->() const { return 0; }\r
-  };\r
-\r
-  struct no_operator_brackets {};\r
-\r
-  template <class ValueType>\r
-  struct readable_operator_brackets\r
-  {\r
-      read_proxy<ValueType> operator[](std::ptrdiff_t n) const { return read_proxy<ValueType>(); }\r
-  };\r
-\r
-  template <class ValueType>\r
-  struct writable_operator_brackets\r
-  {\r
-      read_write_proxy<ValueType> operator[](std::ptrdiff_t n) const { return read_write_proxy<ValueType>(); }\r
-  };\r
-\r
-  template <class Value, class AccessCategory, class TraversalCategory>\r
-  struct operator_brackets\r
-    : mpl::aux::msvc_eti_base<\r
-          typename mpl::eval_if<\r
-              is_convertible<TraversalCategory, random_access_traversal_tag>\r
-            , mpl::eval_if<\r
-                  iterator_archetypes::has_access<\r
-                      AccessCategory\r
-                    , iterator_archetypes::writable_iterator_t\r
-                  >\r
-                , mpl::identity<writable_operator_brackets<Value> >\r
-                , mpl::if_<\r
-                      iterator_archetypes::has_access<\r
-                          AccessCategory\r
-                        , iterator_archetypes::readable_iterator_t\r
-                      >\r
-                    , readable_operator_brackets<Value>\r
-                    , no_operator_brackets\r
-                  >\r
-              >\r
-            , mpl::identity<no_operator_brackets>\r
-          >::type\r
-      >::type\r
-  {};\r
-  \r
-  template <class TraversalCategory>\r
-  struct traversal_archetype_impl\r
-  {\r
-      template <class Derived,class Value> struct archetype;\r
-  };\r
-\r
-  // Constructor argument for those iterators that\r
-  // are not default constructible\r
-  struct ctor_arg {};\r
-\r
-  template <class Derived, class Value, class TraversalCategory>\r
-  struct traversal_archetype_\r
-    : mpl::aux::msvc_eti_base<\r
-          typename traversal_archetype_impl<TraversalCategory>::template archetype<Derived,Value>\r
-      >::type\r
-  {\r
-      typedef typename\r
-        traversal_archetype_impl<TraversalCategory>::template archetype<Derived,Value>\r
-      base;\r
-      \r
-      traversal_archetype_() {}\r
-\r
-      traversal_archetype_(ctor_arg arg)\r
-        : base(arg) \r
-      {}\r
-  };\r
-\r
-  template <>\r
-  struct traversal_archetype_impl<incrementable_traversal_tag>\r
-  {\r
-      template<class Derived, class Value>\r
-      struct archetype\r
-      {\r
-          explicit archetype(ctor_arg) {}\r
-\r
-          struct bogus { }; // This use to be void, but that causes trouble for iterator_facade. Need more research. -JGS\r
-          typedef bogus difference_type;\r
-\r
-          Derived& operator++() { return (Derived&)static_object<Derived>::get(); }\r
-          Derived  operator++(int) const { return (Derived&)static_object<Derived>::get(); }\r
-      };\r
-  };\r
-\r
-  template <>\r
-  struct traversal_archetype_impl<single_pass_traversal_tag>\r
-  {\r
-      template<class Derived, class Value>\r
-      struct archetype\r
-        : public equality_comparable< traversal_archetype_<Derived, Value, single_pass_traversal_tag> >,\r
-          public traversal_archetype_<Derived, Value, incrementable_traversal_tag>\r
-      {\r
-          explicit archetype(ctor_arg arg)\r
-            : traversal_archetype_<Derived, Value, incrementable_traversal_tag>(arg)\r
-          {}\r
-          \r
-          typedef std::ptrdiff_t difference_type;\r
-      };\r
-  };\r
-\r
-  template <class Derived, class Value>\r
-  bool operator==(traversal_archetype_<Derived, Value, single_pass_traversal_tag> const&,\r
-                  traversal_archetype_<Derived, Value, single_pass_traversal_tag> const&) { return true; }\r
-  \r
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)\r
-  // doesn't seem to pick up != from equality_comparable\r
-  template <class Derived, class Value>\r
-  bool operator!=(traversal_archetype_<Derived, Value, single_pass_traversal_tag> const&,\r
-                  traversal_archetype_<Derived, Value, single_pass_traversal_tag> const&) { return true; }\r
-#endif \r
-  template <>\r
-  struct traversal_archetype_impl<forward_traversal_tag>\r
-  {\r
-      template<class Derived, class Value>\r
-      struct archetype\r
-        : public traversal_archetype_<Derived, Value, single_pass_traversal_tag>\r
-      {\r
-          archetype() \r
-            : traversal_archetype_<Derived, Value, single_pass_traversal_tag>(ctor_arg())\r
-          {}\r
-      };\r
-  };\r
-\r
-  template <>\r
-  struct traversal_archetype_impl<bidirectional_traversal_tag>\r
-  {\r
-      template<class Derived, class Value>\r
-      struct archetype\r
-        : public traversal_archetype_<Derived, Value, forward_traversal_tag>\r
-      {\r
-          Derived& operator--() { return static_object<Derived>::get(); }\r
-          Derived  operator--(int) const { return static_object<Derived>::get(); }\r
-      };\r
-  };\r
-\r
-  template <>\r
-  struct traversal_archetype_impl<random_access_traversal_tag>\r
-  {\r
-      template<class Derived, class Value>\r
-      struct archetype\r
-        : public traversal_archetype_<Derived, Value, bidirectional_traversal_tag> \r
-      {\r
-          Derived& operator+=(std::ptrdiff_t) { return static_object<Derived>::get(); }\r
-          Derived& operator-=(std::ptrdiff_t) { return static_object<Derived>::get(); }\r
-      };\r
-  };\r
-\r
-  template <class Derived, class Value>\r
-  Derived& operator+(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,\r
-                     std::ptrdiff_t) { return static_object<Derived>::get(); }\r
-\r
-  template <class Derived, class Value>\r
-  Derived& operator+(std::ptrdiff_t,\r
-                     traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)\r
-      { return static_object<Derived>::get(); }\r
-\r
-  template <class Derived, class Value>\r
-  Derived& operator-(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,\r
-                     std::ptrdiff_t)\r
-      { return static_object<Derived>::get(); }\r
-\r
-  template <class Derived, class Value>\r
-  std::ptrdiff_t operator-(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,\r
-                           traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)\r
-      { return 0; }\r
-\r
-  template <class Derived, class Value>\r
-  bool operator<(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,\r
-                 traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)\r
-      { return true; }\r
-\r
-  template <class Derived, class Value>\r
-  bool operator>(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,\r
-                 traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)\r
-      { return true; }\r
-\r
-  template <class Derived, class Value>\r
-  bool operator<=(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,\r
-                 traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)\r
-      { return true; }\r
-\r
-  template <class Derived, class Value>\r
-  bool operator>=(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,\r
-                 traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)\r
-      { return true; }\r
-\r
-  struct bogus_type;\r
-\r
-  template <class Value>\r
-  struct convertible_type\r
-    : mpl::if_< is_const<Value>,\r
-                typename remove_const<Value>::type,\r
-                bogus_type >\r
-  {};\r
-\r
-} // namespace detail\r
-\r
-\r
-template <class> struct undefined;\r
-  \r
-template <class AccessCategory>\r
-struct iterator_access_archetype_impl\r
-{\r
-    template <class Value> struct archetype;\r
-};\r
-\r
-template <class Value, class AccessCategory>\r
-struct iterator_access_archetype\r
-  : mpl::aux::msvc_eti_base<\r
-        typename iterator_access_archetype_impl<\r
-            AccessCategory\r
-        >::template archetype<Value>\r
-    >::type\r
-{\r
-};\r
-\r
-template <>\r
-struct iterator_access_archetype_impl<\r
-    iterator_archetypes::readable_iterator_t\r
->\r
-{\r
-    template <class Value>\r
-    struct archetype\r
-    {\r
-        typedef typename remove_cv<Value>::type value_type;\r
-        typedef Value                           reference;\r
-        typedef Value*                          pointer;\r
-\r
-        value_type operator*() const { return static_object<value_type>::get(); }\r
-\r
-        detail::arrow_proxy<Value> operator->() const { return detail::arrow_proxy<Value>(); }\r
-    };\r
-};\r
-\r
-template <>\r
-struct iterator_access_archetype_impl<\r
-    iterator_archetypes::writable_iterator_t\r
->\r
-{\r
-    template <class Value>\r
-    struct archetype\r
-    {\r
-# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)\r
-        BOOST_STATIC_ASSERT(!is_const<Value>::value);\r
-# endif \r
-        typedef void value_type;\r
-        typedef void reference;\r
-        typedef void pointer;\r
-\r
-        detail::assign_proxy<Value> operator*() const { return detail::assign_proxy<Value>(); }\r
-    };\r
-};\r
-\r
-template <>\r
-struct iterator_access_archetype_impl<\r
-    iterator_archetypes::readable_writable_iterator_t\r
->\r
-{\r
-    template <class Value>\r
-    struct archetype\r
-      : public virtual iterator_access_archetype<\r
-            Value, iterator_archetypes::readable_iterator_t\r
-        >\r
-    {\r
-        typedef detail::read_write_proxy<Value>    reference;\r
-\r
-        detail::read_write_proxy<Value> operator*() const { return detail::read_write_proxy<Value>(); }\r
-    };\r
-};\r
-\r
-template <>\r
-struct iterator_access_archetype_impl<iterator_archetypes::readable_lvalue_iterator_t>\r
-{\r
-    template <class Value>\r
-    struct archetype\r
-      : public virtual iterator_access_archetype<\r
-            Value, iterator_archetypes::readable_iterator_t\r
-        >\r
-    {\r
-        typedef Value&    reference;\r
-\r
-        Value& operator*() const { return static_object<Value>::get(); }\r
-        Value* operator->() const { return 0; }\r
-    };\r
-};\r
-  \r
-template <>\r
-struct iterator_access_archetype_impl<iterator_archetypes::writable_lvalue_iterator_t>\r
-{\r
-    template <class Value>\r
-    struct archetype\r
-      : public virtual iterator_access_archetype<\r
-            Value, iterator_archetypes::readable_lvalue_iterator_t\r
-        >\r
-    {\r
-# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)\r
-        BOOST_STATIC_ASSERT((!is_const<Value>::value));\r
-# endif \r
-    };\r
-};\r
-  \r
-\r
-template <class Value, class AccessCategory, class TraversalCategory>\r
-struct iterator_archetype;\r
-  \r
-template <class Value, class AccessCategory, class TraversalCategory>\r
-struct traversal_archetype_base \r
-  : detail::operator_brackets<\r
-        typename remove_cv<Value>::type\r
-      , AccessCategory\r
-      , TraversalCategory\r
-    >\r
-  , detail::traversal_archetype_<\r
-        iterator_archetype<Value, AccessCategory, TraversalCategory>\r
-      , Value\r
-      , TraversalCategory\r
-    >\r
-{\r
-};\r
-\r
-namespace detail\r
-{\r
-  template <class Value, class AccessCategory, class TraversalCategory>\r
-  struct iterator_archetype_base\r
-    : iterator_access_archetype<Value, AccessCategory>\r
-    , traversal_archetype_base<Value, AccessCategory, TraversalCategory>\r
-  {\r
-      typedef iterator_access_archetype<Value, AccessCategory> access;\r
-      \r
-      typedef typename detail::facade_iterator_category<\r
-          TraversalCategory\r
-        , typename mpl::eval_if<\r
-              iterator_archetypes::has_access<\r
-                  AccessCategory, iterator_archetypes::writable_iterator_t\r
-              >\r
-            , remove_const<Value>\r
-            , add_const<Value>\r
-          >::type\r
-        , typename access::reference\r
-      >::type iterator_category;\r
-\r
-      // Needed for some broken libraries (see below)\r
-      typedef boost::iterator<\r
-          iterator_category\r
-        , Value\r
-        , typename traversal_archetype_base<\r
-              Value, AccessCategory, TraversalCategory\r
-          >::difference_type\r
-        , typename access::pointer\r
-        , typename access::reference\r
-      > workaround_iterator_base;\r
-  };\r
-}\r
-\r
-template <class Value, class AccessCategory, class TraversalCategory>\r
-struct iterator_archetype\r
-  : public detail::iterator_archetype_base<Value, AccessCategory, TraversalCategory>\r
-\r
-    // These broken libraries require derivation from std::iterator\r
-    // (or related magic) in order to handle iter_swap and other\r
-    // iterator operations\r
-# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, < 310)           \\r
-    || BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(0x20101))\r
-  , public detail::iterator_archetype_base<\r
-        Value, AccessCategory, TraversalCategory\r
-    >::workaround_iterator_base\r
-# endif \r
-{\r
-    // Derivation from std::iterator above caused references to nested\r
-    // types to be ambiguous, so now we have to redeclare them all\r
-    // here.\r
-# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, < 310)           \\r
-    || BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(0x20101))\r
-    \r
-    typedef detail::iterator_archetype_base<\r
-        Value,AccessCategory,TraversalCategory\r
-    > base;\r
-    \r
-    typedef typename base::value_type value_type;\r
-    typedef typename base::reference reference;\r
-    typedef typename base::pointer pointer;\r
-    typedef typename base::difference_type difference_type;\r
-    typedef typename base::iterator_category iterator_category;\r
-# endif\r
-\r
-    iterator_archetype() { }\r
-    iterator_archetype(iterator_archetype const& x)\r
-      : detail::iterator_archetype_base<\r
-            Value\r
-          , AccessCategory\r
-          , TraversalCategory\r
-        >(x)\r
-    {}\r
-\r
-    iterator_archetype& operator=(iterator_archetype const&)\r
-        { return *this; }\r
-\r
-# if 0\r
-    // Optional conversion from mutable\r
-    iterator_archetype(\r
-        iterator_archetype<\r
-        typename detail::convertible_type<Value>::type\r
-      , AccessCategory\r
-      , TraversalCategory> const&\r
-    );\r
-# endif\r
-};\r
-\r
-} // namespace boost\r
-\r
-\r
-#endif // BOOST_ITERATOR_ARCHETYPES_HPP\r
+// (C) Copyright Jeremy Siek 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)
+
+#ifndef BOOST_ITERATOR_ARCHETYPES_HPP
+#define BOOST_ITERATOR_ARCHETYPES_HPP
+
+#include <boost/iterator/iterator_categories.hpp>
+#include <boost/operators.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/iterator.hpp>
+
+#include <boost/iterator/detail/facade_iterator_category.hpp>
+
+#include <boost/type_traits/is_const.hpp>
+#include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+
+#include <boost/concept_archetype.hpp>
+
+#include <boost/mpl/aux_/msvc_eti_base.hpp>
+#include <boost/mpl/bitand.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/equal_to.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/identity.hpp>
+
+#include <cstddef>
+
+namespace boost {
+
+template <class Value, class AccessCategory>
+struct access_archetype;
+
+template <class Derived, class Value, class AccessCategory, class TraversalCategory>
+struct traversal_archetype;
+
+namespace iterator_archetypes
+{
+  enum {
+      readable_iterator_bit = 1
+    , writable_iterator_bit = 2
+    , swappable_iterator_bit = 4
+    , lvalue_iterator_bit = 8
+  };
+
+  // Not quite tags, since dispatching wouldn't work.
+  typedef mpl::int_<readable_iterator_bit>::type readable_iterator_t;
+  typedef mpl::int_<writable_iterator_bit>::type writable_iterator_t;
+  
+  typedef mpl::int_<
+      (readable_iterator_bit|writable_iterator_bit)
+          >::type readable_writable_iterator_t;
+  
+  typedef mpl::int_<
+      (readable_iterator_bit|lvalue_iterator_bit)
+          >::type readable_lvalue_iterator_t;
+  
+  typedef mpl::int_<
+      (lvalue_iterator_bit|writable_iterator_bit)
+          >::type writable_lvalue_iterator_t;
+  
+  typedef mpl::int_<swappable_iterator_bit>::type swappable_iterator_t;
+  typedef mpl::int_<lvalue_iterator_bit>::type lvalue_iterator_t;
+
+  template <class Derived, class Base>
+  struct has_access
+    : mpl::equal_to<
+          mpl::bitand_<Derived,Base>
+        , Base
+      >
+  {};
+}
+
+namespace detail
+{
+  template <class T>
+  struct assign_proxy
+  {
+      assign_proxy& operator=(T) { return *this; }
+  };
+
+  template <class T>
+  struct read_proxy
+  {
+      operator T() { return static_object<T>::get(); }
+  };
+
+  template <class T>
+  struct read_write_proxy
+    : read_proxy<T> // Use to inherit from assign_proxy, but that doesn't work. -JGS
+  {
+      read_write_proxy& operator=(T) { return *this; }
+  };
+
+  template <class T>
+  struct arrow_proxy
+  {
+      T const* operator->() const { return 0; }
+  };
+
+  struct no_operator_brackets {};
+
+  template <class ValueType>
+  struct readable_operator_brackets
+  {
+      read_proxy<ValueType> operator[](std::ptrdiff_t n) const { return read_proxy<ValueType>(); }
+  };
+
+  template <class ValueType>
+  struct writable_operator_brackets
+  {
+      read_write_proxy<ValueType> operator[](std::ptrdiff_t n) const { return read_write_proxy<ValueType>(); }
+  };
+
+  template <class Value, class AccessCategory, class TraversalCategory>
+  struct operator_brackets
+    : mpl::aux::msvc_eti_base<
+          typename mpl::eval_if<
+              is_convertible<TraversalCategory, random_access_traversal_tag>
+            , mpl::eval_if<
+                  iterator_archetypes::has_access<
+                      AccessCategory
+                    , iterator_archetypes::writable_iterator_t
+                  >
+                , mpl::identity<writable_operator_brackets<Value> >
+                , mpl::if_<
+                      iterator_archetypes::has_access<
+                          AccessCategory
+                        , iterator_archetypes::readable_iterator_t
+                      >
+                    , readable_operator_brackets<Value>
+                    , no_operator_brackets
+                  >
+              >
+            , mpl::identity<no_operator_brackets>
+          >::type
+      >::type
+  {};
+  
+  template <class TraversalCategory>
+  struct traversal_archetype_impl
+  {
+      template <class Derived,class Value> struct archetype;
+  };
+
+  // Constructor argument for those iterators that
+  // are not default constructible
+  struct ctor_arg {};
+
+  template <class Derived, class Value, class TraversalCategory>
+  struct traversal_archetype_
+    : mpl::aux::msvc_eti_base<
+          typename traversal_archetype_impl<TraversalCategory>::template archetype<Derived,Value>
+      >::type
+  {
+      typedef typename
+        traversal_archetype_impl<TraversalCategory>::template archetype<Derived,Value>
+      base;
+      
+      traversal_archetype_() {}
+
+      traversal_archetype_(ctor_arg arg)
+        : base(arg) 
+      {}
+  };
+
+  template <>
+  struct traversal_archetype_impl<incrementable_traversal_tag>
+  {
+      template<class Derived, class Value>
+      struct archetype
+      {
+          explicit archetype(ctor_arg) {}
+
+          struct bogus { }; // This use to be void, but that causes trouble for iterator_facade. Need more research. -JGS
+          typedef bogus difference_type;
+
+          Derived& operator++() { return (Derived&)static_object<Derived>::get(); }
+          Derived  operator++(int) const { return (Derived&)static_object<Derived>::get(); }
+      };
+  };
+
+  template <>
+  struct traversal_archetype_impl<single_pass_traversal_tag>
+  {
+      template<class Derived, class Value>
+      struct archetype
+        : public equality_comparable< traversal_archetype_<Derived, Value, single_pass_traversal_tag> >,
+          public traversal_archetype_<Derived, Value, incrementable_traversal_tag>
+      {
+          explicit archetype(ctor_arg arg)
+            : traversal_archetype_<Derived, Value, incrementable_traversal_tag>(arg)
+          {}
+          
+          typedef std::ptrdiff_t difference_type;
+      };
+  };
+
+  template <class Derived, class Value>
+  bool operator==(traversal_archetype_<Derived, Value, single_pass_traversal_tag> const&,
+                  traversal_archetype_<Derived, Value, single_pass_traversal_tag> const&) { return true; }
+  
+#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+  // doesn't seem to pick up != from equality_comparable
+  template <class Derived, class Value>
+  bool operator!=(traversal_archetype_<Derived, Value, single_pass_traversal_tag> const&,
+                  traversal_archetype_<Derived, Value, single_pass_traversal_tag> const&) { return true; }
+#endif 
+  template <>
+  struct traversal_archetype_impl<forward_traversal_tag>
+  {
+      template<class Derived, class Value>
+      struct archetype
+        : public traversal_archetype_<Derived, Value, single_pass_traversal_tag>
+      {
+          archetype() 
+            : traversal_archetype_<Derived, Value, single_pass_traversal_tag>(ctor_arg())
+          {}
+      };
+  };
+
+  template <>
+  struct traversal_archetype_impl<bidirectional_traversal_tag>
+  {
+      template<class Derived, class Value>
+      struct archetype
+        : public traversal_archetype_<Derived, Value, forward_traversal_tag>
+      {
+          Derived& operator--() { return static_object<Derived>::get(); }
+          Derived  operator--(int) const { return static_object<Derived>::get(); }
+      };
+  };
+
+  template <>
+  struct traversal_archetype_impl<random_access_traversal_tag>
+  {
+      template<class Derived, class Value>
+      struct archetype
+        : public traversal_archetype_<Derived, Value, bidirectional_traversal_tag> 
+      {
+          Derived& operator+=(std::ptrdiff_t) { return static_object<Derived>::get(); }
+          Derived& operator-=(std::ptrdiff_t) { return static_object<Derived>::get(); }
+      };
+  };
+
+  template <class Derived, class Value>
+  Derived& operator+(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
+                     std::ptrdiff_t) { return static_object<Derived>::get(); }
+
+  template <class Derived, class Value>
+  Derived& operator+(std::ptrdiff_t,
+                     traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
+      { return static_object<Derived>::get(); }
+
+  template <class Derived, class Value>
+  Derived& operator-(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
+                     std::ptrdiff_t)
+      { return static_object<Derived>::get(); }
+
+  template <class Derived, class Value>
+  std::ptrdiff_t operator-(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
+                           traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
+      { return 0; }
+
+  template <class Derived, class Value>
+  bool operator<(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
+                 traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
+      { return true; }
+
+  template <class Derived, class Value>
+  bool operator>(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
+                 traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
+      { return true; }
+
+  template <class Derived, class Value>
+  bool operator<=(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
+                 traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
+      { return true; }
+
+  template <class Derived, class Value>
+  bool operator>=(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
+                 traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
+      { return true; }
+
+  struct bogus_type;
+
+  template <class Value>
+  struct convertible_type
+    : mpl::if_< is_const<Value>,
+                typename remove_const<Value>::type,
+                bogus_type >
+  {};
+
+} // namespace detail
+
+
+template <class> struct undefined;
+  
+template <class AccessCategory>
+struct iterator_access_archetype_impl
+{
+    template <class Value> struct archetype;
+};
+
+template <class Value, class AccessCategory>
+struct iterator_access_archetype
+  : mpl::aux::msvc_eti_base<
+        typename iterator_access_archetype_impl<
+            AccessCategory
+        >::template archetype<Value>
+    >::type
+{
+};
+
+template <>
+struct iterator_access_archetype_impl<
+    iterator_archetypes::readable_iterator_t
+>
+{
+    template <class Value>
+    struct archetype
+    {
+        typedef typename remove_cv<Value>::type value_type;
+        typedef Value                           reference;
+        typedef Value*                          pointer;
+
+        value_type operator*() const { return static_object<value_type>::get(); }
+
+        detail::arrow_proxy<Value> operator->() const { return detail::arrow_proxy<Value>(); }
+    };
+};
+
+template <>
+struct iterator_access_archetype_impl<
+    iterator_archetypes::writable_iterator_t
+>
+{
+    template <class Value>
+    struct archetype
+    {
+# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+        BOOST_STATIC_ASSERT(!is_const<Value>::value);
+# endif 
+        typedef void value_type;
+        typedef void reference;
+        typedef void pointer;
+
+        detail::assign_proxy<Value> operator*() const { return detail::assign_proxy<Value>(); }
+    };
+};
+
+template <>
+struct iterator_access_archetype_impl<
+    iterator_archetypes::readable_writable_iterator_t
+>
+{
+    template <class Value>
+    struct archetype
+      : public virtual iterator_access_archetype<
+            Value, iterator_archetypes::readable_iterator_t
+        >
+    {
+        typedef detail::read_write_proxy<Value>    reference;
+
+        detail::read_write_proxy<Value> operator*() const { return detail::read_write_proxy<Value>(); }
+    };
+};
+
+template <>
+struct iterator_access_archetype_impl<iterator_archetypes::readable_lvalue_iterator_t>
+{
+    template <class Value>
+    struct archetype
+      : public virtual iterator_access_archetype<
+            Value, iterator_archetypes::readable_iterator_t
+        >
+    {
+        typedef Value&    reference;
+
+        Value& operator*() const { return static_object<Value>::get(); }
+        Value* operator->() const { return 0; }
+    };
+};
+  
+template <>
+struct iterator_access_archetype_impl<iterator_archetypes::writable_lvalue_iterator_t>
+{
+    template <class Value>
+    struct archetype
+      : public virtual iterator_access_archetype<
+            Value, iterator_archetypes::readable_lvalue_iterator_t
+        >
+    {
+# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+        BOOST_STATIC_ASSERT((!is_const<Value>::value));
+# endif 
+    };
+};
+  
+
+template <class Value, class AccessCategory, class TraversalCategory>
+struct iterator_archetype;
+  
+template <class Value, class AccessCategory, class TraversalCategory>
+struct traversal_archetype_base 
+  : detail::operator_brackets<
+        typename remove_cv<Value>::type
+      , AccessCategory
+      , TraversalCategory
+    >
+  , detail::traversal_archetype_<
+        iterator_archetype<Value, AccessCategory, TraversalCategory>
+      , Value
+      , TraversalCategory
+    >
+{
+};
+
+namespace detail
+{
+  template <class Value, class AccessCategory, class TraversalCategory>
+  struct iterator_archetype_base
+    : iterator_access_archetype<Value, AccessCategory>
+    , traversal_archetype_base<Value, AccessCategory, TraversalCategory>
+  {
+      typedef iterator_access_archetype<Value, AccessCategory> access;
+      
+      typedef typename detail::facade_iterator_category<
+          TraversalCategory
+        , typename mpl::eval_if<
+              iterator_archetypes::has_access<
+                  AccessCategory, iterator_archetypes::writable_iterator_t
+              >
+            , remove_const<Value>
+            , add_const<Value>
+          >::type
+        , typename access::reference
+      >::type iterator_category;
+
+      // Needed for some broken libraries (see below)
+      typedef boost::iterator<
+          iterator_category
+        , Value
+        , typename traversal_archetype_base<
+              Value, AccessCategory, TraversalCategory
+          >::difference_type
+        , typename access::pointer
+        , typename access::reference
+      > workaround_iterator_base;
+  };
+}
+
+template <class Value, class AccessCategory, class TraversalCategory>
+struct iterator_archetype
+  : public detail::iterator_archetype_base<Value, AccessCategory, TraversalCategory>
+
+    // These broken libraries require derivation from std::iterator
+    // (or related magic) in order to handle iter_swap and other
+    // iterator operations
+# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, < 310)           \
+    || BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(0x20101))
+  , public detail::iterator_archetype_base<
+        Value, AccessCategory, TraversalCategory
+    >::workaround_iterator_base
+# endif 
+{
+    // Derivation from std::iterator above caused references to nested
+    // types to be ambiguous, so now we have to redeclare them all
+    // here.
+# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, < 310)           \
+    || BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(0x20101))
+    
+    typedef detail::iterator_archetype_base<
+        Value,AccessCategory,TraversalCategory
+    > base;
+    
+    typedef typename base::value_type value_type;
+    typedef typename base::reference reference;
+    typedef typename base::pointer pointer;
+    typedef typename base::difference_type difference_type;
+    typedef typename base::iterator_category iterator_category;
+# endif
+
+    iterator_archetype() { }
+    iterator_archetype(iterator_archetype const& x)
+      : detail::iterator_archetype_base<
+            Value
+          , AccessCategory
+          , TraversalCategory
+        >(x)
+    {}
+
+    iterator_archetype& operator=(iterator_archetype const&)
+        { return *this; }
+
+# if 0
+    // Optional conversion from mutable
+    iterator_archetype(
+        iterator_archetype<
+        typename detail::convertible_type<Value>::type
+      , AccessCategory
+      , TraversalCategory> const&
+    );
+# endif
+};
+
+} // namespace boost
+
+
+#endif // BOOST_ITERATOR_ARCHETYPES_HPP
index 732ad887a8ca9860c06cdf6f119bf525d8bb5f40..ced1112a61eb2674a62c653e165c1a1b1322bd73 100644 (file)
-// (C) Copyright Jeremy Siek 2002.\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef BOOST_ITERATOR_CONCEPTS_HPP\r
-#define BOOST_ITERATOR_CONCEPTS_HPP\r
-\r
-#include <boost/concept_check.hpp>\r
-#include <boost/iterator/iterator_categories.hpp>\r
-\r
-// Use boost::detail::iterator_traits to work around some MSVC/Dinkumware problems.\r
-#include <boost/detail/iterator.hpp>\r
-\r
-#include <boost/type_traits/is_same.hpp>\r
-#include <boost/type_traits/is_integral.hpp>\r
-\r
-#include <boost/mpl/bool.hpp>\r
-#include <boost/mpl/if.hpp>\r
-#include <boost/mpl/and.hpp>\r
-#include <boost/mpl/or.hpp>\r
-\r
-#include <boost/static_assert.hpp>\r
-\r
-// Use boost/limits to work around missing limits headers on some compilers\r
-#include <boost/limits.hpp>\r
-#include <boost/config.hpp>\r
-\r
-#include <algorithm>\r
-\r
-#include <boost/concept/detail/concept_def.hpp>\r
-\r
-namespace boost_concepts\r
-{\r
-  // Used a different namespace here (instead of "boost") so that the\r
-  // concept descriptions do not take for granted the names in\r
-  // namespace boost.\r
-\r
-  //===========================================================================\r
-  // Iterator Access Concepts\r
-\r
-  BOOST_concept(ReadableIterator,(Iterator))\r
-    : boost::Assignable<Iterator>\r
-    , boost::CopyConstructible<Iterator>\r
-\r
-  {\r
-      typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::value_type value_type;\r
-      typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference reference;\r
-\r
-      BOOST_CONCEPT_USAGE(ReadableIterator)\r
-      {\r
-\r
-          value_type v = *i;\r
-          boost::ignore_unused_variable_warning(v);\r
-      }\r
-  private:\r
-      Iterator i;\r
-  };\r
-  \r
-  template <\r
-      typename Iterator\r
-    , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::value_type\r
-  >\r
-  struct WritableIterator\r
-    : boost::CopyConstructible<Iterator>\r
-  {\r
-      BOOST_CONCEPT_USAGE(WritableIterator)\r
-      {\r
-          *i = v;\r
-      }\r
-  private:\r
-      ValueType v;\r
-      Iterator i;\r
-  };\r
-\r
-  template <\r
-      typename Iterator\r
-    , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::value_type\r
-  >\r
-  struct WritableIteratorConcept : WritableIterator<Iterator,ValueType> {};\r
-  \r
-  BOOST_concept(SwappableIterator,(Iterator))\r
-  {\r
-      BOOST_CONCEPT_USAGE(SwappableIterator)\r
-      {\r
-          std::iter_swap(i1, i2);\r
-      }\r
-  private:\r
-      Iterator i1;\r
-      Iterator i2;\r
-  };\r
-\r
-  BOOST_concept(LvalueIterator,(Iterator))\r
-  {\r
-      typedef typename boost::detail::iterator_traits<Iterator>::value_type value_type;\r
-      \r
-      BOOST_CONCEPT_USAGE(LvalueIterator)\r
-      {\r
-        value_type& r = const_cast<value_type&>(*i);\r
-        boost::ignore_unused_variable_warning(r);\r
-      }\r
-  private:\r
-      Iterator i;\r
-  };\r
-\r
-  \r
-  //===========================================================================\r
-  // Iterator Traversal Concepts\r
-\r
-  BOOST_concept(IncrementableIterator,(Iterator))\r
-    : boost::Assignable<Iterator>\r
-    , boost::CopyConstructible<Iterator>\r
-  {\r
-      typedef typename boost::iterator_traversal<Iterator>::type traversal_category;\r
-\r
-      BOOST_CONCEPT_ASSERT((\r
-        boost::Convertible<\r
-            traversal_category\r
-          , boost::incrementable_traversal_tag\r
-        >));\r
-\r
-      BOOST_CONCEPT_USAGE(IncrementableIterator)\r
-      {\r
-          ++i;\r
-          (void)i++;\r
-      }\r
-  private:\r
-      Iterator i;\r
-  };\r
-\r
-  BOOST_concept(SinglePassIterator,(Iterator))\r
-    : IncrementableIterator<Iterator>\r
-    , boost::EqualityComparable<Iterator>\r
-\r
-  {\r
-      BOOST_CONCEPT_ASSERT((\r
-          boost::Convertible<\r
-             BOOST_DEDUCED_TYPENAME SinglePassIterator::traversal_category\r
-           , boost::single_pass_traversal_tag\r
-          > ));\r
-  };\r
-\r
-  BOOST_concept(ForwardTraversal,(Iterator))\r
-    : SinglePassIterator<Iterator>\r
-    , boost::DefaultConstructible<Iterator>\r
-  {\r
-      typedef typename boost::detail::iterator_traits<Iterator>::difference_type difference_type;\r
-      \r
-      BOOST_MPL_ASSERT((boost::is_integral<difference_type>));\r
-      BOOST_MPL_ASSERT_RELATION(std::numeric_limits<difference_type>::is_signed, ==, true);\r
-\r
-      BOOST_CONCEPT_ASSERT((\r
-          boost::Convertible<\r
-             BOOST_DEDUCED_TYPENAME ForwardTraversal::traversal_category\r
-           , boost::forward_traversal_tag\r
-          > ));\r
-  };\r
-  \r
-  BOOST_concept(BidirectionalTraversal,(Iterator))\r
-    : ForwardTraversal<Iterator>\r
-  {\r
-      BOOST_CONCEPT_ASSERT((\r
-          boost::Convertible<\r
-             BOOST_DEDUCED_TYPENAME BidirectionalTraversal::traversal_category\r
-           , boost::bidirectional_traversal_tag\r
-          > ));\r
-\r
-      BOOST_CONCEPT_USAGE(BidirectionalTraversal)\r
-      {\r
-          --i;\r
-          (void)i--;\r
-      }\r
-   private:\r
-      Iterator i;\r
-  };\r
-\r
-  BOOST_concept(RandomAccessTraversal,(Iterator))\r
-    : BidirectionalTraversal<Iterator>\r
-  {\r
-      BOOST_CONCEPT_ASSERT((\r
-          boost::Convertible<\r
-             BOOST_DEDUCED_TYPENAME RandomAccessTraversal::traversal_category\r
-           , boost::random_access_traversal_tag\r
-          > ));\r
-\r
-      BOOST_CONCEPT_USAGE(RandomAccessTraversal)\r
-      {\r
-          i += n;\r
-          i = i + n;\r
-          i = n + i;\r
-          i -= n;\r
-          i = i - n;\r
-          n = i - j;\r
-      }\r
-      \r
-   private:\r
-      typename BidirectionalTraversal<Iterator>::difference_type n;\r
-      Iterator i, j;\r
-  };\r
-\r
-  //===========================================================================\r
-  // Iterator Interoperability \r
-\r
-  namespace detail\r
-  {\r
-    template <typename Iterator1, typename Iterator2>\r
-    void interop_single_pass_constraints(Iterator1 const& i1, Iterator2 const& i2)\r
-    {\r
-        bool b;\r
-        b = i1 == i2;\r
-        b = i1 != i2;\r
-\r
-        b = i2 == i1;\r
-        b = i2 != i1;\r
-        boost::ignore_unused_variable_warning(b);\r
-    }\r
-\r
-    template <typename Iterator1, typename Iterator2>\r
-    void interop_rand_access_constraints(\r
-        Iterator1 const& i1, Iterator2 const& i2,\r
-        boost::random_access_traversal_tag, boost::random_access_traversal_tag)\r
-    {\r
-        bool b;\r
-        typename boost::detail::iterator_traits<Iterator2>::difference_type n;\r
-        b = i1 <  i2;\r
-        b = i1 <= i2;\r
-        b = i1 >  i2;\r
-        b = i1 >= i2;\r
-        n = i1 -  i2;\r
-\r
-        b = i2 <  i1;\r
-        b = i2 <= i1;\r
-        b = i2 >  i1;\r
-        b = i2 >= i1;\r
-        n = i2 -  i1;\r
-        boost::ignore_unused_variable_warning(b);\r
-        boost::ignore_unused_variable_warning(n);\r
-    }\r
-\r
-    template <typename Iterator1, typename Iterator2>\r
-    void interop_rand_access_constraints(\r
-        Iterator1 const&, Iterator2 const&,\r
-        boost::single_pass_traversal_tag, boost::single_pass_traversal_tag)\r
-    { }\r
-\r
-  } // namespace detail\r
-\r
-  BOOST_concept(InteroperableIterator,(Iterator)(ConstIterator))\r
-  {\r
-   private:\r
-      typedef typename boost::detail::pure_traversal_tag<\r
-          typename boost::iterator_traversal<\r
-              Iterator\r
-          >::type\r
-      >::type traversal_category;\r
-\r
-      typedef typename boost::detail::pure_traversal_tag<\r
-          typename boost::iterator_traversal<\r
-              ConstIterator\r
-          >::type\r
-      >::type const_traversal_category;\r
-      \r
-  public:\r
-      BOOST_CONCEPT_ASSERT((SinglePassIterator<Iterator>));\r
-      BOOST_CONCEPT_ASSERT((SinglePassIterator<ConstIterator>));\r
-\r
-      BOOST_CONCEPT_USAGE(InteroperableIterator)\r
-      {\r
-          detail::interop_single_pass_constraints(i, ci);\r
-          detail::interop_rand_access_constraints(i, ci, traversal_category(), const_traversal_category());\r
-\r
-          ci = i;\r
-      }\r
-      \r
-   private:\r
-      Iterator      i;\r
-      ConstIterator ci;\r
-  };\r
-\r
-} // namespace boost_concepts\r
-\r
-#include <boost/concept/detail/concept_undef.hpp>\r
-\r
-#endif // BOOST_ITERATOR_CONCEPTS_HPP\r
+// (C) Copyright Jeremy Siek 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)
+
+#ifndef BOOST_ITERATOR_CONCEPTS_HPP
+#define BOOST_ITERATOR_CONCEPTS_HPP
+
+#include <boost/concept_check.hpp>
+#include <boost/iterator/iterator_categories.hpp>
+
+// Use boost::detail::iterator_traits to work around some MSVC/Dinkumware problems.
+#include <boost/detail/iterator.hpp>
+
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/is_integral.hpp>
+
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/or.hpp>
+
+#include <boost/static_assert.hpp>
+
+// Use boost/limits to work around missing limits headers on some compilers
+#include <boost/limits.hpp>
+#include <boost/config.hpp>
+
+#include <algorithm>
+
+#include <boost/concept/detail/concept_def.hpp>
+
+namespace boost_concepts
+{
+  // Used a different namespace here (instead of "boost") so that the
+  // concept descriptions do not take for granted the names in
+  // namespace boost.
+
+  //===========================================================================
+  // Iterator Access Concepts
+
+  BOOST_concept(ReadableIterator,(Iterator))
+    : boost::Assignable<Iterator>
+    , boost::CopyConstructible<Iterator>
+
+  {
+      typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::value_type value_type;
+      typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference reference;
+
+      BOOST_CONCEPT_USAGE(ReadableIterator)
+      {
+
+          value_type v = *i;
+          boost::ignore_unused_variable_warning(v);
+      }
+  private:
+      Iterator i;
+  };
+  
+  template <
+      typename Iterator
+    , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::value_type
+  >
+  struct WritableIterator
+    : boost::CopyConstructible<Iterator>
+  {
+      BOOST_CONCEPT_USAGE(WritableIterator)
+      {
+          *i = v;
+      }
+  private:
+      ValueType v;
+      Iterator i;
+  };
+
+  template <
+      typename Iterator
+    , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::value_type
+  >
+  struct WritableIteratorConcept : WritableIterator<Iterator,ValueType> {};
+  
+  BOOST_concept(SwappableIterator,(Iterator))
+  {
+      BOOST_CONCEPT_USAGE(SwappableIterator)
+      {
+          std::iter_swap(i1, i2);
+      }
+  private:
+      Iterator i1;
+      Iterator i2;
+  };
+
+  BOOST_concept(LvalueIterator,(Iterator))
+  {
+      typedef typename boost::detail::iterator_traits<Iterator>::value_type value_type;
+      
+      BOOST_CONCEPT_USAGE(LvalueIterator)
+      {
+        value_type& r = const_cast<value_type&>(*i);
+        boost::ignore_unused_variable_warning(r);
+      }
+  private:
+      Iterator i;
+  };
+
+  
+  //===========================================================================
+  // Iterator Traversal Concepts
+
+  BOOST_concept(IncrementableIterator,(Iterator))
+    : boost::Assignable<Iterator>
+    , boost::CopyConstructible<Iterator>
+  {
+      typedef typename boost::iterator_traversal<Iterator>::type traversal_category;
+
+      BOOST_CONCEPT_ASSERT((
+        boost::Convertible<
+            traversal_category
+          , boost::incrementable_traversal_tag
+        >));
+
+      BOOST_CONCEPT_USAGE(IncrementableIterator)
+      {
+          ++i;
+          (void)i++;
+      }
+  private:
+      Iterator i;
+  };
+
+  BOOST_concept(SinglePassIterator,(Iterator))
+    : IncrementableIterator<Iterator>
+    , boost::EqualityComparable<Iterator>
+
+  {
+      BOOST_CONCEPT_ASSERT((
+          boost::Convertible<
+             BOOST_DEDUCED_TYPENAME SinglePassIterator::traversal_category
+           , boost::single_pass_traversal_tag
+          > ));
+  };
+
+  BOOST_concept(ForwardTraversal,(Iterator))
+    : SinglePassIterator<Iterator>
+    , boost::DefaultConstructible<Iterator>
+  {
+      typedef typename boost::detail::iterator_traits<Iterator>::difference_type difference_type;
+      
+      BOOST_MPL_ASSERT((boost::is_integral<difference_type>));
+      BOOST_MPL_ASSERT_RELATION(std::numeric_limits<difference_type>::is_signed, ==, true);
+
+      BOOST_CONCEPT_ASSERT((
+          boost::Convertible<
+             BOOST_DEDUCED_TYPENAME ForwardTraversal::traversal_category
+           , boost::forward_traversal_tag
+          > ));
+  };
+  
+  BOOST_concept(BidirectionalTraversal,(Iterator))
+    : ForwardTraversal<Iterator>
+  {
+      BOOST_CONCEPT_ASSERT((
+          boost::Convertible<
+             BOOST_DEDUCED_TYPENAME BidirectionalTraversal::traversal_category
+           , boost::bidirectional_traversal_tag
+          > ));
+
+      BOOST_CONCEPT_USAGE(BidirectionalTraversal)
+      {
+          --i;
+          (void)i--;
+      }
+   private:
+      Iterator i;
+  };
+
+  BOOST_concept(RandomAccessTraversal,(Iterator))
+    : BidirectionalTraversal<Iterator>
+  {
+      BOOST_CONCEPT_ASSERT((
+          boost::Convertible<
+             BOOST_DEDUCED_TYPENAME RandomAccessTraversal::traversal_category
+           , boost::random_access_traversal_tag
+          > ));
+
+      BOOST_CONCEPT_USAGE(RandomAccessTraversal)
+      {
+          i += n;
+          i = i + n;
+          i = n + i;
+          i -= n;
+          i = i - n;
+          n = i - j;
+      }
+      
+   private:
+      typename BidirectionalTraversal<Iterator>::difference_type n;
+      Iterator i, j;
+  };
+
+  //===========================================================================
+  // Iterator Interoperability 
+
+  namespace detail
+  {
+    template <typename Iterator1, typename Iterator2>
+    void interop_single_pass_constraints(Iterator1 const& i1, Iterator2 const& i2)
+    {
+        bool b;
+        b = i1 == i2;
+        b = i1 != i2;
+
+        b = i2 == i1;
+        b = i2 != i1;
+        boost::ignore_unused_variable_warning(b);
+    }
+
+    template <typename Iterator1, typename Iterator2>
+    void interop_rand_access_constraints(
+        Iterator1 const& i1, Iterator2 const& i2,
+        boost::random_access_traversal_tag, boost::random_access_traversal_tag)
+    {
+        bool b;
+        typename boost::detail::iterator_traits<Iterator2>::difference_type n;
+        b = i1 <  i2;
+        b = i1 <= i2;
+        b = i1 >  i2;
+        b = i1 >= i2;
+        n = i1 -  i2;
+
+        b = i2 <  i1;
+        b = i2 <= i1;
+        b = i2 >  i1;
+        b = i2 >= i1;
+        n = i2 -  i1;
+        boost::ignore_unused_variable_warning(b);
+        boost::ignore_unused_variable_warning(n);
+    }
+
+    template <typename Iterator1, typename Iterator2>
+    void interop_rand_access_constraints(
+        Iterator1 const&, Iterator2 const&,
+        boost::single_pass_traversal_tag, boost::single_pass_traversal_tag)
+    { }
+
+  } // namespace detail
+
+  BOOST_concept(InteroperableIterator,(Iterator)(ConstIterator))
+  {
+   private:
+      typedef typename boost::detail::pure_traversal_tag<
+          typename boost::iterator_traversal<
+              Iterator
+          >::type
+      >::type traversal_category;
+
+      typedef typename boost::detail::pure_traversal_tag<
+          typename boost::iterator_traversal<
+              ConstIterator
+          >::type
+      >::type const_traversal_category;
+      
+  public:
+      BOOST_CONCEPT_ASSERT((SinglePassIterator<Iterator>));
+      BOOST_CONCEPT_ASSERT((SinglePassIterator<ConstIterator>));
+
+      BOOST_CONCEPT_USAGE(InteroperableIterator)
+      {
+          detail::interop_single_pass_constraints(i, ci);
+          detail::interop_rand_access_constraints(i, ci, traversal_category(), const_traversal_category());
+
+          ci = i;
+      }
+      
+   private:
+      Iterator      i;
+      ConstIterator ci;
+  };
+
+} // namespace boost_concepts
+
+#include <boost/concept/detail/concept_undef.hpp>
+
+#endif // BOOST_ITERATOR_CONCEPTS_HPP
index a6a95eb7866df12d759c46bbf3fbb95bcbfd28f4..caad700aef5747de329df17efe7a7722fcf74f44 100644 (file)
-#ifndef BOOST_NEW_ITERATOR_TESTS_HPP\r
-# define BOOST_NEW_ITERATOR_TESTS_HPP\r
-\r
-//\r
-// Copyright (c) David Abrahams 2001.\r
-// Copyright (c) Jeremy Siek 2001-2003.\r
-// Copyright (c) Thomas Witt 2002.\r
-//\r
-// Use, modification and distribution is subject to the\r
-// Boost Software License, Version 1.0.\r
-// (See accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// This is meant to be the beginnings of a comprehensive, generic\r
-// test suite for STL concepts such as iterators and containers.\r
-//\r
-// Revision History:\r
-// 28 Oct 2002  Started update for new iterator categories\r
-//              (Jeremy Siek)\r
-// 28 Apr 2002  Fixed input iterator requirements.\r
-//              For a == b a++ == b++ is no longer required.\r
-//              See 24.1.1/3 for details.\r
-//              (Thomas Witt)\r
-// 08 Feb 2001  Fixed bidirectional iterator test so that\r
-//              --i is no longer a precondition.\r
-//              (Jeremy Siek)\r
-// 04 Feb 2001  Added lvalue test, corrected preconditions\r
-//              (David Abrahams)\r
-\r
-# include <iterator>\r
-# include <boost/type_traits.hpp>\r
-# include <boost/static_assert.hpp>\r
-# include <boost/concept_archetype.hpp> // for detail::dummy_constructor\r
-# include <boost/detail/iterator.hpp>\r
-# include <boost/pending/iterator_tests.hpp>\r
-# include <boost/iterator/is_readable_iterator.hpp>\r
-# include <boost/iterator/is_lvalue_iterator.hpp>\r
-\r
-# include <boost/iterator/detail/config_def.hpp>\r
-# include <boost/detail/is_incrementable.hpp>\r
-# include <boost/detail/lightweight_test.hpp>\r
-\r
-namespace boost {\r
-\r
-\r
-// Do separate tests for *i++ so we can treat, e.g., smart pointers,\r
-// as readable and/or writable iterators.\r
-template <class Iterator, class T>\r
-void readable_iterator_traversal_test(Iterator i1, T v, mpl::true_)\r
-{\r
-    T v2(*i1++);\r
-    BOOST_TEST(v == v2);\r
-}\r
-\r
-template <class Iterator, class T>\r
-void readable_iterator_traversal_test(const Iterator i1, T v, mpl::false_)\r
-{}\r
-\r
-template <class Iterator, class T>\r
-void writable_iterator_traversal_test(Iterator i1, T v, mpl::true_)\r
-{\r
-    ++i1;  // we just wrote into that position\r
-    *i1++ = v;\r
-    Iterator x(i1++);\r
-    (void)x;\r
-}\r
-\r
-template <class Iterator, class T>\r
-void writable_iterator_traversal_test(const Iterator i1, T v, mpl::false_)\r
-{}\r
-\r
-\r
-// Preconditions: *i == v\r
-template <class Iterator, class T>\r
-void readable_iterator_test(const Iterator i1, T v)\r
-{\r
-  Iterator i2(i1); // Copy Constructible\r
-  typedef typename detail::iterator_traits<Iterator>::reference ref_t;\r
-  ref_t r1 = *i1;\r
-  ref_t r2 = *i2;\r
-  T v1 = r1;\r
-  T v2 = r2;\r
-  BOOST_TEST(v1 == v);\r
-  BOOST_TEST(v2 == v);\r
-\r
-# if !BOOST_WORKAROUND(__MWERKS__, <= 0x2407)\r
-  readable_iterator_traversal_test(i1, v, detail::is_postfix_incrementable<Iterator>());\r
-      \r
-  // I think we don't really need this as it checks the same things as\r
-  // the above code.\r
-  BOOST_STATIC_ASSERT(is_readable_iterator<Iterator>::value);\r
-# endif \r
-}\r
-\r
-template <class Iterator, class T>\r
-void writable_iterator_test(Iterator i, T v, T v2)\r
-{\r
-  Iterator i2(i); // Copy Constructible\r
-  *i2 = v;\r
-\r
-# if !BOOST_WORKAROUND(__MWERKS__, <= 0x2407)\r
-  writable_iterator_traversal_test(\r
-      i, v2, mpl::and_<\r
-          detail::is_incrementable<Iterator>\r
-        , detail::is_postfix_incrementable<Iterator>\r
-      >());\r
-# endif \r
-}\r
-\r
-template <class Iterator>\r
-void swappable_iterator_test(Iterator i, Iterator j)\r
-{\r
-  Iterator i2(i), j2(j);\r
-  typename detail::iterator_traits<Iterator>::value_type bi = *i, bj = *j;\r
-  iter_swap(i2, j2);\r
-  typename detail::iterator_traits<Iterator>::value_type ai = *i, aj = *j;\r
-  BOOST_TEST(bi == aj && bj == ai);\r
-}\r
-\r
-template <class Iterator, class T>\r
-void constant_lvalue_iterator_test(Iterator i, T v1)\r
-{\r
-  Iterator i2(i);\r
-  typedef typename detail::iterator_traits<Iterator>::value_type value_type;\r
-  typedef typename detail::iterator_traits<Iterator>::reference reference;\r
-  BOOST_STATIC_ASSERT((is_same<const value_type&, reference>::value));\r
-  const T& v2 = *i2;\r
-  BOOST_TEST(v1 == v2);\r
-# ifndef BOOST_NO_LVALUE_RETURN_DETECTION\r
-  BOOST_STATIC_ASSERT(is_lvalue_iterator<Iterator>::value);\r
-  BOOST_STATIC_ASSERT(!is_non_const_lvalue_iterator<Iterator>::value);\r
-# endif \r
-}\r
-\r
-template <class Iterator, class T>\r
-void non_const_lvalue_iterator_test(Iterator i, T v1, T v2)\r
-{\r
-  Iterator i2(i);\r
-  typedef typename detail::iterator_traits<Iterator>::value_type value_type;\r
-  typedef typename detail::iterator_traits<Iterator>::reference reference;\r
-  BOOST_STATIC_ASSERT((is_same<value_type&, reference>::value));\r
-  T& v3 = *i2;\r
-  BOOST_TEST(v1 == v3);\r
-  \r
-  // A non-const lvalue iterator is not neccessarily writable, but we\r
-  // are assuming the value_type is assignable here\r
-  *i = v2;\r
-  \r
-  T& v4 = *i2;\r
-  BOOST_TEST(v2 == v4);\r
-# ifndef BOOST_NO_LVALUE_RETURN_DETECTION\r
-  BOOST_STATIC_ASSERT(is_lvalue_iterator<Iterator>::value);\r
-  BOOST_STATIC_ASSERT(is_non_const_lvalue_iterator<Iterator>::value);\r
-# endif \r
-}\r
-\r
-template <class Iterator, class T>\r
-void forward_readable_iterator_test(Iterator i, Iterator j, T val1, T val2)\r
-{\r
-  Iterator i2;\r
-  Iterator i3(i);\r
-  i2 = i;\r
-  BOOST_TEST(i2 == i3);\r
-  BOOST_TEST(i != j);\r
-  BOOST_TEST(i2 != j);\r
-  readable_iterator_test(i, val1);\r
-  readable_iterator_test(i2, val1);\r
-  readable_iterator_test(i3, val1);\r
-\r
-  BOOST_TEST(i == i2++);\r
-  BOOST_TEST(i != ++i3);\r
-\r
-  readable_iterator_test(i2, val2);\r
-  readable_iterator_test(i3, val2);\r
-\r
-  readable_iterator_test(i, val1);\r
-}\r
-\r
-template <class Iterator, class T>\r
-void forward_swappable_iterator_test(Iterator i, Iterator j, T val1, T val2)\r
-{\r
-  forward_readable_iterator_test(i, j, val1, val2);\r
-  Iterator i2 = i;\r
-  ++i2;\r
-  swappable_iterator_test(i, i2);\r
-}\r
-\r
-// bidirectional\r
-// Preconditions: *i == v1, *++i == v2\r
-template <class Iterator, class T>\r
-void bidirectional_readable_iterator_test(Iterator i, T v1, T v2)\r
-{\r
-  Iterator j(i);\r
-  ++j;\r
-  forward_readable_iterator_test(i, j, v1, v2);\r
-  ++i;\r
-\r
-  Iterator i1 = i, i2 = i;\r
-\r
-  BOOST_TEST(i == i1--);\r
-  BOOST_TEST(i != --i2);\r
-\r
-  readable_iterator_test(i, v2);\r
-  readable_iterator_test(i1, v1);\r
-  readable_iterator_test(i2, v1);\r
-\r
-  --i;\r
-  BOOST_TEST(i == i1);\r
-  BOOST_TEST(i == i2);\r
-  ++i1;\r
-  ++i2;\r
-\r
-  readable_iterator_test(i, v1);\r
-  readable_iterator_test(i1, v2);\r
-  readable_iterator_test(i2, v2);\r
-}\r
-\r
-// random access\r
-// Preconditions: [i,i+N) is a valid range\r
-template <class Iterator, class TrueVals>\r
-void random_access_readable_iterator_test(Iterator i, int N, TrueVals vals)\r
-{\r
-  bidirectional_readable_iterator_test(i, vals[0], vals[1]);\r
-  const Iterator j = i;\r
-  int c;\r
-\r
-  for (c = 0; c < N-1; ++c)\r
-  {\r
-    BOOST_TEST(i == j + c);\r
-    BOOST_TEST(*i == vals[c]);\r
-    typename detail::iterator_traits<Iterator>::value_type x = j[c];\r
-    BOOST_TEST(*i == x);\r
-    BOOST_TEST(*i == *(j + c));\r
-    BOOST_TEST(*i == *(c + j));\r
-    ++i;\r
-    BOOST_TEST(i > j);\r
-    BOOST_TEST(i >= j);\r
-    BOOST_TEST(j <= i);\r
-    BOOST_TEST(j < i);\r
-  }\r
-\r
-  Iterator k = j + N - 1;\r
-  for (c = 0; c < N-1; ++c)\r
-  {\r
-    BOOST_TEST(i == k - c);\r
-    BOOST_TEST(*i == vals[N - 1 - c]);\r
-    typename detail::iterator_traits<Iterator>::value_type x = j[N - 1 - c];\r
-    BOOST_TEST(*i == x);\r
-    Iterator q = k - c; \r
-    BOOST_TEST(*i == *q);\r
-    BOOST_TEST(i > j);\r
-    BOOST_TEST(i >= j);\r
-    BOOST_TEST(j <= i);\r
-    BOOST_TEST(j < i);\r
-    --i;\r
-  }\r
-}\r
-\r
-} // namespace boost\r
-\r
-# include <boost/iterator/detail/config_undef.hpp>\r
-\r
-#endif // BOOST_NEW_ITERATOR_TESTS_HPP\r
+#ifndef BOOST_NEW_ITERATOR_TESTS_HPP
+# define BOOST_NEW_ITERATOR_TESTS_HPP
+
+//
+// Copyright (c) David Abrahams 2001.
+// Copyright (c) Jeremy Siek 2001-2003.
+// Copyright (c) Thomas Witt 2002.
+//
+// Use, modification and distribution is subject to the
+// Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// This is meant to be the beginnings of a comprehensive, generic
+// test suite for STL concepts such as iterators and containers.
+//
+// Revision History:
+// 28 Oct 2002  Started update for new iterator categories
+//              (Jeremy Siek)
+// 28 Apr 2002  Fixed input iterator requirements.
+//              For a == b a++ == b++ is no longer required.
+//              See 24.1.1/3 for details.
+//              (Thomas Witt)
+// 08 Feb 2001  Fixed bidirectional iterator test so that
+//              --i is no longer a precondition.
+//              (Jeremy Siek)
+// 04 Feb 2001  Added lvalue test, corrected preconditions
+//              (David Abrahams)
+
+# include <iterator>
+# include <boost/type_traits.hpp>
+# include <boost/static_assert.hpp>
+# include <boost/concept_archetype.hpp> // for detail::dummy_constructor
+# include <boost/detail/iterator.hpp>
+# include <boost/pending/iterator_tests.hpp>
+# include <boost/iterator/is_readable_iterator.hpp>
+# include <boost/iterator/is_lvalue_iterator.hpp>
+
+# include <boost/iterator/detail/config_def.hpp>
+# include <boost/detail/is_incrementable.hpp>
+# include <boost/detail/lightweight_test.hpp>
+
+namespace boost {
+
+
+// Do separate tests for *i++ so we can treat, e.g., smart pointers,
+// as readable and/or writable iterators.
+template <class Iterator, class T>
+void readable_iterator_traversal_test(Iterator i1, T v, mpl::true_)
+{
+    T v2(*i1++);
+    BOOST_TEST(v == v2);
+}
+
+template <class Iterator, class T>
+void readable_iterator_traversal_test(const Iterator i1, T v, mpl::false_)
+{}
+
+template <class Iterator, class T>
+void writable_iterator_traversal_test(Iterator i1, T v, mpl::true_)
+{
+    ++i1;  // we just wrote into that position
+    *i1++ = v;
+    Iterator x(i1++);
+    (void)x;
+}
+
+template <class Iterator, class T>
+void writable_iterator_traversal_test(const Iterator i1, T v, mpl::false_)
+{}
+
+
+// Preconditions: *i == v
+template <class Iterator, class T>
+void readable_iterator_test(const Iterator i1, T v)
+{
+  Iterator i2(i1); // Copy Constructible
+  typedef typename detail::iterator_traits<Iterator>::reference ref_t;
+  ref_t r1 = *i1;
+  ref_t r2 = *i2;
+  T v1 = r1;
+  T v2 = r2;
+  BOOST_TEST(v1 == v);
+  BOOST_TEST(v2 == v);
+
+# if !BOOST_WORKAROUND(__MWERKS__, <= 0x2407)
+  readable_iterator_traversal_test(i1, v, detail::is_postfix_incrementable<Iterator>());
+      
+  // I think we don't really need this as it checks the same things as
+  // the above code.
+  BOOST_STATIC_ASSERT(is_readable_iterator<Iterator>::value);
+# endif 
+}
+
+template <class Iterator, class T>
+void writable_iterator_test(Iterator i, T v, T v2)
+{
+  Iterator i2(i); // Copy Constructible
+  *i2 = v;
+
+# if !BOOST_WORKAROUND(__MWERKS__, <= 0x2407)
+  writable_iterator_traversal_test(
+      i, v2, mpl::and_<
+          detail::is_incrementable<Iterator>
+        , detail::is_postfix_incrementable<Iterator>
+      >());
+# endif 
+}
+
+template <class Iterator>
+void swappable_iterator_test(Iterator i, Iterator j)
+{
+  Iterator i2(i), j2(j);
+  typename detail::iterator_traits<Iterator>::value_type bi = *i, bj = *j;
+  iter_swap(i2, j2);
+  typename detail::iterator_traits<Iterator>::value_type ai = *i, aj = *j;
+  BOOST_TEST(bi == aj && bj == ai);
+}
+
+template <class Iterator, class T>
+void constant_lvalue_iterator_test(Iterator i, T v1)
+{
+  Iterator i2(i);
+  typedef typename detail::iterator_traits<Iterator>::value_type value_type;
+  typedef typename detail::iterator_traits<Iterator>::reference reference;
+  BOOST_STATIC_ASSERT((is_same<const value_type&, reference>::value));
+  const T& v2 = *i2;
+  BOOST_TEST(v1 == v2);
+# ifndef BOOST_NO_LVALUE_RETURN_DETECTION
+  BOOST_STATIC_ASSERT(is_lvalue_iterator<Iterator>::value);
+  BOOST_STATIC_ASSERT(!is_non_const_lvalue_iterator<Iterator>::value);
+# endif 
+}
+
+template <class Iterator, class T>
+void non_const_lvalue_iterator_test(Iterator i, T v1, T v2)
+{
+  Iterator i2(i);
+  typedef typename detail::iterator_traits<Iterator>::value_type value_type;
+  typedef typename detail::iterator_traits<Iterator>::reference reference;
+  BOOST_STATIC_ASSERT((is_same<value_type&, reference>::value));
+  T& v3 = *i2;
+  BOOST_TEST(v1 == v3);
+  
+  // A non-const lvalue iterator is not neccessarily writable, but we
+  // are assuming the value_type is assignable here
+  *i = v2;
+  
+  T& v4 = *i2;
+  BOOST_TEST(v2 == v4);
+# ifndef BOOST_NO_LVALUE_RETURN_DETECTION
+  BOOST_STATIC_ASSERT(is_lvalue_iterator<Iterator>::value);
+  BOOST_STATIC_ASSERT(is_non_const_lvalue_iterator<Iterator>::value);
+# endif 
+}
+
+template <class Iterator, class T>
+void forward_readable_iterator_test(Iterator i, Iterator j, T val1, T val2)
+{
+  Iterator i2;
+  Iterator i3(i);
+  i2 = i;
+  BOOST_TEST(i2 == i3);
+  BOOST_TEST(i != j);
+  BOOST_TEST(i2 != j);
+  readable_iterator_test(i, val1);
+  readable_iterator_test(i2, val1);
+  readable_iterator_test(i3, val1);
+
+  BOOST_TEST(i == i2++);
+  BOOST_TEST(i != ++i3);
+
+  readable_iterator_test(i2, val2);
+  readable_iterator_test(i3, val2);
+
+  readable_iterator_test(i, val1);
+}
+
+template <class Iterator, class T>
+void forward_swappable_iterator_test(Iterator i, Iterator j, T val1, T val2)
+{
+  forward_readable_iterator_test(i, j, val1, val2);
+  Iterator i2 = i;
+  ++i2;
+  swappable_iterator_test(i, i2);
+}
+
+// bidirectional
+// Preconditions: *i == v1, *++i == v2
+template <class Iterator, class T>
+void bidirectional_readable_iterator_test(Iterator i, T v1, T v2)
+{
+  Iterator j(i);
+  ++j;
+  forward_readable_iterator_test(i, j, v1, v2);
+  ++i;
+
+  Iterator i1 = i, i2 = i;
+
+  BOOST_TEST(i == i1--);
+  BOOST_TEST(i != --i2);
+
+  readable_iterator_test(i, v2);
+  readable_iterator_test(i1, v1);
+  readable_iterator_test(i2, v1);
+
+  --i;
+  BOOST_TEST(i == i1);
+  BOOST_TEST(i == i2);
+  ++i1;
+  ++i2;
+
+  readable_iterator_test(i, v1);
+  readable_iterator_test(i1, v2);
+  readable_iterator_test(i2, v2);
+}
+
+// random access
+// Preconditions: [i,i+N) is a valid range
+template <class Iterator, class TrueVals>
+void random_access_readable_iterator_test(Iterator i, int N, TrueVals vals)
+{
+  bidirectional_readable_iterator_test(i, vals[0], vals[1]);
+  const Iterator j = i;
+  int c;
+
+  for (c = 0; c < N-1; ++c)
+  {
+    BOOST_TEST(i == j + c);
+    BOOST_TEST(*i == vals[c]);
+    typename detail::iterator_traits<Iterator>::value_type x = j[c];
+    BOOST_TEST(*i == x);
+    BOOST_TEST(*i == *(j + c));
+    BOOST_TEST(*i == *(c + j));
+    ++i;
+    BOOST_TEST(i > j);
+    BOOST_TEST(i >= j);
+    BOOST_TEST(j <= i);
+    BOOST_TEST(j < i);
+  }
+
+  Iterator k = j + N - 1;
+  for (c = 0; c < N-1; ++c)
+  {
+    BOOST_TEST(i == k - c);
+    BOOST_TEST(*i == vals[N - 1 - c]);
+    typename detail::iterator_traits<Iterator>::value_type x = j[N - 1 - c];
+    BOOST_TEST(*i == x);
+    Iterator q = k - c; 
+    BOOST_TEST(*i == *q);
+    BOOST_TEST(i > j);
+    BOOST_TEST(i >= j);
+    BOOST_TEST(j <= i);
+    BOOST_TEST(j < i);
+    --i;
+  }
+}
+
+} // namespace boost
+
+# include <boost/iterator/detail/config_undef.hpp>
+
+#endif // BOOST_NEW_ITERATOR_TESTS_HPP
index 05c740d348b3bddc255e27e36350187e035f5657..23d11986da4cb3b516c18ec1110b469b6a7db293 100644 (file)
@@ -1,72 +1,72 @@
-// (C) Copyright Toon Knapen    2001.\r
-// (C) Copyright David Abrahams 2003.\r
-// (C) Copyright Roland Richter 2003.\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef BOOST_PERMUTATION_ITERATOR_HPP\r
-#define BOOST_PERMUTATION_ITERATOR_HPP\r
-\r
-#include <iterator>\r
-\r
-#include <boost/iterator/iterator_adaptor.hpp>\r
-\r
-\r
-namespace boost\r
-{\r
-\r
-template< class ElementIterator\r
-        , class IndexIterator>\r
-class permutation_iterator\r
-  : public iterator_adaptor< \r
-             permutation_iterator<ElementIterator, IndexIterator>\r
-           , IndexIterator, typename detail::iterator_traits<ElementIterator>::value_type\r
-           , use_default, typename detail::iterator_traits<ElementIterator>::reference>\r
-{\r
-  typedef iterator_adaptor< \r
-            permutation_iterator<ElementIterator, IndexIterator>\r
-          , IndexIterator, typename detail::iterator_traits<ElementIterator>::value_type\r
-          , use_default, typename detail::iterator_traits<ElementIterator>::reference> super_t;\r
-\r
-  friend class iterator_core_access;\r
-\r
-public:\r
-  permutation_iterator() : m_elt_iter() {}\r
-\r
-  explicit permutation_iterator(ElementIterator x, IndexIterator y) \r
-      : super_t(y), m_elt_iter(x) {}\r
-\r
-  template<class OtherElementIterator, class OtherIndexIterator>\r
-  permutation_iterator(\r
-      permutation_iterator<OtherElementIterator, OtherIndexIterator> const& r\r
-      , typename enable_if_convertible<OtherElementIterator, ElementIterator>::type* = 0\r
-      , typename enable_if_convertible<OtherIndexIterator, IndexIterator>::type* = 0\r
-      )\r
-    : super_t(r.base()), m_elt_iter(r.m_elt_iter)\r
-  {}\r
-\r
-private:\r
-    typename super_t::reference dereference() const\r
-        { return *(m_elt_iter + *this->base()); }\r
-\r
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS\r
-    template <class,class> friend class permutation_iterator;\r
-#else\r
- public:\r
-#endif \r
-    ElementIterator m_elt_iter;\r
-};\r
-\r
-\r
-template <class ElementIterator, class IndexIterator>\r
-permutation_iterator<ElementIterator, IndexIterator> \r
-make_permutation_iterator( ElementIterator e, IndexIterator i )\r
-{\r
-    return permutation_iterator<ElementIterator, IndexIterator>( e, i );\r
-}\r
-\r
-\r
-} // namespace boost\r
-\r
-#endif\r
+// (C) Copyright Toon Knapen    2001.
+// (C) Copyright David Abrahams 2003.
+// (C) Copyright Roland Richter 2003.
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PERMUTATION_ITERATOR_HPP
+#define BOOST_PERMUTATION_ITERATOR_HPP
+
+#include <iterator>
+
+#include <boost/iterator/iterator_adaptor.hpp>
+
+
+namespace boost
+{
+
+template< class ElementIterator
+        , class IndexIterator>
+class permutation_iterator
+  : public iterator_adaptor< 
+             permutation_iterator<ElementIterator, IndexIterator>
+           , IndexIterator, typename detail::iterator_traits<ElementIterator>::value_type
+           , use_default, typename detail::iterator_traits<ElementIterator>::reference>
+{
+  typedef iterator_adaptor< 
+            permutation_iterator<ElementIterator, IndexIterator>
+          , IndexIterator, typename detail::iterator_traits<ElementIterator>::value_type
+          , use_default, typename detail::iterator_traits<ElementIterator>::reference> super_t;
+
+  friend class iterator_core_access;
+
+public:
+  permutation_iterator() : m_elt_iter() {}
+
+  explicit permutation_iterator(ElementIterator x, IndexIterator y) 
+      : super_t(y), m_elt_iter(x) {}
+
+  template<class OtherElementIterator, class OtherIndexIterator>
+  permutation_iterator(
+      permutation_iterator<OtherElementIterator, OtherIndexIterator> const& r
+      , typename enable_if_convertible<OtherElementIterator, ElementIterator>::type* = 0
+      , typename enable_if_convertible<OtherIndexIterator, IndexIterator>::type* = 0
+      )
+    : super_t(r.base()), m_elt_iter(r.m_elt_iter)
+  {}
+
+private:
+    typename super_t::reference dereference() const
+        { return *(m_elt_iter + *this->base()); }
+
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+    template <class,class> friend class permutation_iterator;
+#else
+ public:
+#endif 
+    ElementIterator m_elt_iter;
+};
+
+
+template <class ElementIterator, class IndexIterator>
+permutation_iterator<ElementIterator, IndexIterator> 
+make_permutation_iterator( ElementIterator e, IndexIterator i )
+{
+    return permutation_iterator<ElementIterator, IndexIterator>( e, i );
+}
+
+
+} // namespace boost
+
+#endif
index edc7e09578c484fdeda4b156bf34648770a49fff..f3896ad955176aa7328000db280d9d7b0d72b70a 100644 (file)
-// Copyright David Abrahams and Thomas Becker 2000-2006. Distributed\r
-// under the Boost Software License, Version 1.0. (See accompanying\r
-// file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef BOOST_ZIP_ITERATOR_TMB_07_13_2003_HPP_\r
-# define BOOST_ZIP_ITERATOR_TMB_07_13_2003_HPP_\r
-\r
-#include <stddef.h>\r
-#include <boost/iterator.hpp>\r
-#include <boost/iterator/iterator_traits.hpp>\r
-#include <boost/iterator/iterator_facade.hpp>\r
-#include <boost/iterator/iterator_adaptor.hpp> // for enable_if_convertible\r
-#include <boost/iterator/iterator_categories.hpp>\r
-#include <boost/detail/iterator.hpp>\r
-\r
-#include <boost/iterator/detail/minimum_category.hpp>\r
-\r
-#include <boost/tuple/tuple.hpp>\r
-\r
-#include <boost/type_traits/is_same.hpp>\r
-#include <boost/mpl/and.hpp>\r
-#include <boost/mpl/apply.hpp>\r
-#include <boost/mpl/eval_if.hpp>\r
-#include <boost/mpl/lambda.hpp>\r
-#include <boost/mpl/placeholders.hpp>\r
-#include <boost/mpl/aux_/lambda_support.hpp>\r
-\r
-namespace boost {\r
-\r
-  // Zip iterator forward declaration for zip_iterator_base\r
-  template<typename IteratorTuple>\r
-  class zip_iterator;\r
-\r
-  // One important design goal of the zip_iterator is to isolate all\r
-  // functionality whose implementation relies on the current tuple\r
-  // implementation. This goal has been achieved as follows: Inside\r
-  // the namespace detail there is a namespace tuple_impl_specific.\r
-  // This namespace encapsulates all functionality that is specific\r
-  // to the current Boost tuple implementation. More precisely, the\r
-  // namespace tuple_impl_specific provides the following tuple\r
-  // algorithms and meta-algorithms for the current Boost tuple\r
-  // implementation:\r
-  //\r
-  // tuple_meta_transform\r
-  // tuple_meta_accumulate\r
-  // tuple_transform\r
-  // tuple_for_each\r
-  //\r
-  // If the tuple implementation changes, all that needs to be\r
-  // replaced is the implementation of these four (meta-)algorithms.\r
-\r
-  namespace detail\r
-  {\r
-\r
-    // Functors to be used with tuple algorithms\r
-    //\r
-    template<typename DiffType>\r
-    class advance_iterator\r
-    {\r
-    public:\r
-      advance_iterator(DiffType step) : m_step(step) {}\r
-      \r
-      template<typename Iterator>\r
-      void operator()(Iterator& it) const\r
-      { it += m_step; }\r
-\r
-    private:\r
-      DiffType m_step;\r
-    };\r
-    //\r
-    struct increment_iterator\r
-    {\r
-      template<typename Iterator>\r
-      void operator()(Iterator& it)\r
-      { ++it; }\r
-    };\r
-    //\r
-    struct decrement_iterator\r
-    {\r
-      template<typename Iterator>\r
-      void operator()(Iterator& it)\r
-      { --it; }\r
-    };\r
-    //\r
-    struct dereference_iterator\r
-    {\r
-      template<typename Iterator>\r
-      struct apply\r
-      { \r
-        typedef typename\r
-          iterator_traits<Iterator>::reference\r
-        type;\r
-      };\r
-\r
-      template<typename Iterator>\r
-        typename apply<Iterator>::type operator()(Iterator const& it)\r
-      { return *it; }\r
-    };\r
-           \r
-\r
-    // The namespace tuple_impl_specific provides two meta-\r
-    // algorithms and two algorithms for tuples.\r
-    //\r
-    namespace tuple_impl_specific\r
-    {\r
-      // Meta-transform algorithm for tuples\r
-      //\r
-      template<typename Tuple, class UnaryMetaFun>\r
-      struct tuple_meta_transform;\r
-      \r
-      template<typename Tuple, class UnaryMetaFun>\r
-      struct tuple_meta_transform_impl\r
-      {\r
-          typedef tuples::cons<\r
-              typename mpl::apply1<\r
-                  typename mpl::lambda<UnaryMetaFun>::type\r
-                , typename Tuple::head_type\r
-              >::type\r
-            , typename tuple_meta_transform<\r
-                  typename Tuple::tail_type\r
-                , UnaryMetaFun \r
-              >::type\r
-          > type;\r
-      };\r
-\r
-      template<typename Tuple, class UnaryMetaFun>\r
-      struct tuple_meta_transform\r
-        : mpl::eval_if<\r
-              boost::is_same<Tuple, tuples::null_type>\r
-            , mpl::identity<tuples::null_type>\r
-            , tuple_meta_transform_impl<Tuple, UnaryMetaFun>\r
-        >\r
-      {\r
-      };\r
-      \r
-      // Meta-accumulate algorithm for tuples. Note: The template \r
-      // parameter StartType corresponds to the initial value in \r
-      // ordinary accumulation.\r
-      //\r
-      template<class Tuple, class BinaryMetaFun, class StartType>\r
-      struct tuple_meta_accumulate;\r
-      \r
-      template<\r
-          typename Tuple\r
-        , class BinaryMetaFun\r
-        , typename StartType\r
-      >\r
-      struct tuple_meta_accumulate_impl\r
-      {\r
-         typedef typename mpl::apply2<\r
-             typename mpl::lambda<BinaryMetaFun>::type\r
-           , typename Tuple::head_type\r
-           , typename tuple_meta_accumulate<\r
-                 typename Tuple::tail_type\r
-               , BinaryMetaFun\r
-               , StartType \r
-             >::type\r
-         >::type type;\r
-      };\r
-\r
-      template<\r
-          typename Tuple\r
-        , class BinaryMetaFun\r
-        , typename StartType\r
-      >\r
-      struct tuple_meta_accumulate\r
-        : mpl::eval_if<\r
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
-              mpl::or_<\r
-#endif \r
-                  boost::is_same<Tuple, tuples::null_type>\r
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
-                , boost::is_same<Tuple,int>\r
-              >\r
-#endif \r
-            , mpl::identity<StartType>\r
-            , tuple_meta_accumulate_impl<\r
-                  Tuple\r
-                , BinaryMetaFun\r
-                , StartType\r
-              >\r
-          >\r
-      {\r
-      };  \r
-\r
-#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)                            \\r
-    || (                                                                    \\r
-      BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, != 0) && defined(_MSC_VER)  \\r
-    )\r
-// Not sure why intel's partial ordering fails in this case, but I'm\r
-// assuming int's an MSVC bug-compatibility feature.\r
-      \r
-# define BOOST_TUPLE_ALGO_DISPATCH\r
-# define BOOST_TUPLE_ALGO(algo) algo##_impl\r
-# define BOOST_TUPLE_ALGO_TERMINATOR , int\r
-# define BOOST_TUPLE_ALGO_RECURSE , ...\r
-#else \r
-# define BOOST_TUPLE_ALGO(algo) algo\r
-# define BOOST_TUPLE_ALGO_TERMINATOR\r
-# define BOOST_TUPLE_ALGO_RECURSE\r
-#endif\r
-      \r
-      // transform algorithm for tuples. The template parameter Fun\r
-      // must be a unary functor which is also a unary metafunction\r
-      // class that computes its return type based on its argument\r
-      // type. For example:\r
-      //\r
-      // struct to_ptr\r
-      // {\r
-      //     template <class Arg>\r
-      //     struct apply\r
-      //     {\r
-      //          typedef Arg* type;\r
-      //     }\r
-      //\r
-      //     template <class Arg>\r
-      //     Arg* operator()(Arg x);\r
-      // };\r
-      template<typename Fun>\r
-      tuples::null_type BOOST_TUPLE_ALGO(tuple_transform)\r
-          (tuples::null_type const&, Fun BOOST_TUPLE_ALGO_TERMINATOR)\r
-      { return tuples::null_type(); }\r
-\r
-      template<typename Tuple, typename Fun>\r
-      typename tuple_meta_transform<\r
-          Tuple\r
-        , Fun\r
-      >::type\r
-      \r
-      BOOST_TUPLE_ALGO(tuple_transform)(\r
-        const Tuple& t, \r
-        Fun f\r
-        BOOST_TUPLE_ALGO_RECURSE\r
-      )\r
-      { \r
-          typedef typename tuple_meta_transform<\r
-              BOOST_DEDUCED_TYPENAME Tuple::tail_type\r
-            , Fun\r
-          >::type transformed_tail_type;\r
-\r
-        return tuples::cons<\r
-            BOOST_DEDUCED_TYPENAME mpl::apply1<\r
-                Fun, BOOST_DEDUCED_TYPENAME Tuple::head_type\r
-             >::type\r
-           , transformed_tail_type\r
-        >( \r
-            f(boost::tuples::get<0>(t)), tuple_transform(t.get_tail(), f)\r
-        );\r
-      }\r
-\r
-#ifdef BOOST_TUPLE_ALGO_DISPATCH\r
-      template<typename Tuple, typename Fun>\r
-      typename tuple_meta_transform<\r
-          Tuple\r
-        , Fun\r
-      >::type\r
-      \r
-      tuple_transform(\r
-        const Tuple& t, \r
-        Fun f\r
-      )\r
-      {\r
-          return tuple_transform_impl(t, f, 1);\r
-      }\r
-#endif\r
-      \r
-      // for_each algorithm for tuples.\r
-      //\r
-      template<typename Fun>\r
-      Fun BOOST_TUPLE_ALGO(tuple_for_each)(\r
-          tuples::null_type\r
-        , Fun f BOOST_TUPLE_ALGO_TERMINATOR\r
-      )\r
-      { return f; }\r
-\r
-      \r
-      template<typename Tuple, typename Fun>\r
-      Fun BOOST_TUPLE_ALGO(tuple_for_each)(\r
-          Tuple& t\r
-        , Fun f BOOST_TUPLE_ALGO_RECURSE)\r
-      { \r
-          f( t.get_head() );\r
-          return tuple_for_each(t.get_tail(), f);\r
-      }\r
-      \r
-#ifdef BOOST_TUPLE_ALGO_DISPATCH\r
-      template<typename Tuple, typename Fun>\r
-      Fun\r
-      tuple_for_each(\r
-        Tuple& t, \r
-        Fun f\r
-      )\r
-      {\r
-          return tuple_for_each_impl(t, f, 1);\r
-      }\r
-#endif\r
-      \r
-      // Equality of tuples. NOTE: "==" for tuples currently (7/2003)\r
-      // has problems under some compilers, so I just do my own.\r
-      // No point in bringing in a bunch of #ifdefs here. This is\r
-      // going to go away with the next tuple implementation anyway.\r
-      //\r
-      inline bool tuple_equal(tuples::null_type, tuples::null_type)\r
-      { return true; }\r
-\r
-      template<typename Tuple1, typename Tuple2>\r
-        bool tuple_equal(\r
-            Tuple1 const& t1, \r
-            Tuple2 const& t2\r
-        )\r
-      { \r
-          return t1.get_head() == t2.get_head() && \r
-          tuple_equal(t1.get_tail(), t2.get_tail());\r
-      }\r
-    }\r
-    //\r
-    // end namespace tuple_impl_specific\r
-\r
-    template<typename Iterator>\r
-    struct iterator_reference\r
-    {\r
-        typedef typename iterator_traits<Iterator>::reference type;\r
-    };\r
-\r
-#ifdef BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT\r
-    // Hack because BOOST_MPL_AUX_LAMBDA_SUPPORT doesn't seem to work\r
-    // out well.  Instantiating the nested apply template also\r
-    // requires instantiating iterator_traits on the\r
-    // placeholder. Instead we just specialize it as a metafunction\r
-    // class.\r
-    template<>\r
-    struct iterator_reference<mpl::_1>\r
-    {\r
-        template <class T>\r
-        struct apply : iterator_reference<T> {};\r
-    };\r
-#endif\r
-    \r
-    // Metafunction to obtain the type of the tuple whose element types\r
-    // are the reference types of an iterator tuple.\r
-    //\r
-    template<typename IteratorTuple>\r
-    struct tuple_of_references\r
-      : tuple_impl_specific::tuple_meta_transform<\r
-            IteratorTuple, \r
-            iterator_reference<mpl::_1>\r
-          >\r
-    {\r
-    };\r
-\r
-    // Metafunction to obtain the minimal traversal tag in a tuple\r
-    // of iterators.\r
-    //\r
-    template<typename IteratorTuple>\r
-    struct minimum_traversal_category_in_iterator_tuple\r
-    {\r
-      typedef typename tuple_impl_specific::tuple_meta_transform<\r
-          IteratorTuple\r
-        , iterator_traversal<>\r
-      >::type tuple_of_traversal_tags;\r
-          \r
-      typedef typename tuple_impl_specific::tuple_meta_accumulate<\r
-          tuple_of_traversal_tags\r
-        , minimum_category<>\r
-        , random_access_traversal_tag\r
-      >::type type;\r
-    };\r
-\r
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) // ETI workaround\r
-      template <>\r
-      struct minimum_traversal_category_in_iterator_tuple<int>\r
-      {\r
-          typedef int type;\r
-      };\r
-#endif\r
-      \r
-      // We need to call tuple_meta_accumulate with mpl::and_ as the\r
-      // accumulating functor. To this end, we need to wrap it into\r
-      // a struct that has exactly two arguments (that is, template\r
-      // parameters) and not five, like mpl::and_ does.\r
-      //\r
-      template<typename Arg1, typename Arg2>\r
-      struct and_with_two_args\r
-        : mpl::and_<Arg1, Arg2>\r
-      {\r
-      };\r
-    \r
-# ifdef BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT\r
-  // Hack because BOOST_MPL_AUX_LAMBDA_SUPPORT doesn't seem to work\r
-  // out well.  In this case I think it's an MPL bug\r
-      template<>\r
-      struct and_with_two_args<mpl::_1,mpl::_2>\r
-      {\r
-          template <class A1, class A2>\r
-          struct apply : mpl::and_<A1,A2>\r
-          {};\r
-      };\r
-# endif \r
-\r
-    ///////////////////////////////////////////////////////////////////\r
-    //\r
-    // Class zip_iterator_base\r
-    //\r
-    // Builds and exposes the iterator facade type from which the zip \r
-    // iterator will be derived.\r
-    //\r
-    template<typename IteratorTuple>\r
-    struct zip_iterator_base\r
-    {\r
-     private:\r
-        // Reference type is the type of the tuple obtained from the\r
-        // iterators' reference types.\r
-        typedef typename \r
-        detail::tuple_of_references<IteratorTuple>::type reference;\r
-      \r
-        // Value type is the same as reference type.\r
-        typedef reference value_type;\r
-      \r
-        // Difference type is the first iterator's difference type\r
-        typedef typename iterator_traits<\r
-            typename tuples::element<0, IteratorTuple>::type\r
-            >::difference_type difference_type;\r
-      \r
-        // Traversal catetgory is the minimum traversal category in the \r
-        // iterator tuple.\r
-        typedef typename \r
-        detail::minimum_traversal_category_in_iterator_tuple<\r
-            IteratorTuple\r
-        >::type traversal_category;\r
-     public:\r
-      \r
-        // The iterator facade type from which the zip iterator will\r
-        // be derived.\r
-        typedef iterator_facade<\r
-            zip_iterator<IteratorTuple>,\r
-            value_type,  \r
-            traversal_category,\r
-            reference,\r
-            difference_type\r
-        > type;\r
-    };\r
-\r
-    template <>\r
-    struct zip_iterator_base<int>\r
-    {\r
-        typedef int type;\r
-    };\r
-  }\r
-  \r
-  /////////////////////////////////////////////////////////////////////\r
-  //\r
-  // zip_iterator class definition\r
-  //\r
-  template<typename IteratorTuple>\r
-  class zip_iterator : \r
-    public detail::zip_iterator_base<IteratorTuple>::type\r
-  {  \r
-\r
-   // Typedef super_t as our base class. \r
-   typedef typename \r
-     detail::zip_iterator_base<IteratorTuple>::type super_t;\r
-\r
-   // iterator_core_access is the iterator's best friend.\r
-   friend class iterator_core_access;\r
-\r
-  public:\r
-    \r
-    // Construction\r
-    // ============\r
-    \r
-    // Default constructor\r
-    zip_iterator() { }\r
-\r
-    // Constructor from iterator tuple\r
-    zip_iterator(IteratorTuple iterator_tuple) \r
-      : m_iterator_tuple(iterator_tuple) \r
-    { }\r
-\r
-    // Copy constructor\r
-    template<typename OtherIteratorTuple>\r
-    zip_iterator(\r
-       const zip_iterator<OtherIteratorTuple>& other,\r
-       typename enable_if_convertible<\r
-         OtherIteratorTuple,\r
-         IteratorTuple\r
-         >::type* = 0\r
-    ) : m_iterator_tuple(other.get_iterator_tuple())\r
-    {}\r
-\r
-    // Get method for the iterator tuple.\r
-    const IteratorTuple& get_iterator_tuple() const\r
-    { return m_iterator_tuple; }\r
-\r
-  private:\r
-    \r
-    // Implementation of Iterator Operations\r
-    // =====================================\r
-    \r
-    // Dereferencing returns a tuple built from the dereferenced\r
-    // iterators in the iterator tuple.\r
-    typename super_t::reference dereference() const\r
-    { \r
-      return detail::tuple_impl_specific::tuple_transform( \r
-        get_iterator_tuple(),\r
-        detail::dereference_iterator()\r
-       );\r
-    }\r
-\r
-    // Two zip iterators are equal if all iterators in the iterator\r
-    // tuple are equal. NOTE: It should be possible to implement this\r
-    // as\r
-    //\r
-    // return get_iterator_tuple() == other.get_iterator_tuple();\r
-    //\r
-    // but equality of tuples currently (7/2003) does not compile\r
-    // under several compilers. No point in bringing in a bunch\r
-    // of #ifdefs here.\r
-    //\r
-    template<typename OtherIteratorTuple>   \r
-    bool equal(const zip_iterator<OtherIteratorTuple>& other) const\r
-    {\r
-      return detail::tuple_impl_specific::tuple_equal(\r
-        get_iterator_tuple(),\r
-        other.get_iterator_tuple()\r
-        );\r
-    }\r
-\r
-    // Advancing a zip iterator means to advance all iterators in the\r
-    // iterator tuple.\r
-    void advance(typename super_t::difference_type n)\r
-    { \r
-      detail::tuple_impl_specific::tuple_for_each(\r
-          m_iterator_tuple,\r
-          detail::advance_iterator<BOOST_DEDUCED_TYPENAME super_t::difference_type>(n)\r
-          );\r
-    }\r
-    // Incrementing a zip iterator means to increment all iterators in\r
-    // the iterator tuple.\r
-    void increment()\r
-    { \r
-      detail::tuple_impl_specific::tuple_for_each(\r
-        m_iterator_tuple,\r
-        detail::increment_iterator()\r
-        );\r
-    }\r
-    \r
-    // Decrementing a zip iterator means to decrement all iterators in\r
-    // the iterator tuple.\r
-    void decrement()\r
-    { \r
-      detail::tuple_impl_specific::tuple_for_each(\r
-        m_iterator_tuple,\r
-        detail::decrement_iterator()\r
-        );\r
-    }\r
-    \r
-    // Distance is calculated using the first iterator in the tuple.\r
-    template<typename OtherIteratorTuple>\r
-      typename super_t::difference_type distance_to(\r
-        const zip_iterator<OtherIteratorTuple>& other\r
-        ) const\r
-    { \r
-        return boost::tuples::get<0>(other.get_iterator_tuple()) - \r
-            boost::tuples::get<0>(this->get_iterator_tuple());\r
-    }\r
-  \r
-    // Data Members\r
-    // ============\r
-    \r
-    // The iterator tuple.\r
-    IteratorTuple m_iterator_tuple;\r
\r
-  };\r
-\r
-  // Make function for zip iterator\r
-  //\r
-  template<typename IteratorTuple> \r
-  zip_iterator<IteratorTuple> \r
-  make_zip_iterator(IteratorTuple t)\r
-  { return zip_iterator<IteratorTuple>(t); }\r
-\r
-}\r
-\r
-#endif\r
+// Copyright David Abrahams and Thomas Becker 2000-2006. Distributed
+// under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_ZIP_ITERATOR_TMB_07_13_2003_HPP_
+# define BOOST_ZIP_ITERATOR_TMB_07_13_2003_HPP_
+
+#include <stddef.h>
+#include <boost/iterator.hpp>
+#include <boost/iterator/iterator_traits.hpp>
+#include <boost/iterator/iterator_facade.hpp>
+#include <boost/iterator/iterator_adaptor.hpp> // for enable_if_convertible
+#include <boost/iterator/iterator_categories.hpp>
+#include <boost/detail/iterator.hpp>
+
+#include <boost/iterator/detail/minimum_category.hpp>
+
+#include <boost/tuple/tuple.hpp>
+
+#include <boost/type_traits/is_same.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/lambda.hpp>
+#include <boost/mpl/placeholders.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+
+namespace boost {
+
+  // Zip iterator forward declaration for zip_iterator_base
+  template<typename IteratorTuple>
+  class zip_iterator;
+
+  // One important design goal of the zip_iterator is to isolate all
+  // functionality whose implementation relies on the current tuple
+  // implementation. This goal has been achieved as follows: Inside
+  // the namespace detail there is a namespace tuple_impl_specific.
+  // This namespace encapsulates all functionality that is specific
+  // to the current Boost tuple implementation. More precisely, the
+  // namespace tuple_impl_specific provides the following tuple
+  // algorithms and meta-algorithms for the current Boost tuple
+  // implementation:
+  //
+  // tuple_meta_transform
+  // tuple_meta_accumulate
+  // tuple_transform
+  // tuple_for_each
+  //
+  // If the tuple implementation changes, all that needs to be
+  // replaced is the implementation of these four (meta-)algorithms.
+
+  namespace detail
+  {
+
+    // Functors to be used with tuple algorithms
+    //
+    template<typename DiffType>
+    class advance_iterator
+    {
+    public:
+      advance_iterator(DiffType step) : m_step(step) {}
+      
+      template<typename Iterator>
+      void operator()(Iterator& it) const
+      { it += m_step; }
+
+    private:
+      DiffType m_step;
+    };
+    //
+    struct increment_iterator
+    {
+      template<typename Iterator>
+      void operator()(Iterator& it)
+      { ++it; }
+    };
+    //
+    struct decrement_iterator
+    {
+      template<typename Iterator>
+      void operator()(Iterator& it)
+      { --it; }
+    };
+    //
+    struct dereference_iterator
+    {
+      template<typename Iterator>
+      struct apply
+      { 
+        typedef typename
+          iterator_traits<Iterator>::reference
+        type;
+      };
+
+      template<typename Iterator>
+        typename apply<Iterator>::type operator()(Iterator const& it)
+      { return *it; }
+    };
+           
+
+    // The namespace tuple_impl_specific provides two meta-
+    // algorithms and two algorithms for tuples.
+    //
+    namespace tuple_impl_specific
+    {
+      // Meta-transform algorithm for tuples
+      //
+      template<typename Tuple, class UnaryMetaFun>
+      struct tuple_meta_transform;
+      
+      template<typename Tuple, class UnaryMetaFun>
+      struct tuple_meta_transform_impl
+      {
+          typedef tuples::cons<
+              typename mpl::apply1<
+                  typename mpl::lambda<UnaryMetaFun>::type
+                , typename Tuple::head_type
+              >::type
+            , typename tuple_meta_transform<
+                  typename Tuple::tail_type
+                , UnaryMetaFun 
+              >::type
+          > type;
+      };
+
+      template<typename Tuple, class UnaryMetaFun>
+      struct tuple_meta_transform
+        : mpl::eval_if<
+              boost::is_same<Tuple, tuples::null_type>
+            , mpl::identity<tuples::null_type>
+            , tuple_meta_transform_impl<Tuple, UnaryMetaFun>
+        >
+      {
+      };
+      
+      // Meta-accumulate algorithm for tuples. Note: The template 
+      // parameter StartType corresponds to the initial value in 
+      // ordinary accumulation.
+      //
+      template<class Tuple, class BinaryMetaFun, class StartType>
+      struct tuple_meta_accumulate;
+      
+      template<
+          typename Tuple
+        , class BinaryMetaFun
+        , typename StartType
+      >
+      struct tuple_meta_accumulate_impl
+      {
+         typedef typename mpl::apply2<
+             typename mpl::lambda<BinaryMetaFun>::type
+           , typename Tuple::head_type
+           , typename tuple_meta_accumulate<
+                 typename Tuple::tail_type
+               , BinaryMetaFun
+               , StartType 
+             >::type
+         >::type type;
+      };
+
+      template<
+          typename Tuple
+        , class BinaryMetaFun
+        , typename StartType
+      >
+      struct tuple_meta_accumulate
+        : mpl::eval_if<
+#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+              mpl::or_<
+#endif 
+                  boost::is_same<Tuple, tuples::null_type>
+#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+                , boost::is_same<Tuple,int>
+              >
+#endif 
+            , mpl::identity<StartType>
+            , tuple_meta_accumulate_impl<
+                  Tuple
+                , BinaryMetaFun
+                , StartType
+              >
+          >
+      {
+      };  
+
+#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)                            \
+    || (                                                                    \
+      BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, != 0) && defined(_MSC_VER)  \
+    )
+// Not sure why intel's partial ordering fails in this case, but I'm
+// assuming int's an MSVC bug-compatibility feature.
+      
+# define BOOST_TUPLE_ALGO_DISPATCH
+# define BOOST_TUPLE_ALGO(algo) algo##_impl
+# define BOOST_TUPLE_ALGO_TERMINATOR , int
+# define BOOST_TUPLE_ALGO_RECURSE , ...
+#else 
+# define BOOST_TUPLE_ALGO(algo) algo
+# define BOOST_TUPLE_ALGO_TERMINATOR
+# define BOOST_TUPLE_ALGO_RECURSE
+#endif
+      
+      // transform algorithm for tuples. The template parameter Fun
+      // must be a unary functor which is also a unary metafunction
+      // class that computes its return type based on its argument
+      // type. For example:
+      //
+      // struct to_ptr
+      // {
+      //     template <class Arg>
+      //     struct apply
+      //     {
+      //          typedef Arg* type;
+      //     }
+      //
+      //     template <class Arg>
+      //     Arg* operator()(Arg x);
+      // };
+      template<typename Fun>
+      tuples::null_type BOOST_TUPLE_ALGO(tuple_transform)
+          (tuples::null_type const&, Fun BOOST_TUPLE_ALGO_TERMINATOR)
+      { return tuples::null_type(); }
+
+      template<typename Tuple, typename Fun>
+      typename tuple_meta_transform<
+          Tuple
+        , Fun
+      >::type
+      
+      BOOST_TUPLE_ALGO(tuple_transform)(
+        const Tuple& t, 
+        Fun f
+        BOOST_TUPLE_ALGO_RECURSE
+      )
+      { 
+          typedef typename tuple_meta_transform<
+              BOOST_DEDUCED_TYPENAME Tuple::tail_type
+            , Fun
+          >::type transformed_tail_type;
+
+        return tuples::cons<
+            BOOST_DEDUCED_TYPENAME mpl::apply1<
+                Fun, BOOST_DEDUCED_TYPENAME Tuple::head_type
+             >::type
+           , transformed_tail_type
+        >( 
+            f(boost::tuples::get<0>(t)), tuple_transform(t.get_tail(), f)
+        );
+      }
+
+#ifdef BOOST_TUPLE_ALGO_DISPATCH
+      template<typename Tuple, typename Fun>
+      typename tuple_meta_transform<
+          Tuple
+        , Fun
+      >::type
+      
+      tuple_transform(
+        const Tuple& t, 
+        Fun f
+      )
+      {
+          return tuple_transform_impl(t, f, 1);
+      }
+#endif
+      
+      // for_each algorithm for tuples.
+      //
+      template<typename Fun>
+      Fun BOOST_TUPLE_ALGO(tuple_for_each)(
+          tuples::null_type
+        , Fun f BOOST_TUPLE_ALGO_TERMINATOR
+      )
+      { return f; }
+
+      
+      template<typename Tuple, typename Fun>
+      Fun BOOST_TUPLE_ALGO(tuple_for_each)(
+          Tuple& t
+        , Fun f BOOST_TUPLE_ALGO_RECURSE)
+      { 
+          f( t.get_head() );
+          return tuple_for_each(t.get_tail(), f);
+      }
+      
+#ifdef BOOST_TUPLE_ALGO_DISPATCH
+      template<typename Tuple, typename Fun>
+      Fun
+      tuple_for_each(
+        Tuple& t, 
+        Fun f
+      )
+      {
+          return tuple_for_each_impl(t, f, 1);
+      }
+#endif
+      
+      // Equality of tuples. NOTE: "==" for tuples currently (7/2003)
+      // has problems under some compilers, so I just do my own.
+      // No point in bringing in a bunch of #ifdefs here. This is
+      // going to go away with the next tuple implementation anyway.
+      //
+      inline bool tuple_equal(tuples::null_type, tuples::null_type)
+      { return true; }
+
+      template<typename Tuple1, typename Tuple2>
+        bool tuple_equal(
+            Tuple1 const& t1, 
+            Tuple2 const& t2
+        )
+      { 
+          return t1.get_head() == t2.get_head() && 
+          tuple_equal(t1.get_tail(), t2.get_tail());
+      }
+    }
+    //
+    // end namespace tuple_impl_specific
+
+    template<typename Iterator>
+    struct iterator_reference
+    {
+        typedef typename iterator_traits<Iterator>::reference type;
+    };
+
+#ifdef BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
+    // Hack because BOOST_MPL_AUX_LAMBDA_SUPPORT doesn't seem to work
+    // out well.  Instantiating the nested apply template also
+    // requires instantiating iterator_traits on the
+    // placeholder. Instead we just specialize it as a metafunction
+    // class.
+    template<>
+    struct iterator_reference<mpl::_1>
+    {
+        template <class T>
+        struct apply : iterator_reference<T> {};
+    };
+#endif
+    
+    // Metafunction to obtain the type of the tuple whose element types
+    // are the reference types of an iterator tuple.
+    //
+    template<typename IteratorTuple>
+    struct tuple_of_references
+      : tuple_impl_specific::tuple_meta_transform<
+            IteratorTuple, 
+            iterator_reference<mpl::_1>
+          >
+    {
+    };
+
+    // Metafunction to obtain the minimal traversal tag in a tuple
+    // of iterators.
+    //
+    template<typename IteratorTuple>
+    struct minimum_traversal_category_in_iterator_tuple
+    {
+      typedef typename tuple_impl_specific::tuple_meta_transform<
+          IteratorTuple
+        , iterator_traversal<>
+      >::type tuple_of_traversal_tags;
+          
+      typedef typename tuple_impl_specific::tuple_meta_accumulate<
+          tuple_of_traversal_tags
+        , minimum_category<>
+        , random_access_traversal_tag
+      >::type type;
+    };
+
+#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) // ETI workaround
+      template <>
+      struct minimum_traversal_category_in_iterator_tuple<int>
+      {
+          typedef int type;
+      };
+#endif
+      
+      // We need to call tuple_meta_accumulate with mpl::and_ as the
+      // accumulating functor. To this end, we need to wrap it into
+      // a struct that has exactly two arguments (that is, template
+      // parameters) and not five, like mpl::and_ does.
+      //
+      template<typename Arg1, typename Arg2>
+      struct and_with_two_args
+        : mpl::and_<Arg1, Arg2>
+      {
+      };
+    
+# ifdef BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
+  // Hack because BOOST_MPL_AUX_LAMBDA_SUPPORT doesn't seem to work
+  // out well.  In this case I think it's an MPL bug
+      template<>
+      struct and_with_two_args<mpl::_1,mpl::_2>
+      {
+          template <class A1, class A2>
+          struct apply : mpl::and_<A1,A2>
+          {};
+      };
+# endif 
+
+    ///////////////////////////////////////////////////////////////////
+    //
+    // Class zip_iterator_base
+    //
+    // Builds and exposes the iterator facade type from which the zip 
+    // iterator will be derived.
+    //
+    template<typename IteratorTuple>
+    struct zip_iterator_base
+    {
+     private:
+        // Reference type is the type of the tuple obtained from the
+        // iterators' reference types.
+        typedef typename 
+        detail::tuple_of_references<IteratorTuple>::type reference;
+      
+        // Value type is the same as reference type.
+        typedef reference value_type;
+      
+        // Difference type is the first iterator's difference type
+        typedef typename iterator_traits<
+            typename tuples::element<0, IteratorTuple>::type
+            >::difference_type difference_type;
+      
+        // Traversal catetgory is the minimum traversal category in the 
+        // iterator tuple.
+        typedef typename 
+        detail::minimum_traversal_category_in_iterator_tuple<
+            IteratorTuple
+        >::type traversal_category;
+     public:
+      
+        // The iterator facade type from which the zip iterator will
+        // be derived.
+        typedef iterator_facade<
+            zip_iterator<IteratorTuple>,
+            value_type,  
+            traversal_category,
+            reference,
+            difference_type
+        > type;
+    };
+
+    template <>
+    struct zip_iterator_base<int>
+    {
+        typedef int type;
+    };
+  }
+  
+  /////////////////////////////////////////////////////////////////////
+  //
+  // zip_iterator class definition
+  //
+  template<typename IteratorTuple>
+  class zip_iterator : 
+    public detail::zip_iterator_base<IteratorTuple>::type
+  {  
+
+   // Typedef super_t as our base class. 
+   typedef typename 
+     detail::zip_iterator_base<IteratorTuple>::type super_t;
+
+   // iterator_core_access is the iterator's best friend.
+   friend class iterator_core_access;
+
+  public:
+    
+    // Construction
+    // ============
+    
+    // Default constructor
+    zip_iterator() { }
+
+    // Constructor from iterator tuple
+    zip_iterator(IteratorTuple iterator_tuple) 
+      : m_iterator_tuple(iterator_tuple) 
+    { }
+
+    // Copy constructor
+    template<typename OtherIteratorTuple>
+    zip_iterator(
+       const zip_iterator<OtherIteratorTuple>& other,
+       typename enable_if_convertible<
+         OtherIteratorTuple,
+         IteratorTuple
+         >::type* = 0
+    ) : m_iterator_tuple(other.get_iterator_tuple())
+    {}
+
+    // Get method for the iterator tuple.
+    const IteratorTuple& get_iterator_tuple() const
+    { return m_iterator_tuple; }
+
+  private:
+    
+    // Implementation of Iterator Operations
+    // =====================================
+    
+    // Dereferencing returns a tuple built from the dereferenced
+    // iterators in the iterator tuple.
+    typename super_t::reference dereference() const
+    { 
+      return detail::tuple_impl_specific::tuple_transform( 
+        get_iterator_tuple(),
+        detail::dereference_iterator()
+       );
+    }
+
+    // Two zip iterators are equal if all iterators in the iterator
+    // tuple are equal. NOTE: It should be possible to implement this
+    // as
+    //
+    // return get_iterator_tuple() == other.get_iterator_tuple();
+    //
+    // but equality of tuples currently (7/2003) does not compile
+    // under several compilers. No point in bringing in a bunch
+    // of #ifdefs here.
+    //
+    template<typename OtherIteratorTuple>   
+    bool equal(const zip_iterator<OtherIteratorTuple>& other) const
+    {
+      return detail::tuple_impl_specific::tuple_equal(
+        get_iterator_tuple(),
+        other.get_iterator_tuple()
+        );
+    }
+
+    // Advancing a zip iterator means to advance all iterators in the
+    // iterator tuple.
+    void advance(typename super_t::difference_type n)
+    { 
+      detail::tuple_impl_specific::tuple_for_each(
+          m_iterator_tuple,
+          detail::advance_iterator<BOOST_DEDUCED_TYPENAME super_t::difference_type>(n)
+          );
+    }
+    // Incrementing a zip iterator means to increment all iterators in
+    // the iterator tuple.
+    void increment()
+    { 
+      detail::tuple_impl_specific::tuple_for_each(
+        m_iterator_tuple,
+        detail::increment_iterator()
+        );
+    }
+    
+    // Decrementing a zip iterator means to decrement all iterators in
+    // the iterator tuple.
+    void decrement()
+    { 
+      detail::tuple_impl_specific::tuple_for_each(
+        m_iterator_tuple,
+        detail::decrement_iterator()
+        );
+    }
+    
+    // Distance is calculated using the first iterator in the tuple.
+    template<typename OtherIteratorTuple>
+      typename super_t::difference_type distance_to(
+        const zip_iterator<OtherIteratorTuple>& other
+        ) const
+    { 
+        return boost::tuples::get<0>(other.get_iterator_tuple()) - 
+            boost::tuples::get<0>(this->get_iterator_tuple());
+    }
+  
+    // Data Members
+    // ============
+    
+    // The iterator tuple.
+    IteratorTuple m_iterator_tuple;
+  };
+
+  // Make function for zip iterator
+  //
+  template<typename IteratorTuple> 
+  zip_iterator<IteratorTuple> 
+  make_zip_iterator(IteratorTuple t)
+  { return zip_iterator<IteratorTuple>(t); }
+
+}
+
+#endif
index 9f09902ba02e41eadf95f26d7d9445d2cb7a75e9..f4817ca628bc5600a3b7737871d9ba22b390fa80 100644 (file)
@@ -1,28 +1,28 @@
-\r
-#ifndef BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED\r
-#define BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED\r
-\r
-// Copyright Aleksey Gurtovoy 2008\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// See http://www.boost.org/libs/mpl for documentation.\r
-\r
-// $Id: bcc.hpp 49272 2008-10-11 06:50:46Z agurtovoy $\r
-// $Date: 2004-09-02 10:41:37 -0500 (Thu, 02 Sep 2004) $\r
-// $Revision: 24874 $\r
-\r
-#include <boost/mpl/aux_/config/workaround.hpp>\r
-\r
-#if    !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \\r
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \\r
-    && BOOST_WORKAROUND(__BORLANDC__, >= 0x590) \\r
-    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))\r
-\r
-#   define BOOST_MPL_CFG_BCC590_WORKAROUNDS\r
-\r
-#endif\r
-\r
-#endif // BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED\r
+
+#ifndef BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED
+#define BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2008
+//
+// 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/mpl for documentation.
+
+// $Id: bcc.hpp 49272 2008-10-11 06:50:46Z agurtovoy $
+// $Date: 2004-09-02 10:41:37 -0500 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
+
+#include <boost/mpl/aux_/config/workaround.hpp>
+
+#if    !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \
+    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
+    && BOOST_WORKAROUND(__BORLANDC__, >= 0x590) \
+    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
+
+#   define BOOST_MPL_CFG_BCC590_WORKAROUNDS
+
+#endif
+
+#endif // BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED
index d4666befb5cbeabaa8bf5413269aebdc3e93a37c..5cb50dc0c2e88b983b35fe58ae492ca8eb191580 100644 (file)
@@ -1,97 +1,97 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "advance_backward.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl { namespace aux {\r
-\r
-template< long N > struct advance_backward;\r
-template<>\r
-struct advance_backward<0>\r
-{\r
-    template< typename Iterator > struct apply\r
-    {\r
-        typedef Iterator iter0;\r
-        typedef iter0 type;\r
-    };\r
-};\r
-\r
-template<>\r
-struct advance_backward<1>\r
-{\r
-    template< typename Iterator > struct apply\r
-    {\r
-        typedef Iterator iter0;\r
-        typedef typename prior<iter0>::type iter1;\r
-        typedef iter1 type;\r
-    };\r
-};\r
-\r
-template<>\r
-struct advance_backward<2>\r
-{\r
-    template< typename Iterator > struct apply\r
-    {\r
-        typedef Iterator iter0;\r
-        typedef typename prior<iter0>::type iter1;\r
-        typedef typename prior<iter1>::type iter2;\r
-        typedef iter2 type;\r
-    };\r
-};\r
-\r
-template<>\r
-struct advance_backward<3>\r
-{\r
-    template< typename Iterator > struct apply\r
-    {\r
-        typedef Iterator iter0;\r
-        typedef typename prior<iter0>::type iter1;\r
-        typedef typename prior<iter1>::type iter2;\r
-        typedef typename prior<iter2>::type iter3;\r
-        typedef iter3 type;\r
-    };\r
-};\r
-\r
-template<>\r
-struct advance_backward<4>\r
-{\r
-    template< typename Iterator > struct apply\r
-    {\r
-        typedef Iterator iter0;\r
-        typedef typename prior<iter0>::type iter1;\r
-        typedef typename prior<iter1>::type iter2;\r
-        typedef typename prior<iter2>::type iter3;\r
-        typedef typename prior<iter3>::type iter4;\r
-        typedef iter4 type;\r
-    };\r
-};\r
-\r
-template< long N >\r
-struct advance_backward\r
-{\r
-    template< typename Iterator > struct apply\r
-    {\r
-        typedef typename apply_wrap1<\r
-              advance_backward<4>\r
-            , Iterator\r
-            >::type chunk_result_;\r
-\r
-        typedef typename apply_wrap1<\r
-              advance_backward<(\r
-                (N - 4) < 0\r
-                    ? 0\r
-                    : N - 4\r
-                    )>\r
-            , chunk_result_\r
-            >::type type;\r
-    };\r
-};\r
-\r
-}}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "advance_backward.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl { namespace aux {
+
+template< long N > struct advance_backward;
+template<>
+struct advance_backward<0>
+{
+    template< typename Iterator > struct apply
+    {
+        typedef Iterator iter0;
+        typedef iter0 type;
+    };
+};
+
+template<>
+struct advance_backward<1>
+{
+    template< typename Iterator > struct apply
+    {
+        typedef Iterator iter0;
+        typedef typename prior<iter0>::type iter1;
+        typedef iter1 type;
+    };
+};
+
+template<>
+struct advance_backward<2>
+{
+    template< typename Iterator > struct apply
+    {
+        typedef Iterator iter0;
+        typedef typename prior<iter0>::type iter1;
+        typedef typename prior<iter1>::type iter2;
+        typedef iter2 type;
+    };
+};
+
+template<>
+struct advance_backward<3>
+{
+    template< typename Iterator > struct apply
+    {
+        typedef Iterator iter0;
+        typedef typename prior<iter0>::type iter1;
+        typedef typename prior<iter1>::type iter2;
+        typedef typename prior<iter2>::type iter3;
+        typedef iter3 type;
+    };
+};
+
+template<>
+struct advance_backward<4>
+{
+    template< typename Iterator > struct apply
+    {
+        typedef Iterator iter0;
+        typedef typename prior<iter0>::type iter1;
+        typedef typename prior<iter1>::type iter2;
+        typedef typename prior<iter2>::type iter3;
+        typedef typename prior<iter3>::type iter4;
+        typedef iter4 type;
+    };
+};
+
+template< long N >
+struct advance_backward
+{
+    template< typename Iterator > struct apply
+    {
+        typedef typename apply_wrap1<
+              advance_backward<4>
+            , Iterator
+            >::type chunk_result_;
+
+        typedef typename apply_wrap1<
+              advance_backward<(
+                (N - 4) < 0
+                    ? 0
+                    : N - 4
+                    )>
+            , chunk_result_
+            >::type type;
+    };
+};
+
+}}}
+
index 1424fc176cd14fc14769336fcf315358d67cff36..9654ee330bf51f58618933f8bb1852288b512c21 100644 (file)
@@ -1,97 +1,97 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "advance_forward.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl { namespace aux {\r
-\r
-template< long N > struct advance_forward;\r
-template<>\r
-struct advance_forward<0>\r
-{\r
-    template< typename Iterator > struct apply\r
-    {\r
-        typedef Iterator iter0;\r
-        typedef iter0 type;\r
-    };\r
-};\r
-\r
-template<>\r
-struct advance_forward<1>\r
-{\r
-    template< typename Iterator > struct apply\r
-    {\r
-        typedef Iterator iter0;\r
-        typedef typename next<iter0>::type iter1;\r
-        typedef iter1 type;\r
-    };\r
-};\r
-\r
-template<>\r
-struct advance_forward<2>\r
-{\r
-    template< typename Iterator > struct apply\r
-    {\r
-        typedef Iterator iter0;\r
-        typedef typename next<iter0>::type iter1;\r
-        typedef typename next<iter1>::type iter2;\r
-        typedef iter2 type;\r
-    };\r
-};\r
-\r
-template<>\r
-struct advance_forward<3>\r
-{\r
-    template< typename Iterator > struct apply\r
-    {\r
-        typedef Iterator iter0;\r
-        typedef typename next<iter0>::type iter1;\r
-        typedef typename next<iter1>::type iter2;\r
-        typedef typename next<iter2>::type iter3;\r
-        typedef iter3 type;\r
-    };\r
-};\r
-\r
-template<>\r
-struct advance_forward<4>\r
-{\r
-    template< typename Iterator > struct apply\r
-    {\r
-        typedef Iterator iter0;\r
-        typedef typename next<iter0>::type iter1;\r
-        typedef typename next<iter1>::type iter2;\r
-        typedef typename next<iter2>::type iter3;\r
-        typedef typename next<iter3>::type iter4;\r
-        typedef iter4 type;\r
-    };\r
-};\r
-\r
-template< long N >\r
-struct advance_forward\r
-{\r
-    template< typename Iterator > struct apply\r
-    {\r
-        typedef typename apply_wrap1<\r
-              advance_forward<4>\r
-            , Iterator\r
-            >::type chunk_result_;\r
-\r
-        typedef typename apply_wrap1<\r
-              advance_forward<(\r
-                (N - 4) < 0\r
-                    ? 0\r
-                    : N - 4\r
-                    )>\r
-            , chunk_result_\r
-            >::type type;\r
-    };\r
-};\r
-\r
-}}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "advance_forward.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl { namespace aux {
+
+template< long N > struct advance_forward;
+template<>
+struct advance_forward<0>
+{
+    template< typename Iterator > struct apply
+    {
+        typedef Iterator iter0;
+        typedef iter0 type;
+    };
+};
+
+template<>
+struct advance_forward<1>
+{
+    template< typename Iterator > struct apply
+    {
+        typedef Iterator iter0;
+        typedef typename next<iter0>::type iter1;
+        typedef iter1 type;
+    };
+};
+
+template<>
+struct advance_forward<2>
+{
+    template< typename Iterator > struct apply
+    {
+        typedef Iterator iter0;
+        typedef typename next<iter0>::type iter1;
+        typedef typename next<iter1>::type iter2;
+        typedef iter2 type;
+    };
+};
+
+template<>
+struct advance_forward<3>
+{
+    template< typename Iterator > struct apply
+    {
+        typedef Iterator iter0;
+        typedef typename next<iter0>::type iter1;
+        typedef typename next<iter1>::type iter2;
+        typedef typename next<iter2>::type iter3;
+        typedef iter3 type;
+    };
+};
+
+template<>
+struct advance_forward<4>
+{
+    template< typename Iterator > struct apply
+    {
+        typedef Iterator iter0;
+        typedef typename next<iter0>::type iter1;
+        typedef typename next<iter1>::type iter2;
+        typedef typename next<iter2>::type iter3;
+        typedef typename next<iter3>::type iter4;
+        typedef iter4 type;
+    };
+};
+
+template< long N >
+struct advance_forward
+{
+    template< typename Iterator > struct apply
+    {
+        typedef typename apply_wrap1<
+              advance_forward<4>
+            , Iterator
+            >::type chunk_result_;
+
+        typedef typename apply_wrap1<
+              advance_forward<(
+                (N - 4) < 0
+                    ? 0
+                    : N - 4
+                    )>
+            , chunk_result_
+            >::type type;
+    };
+};
+
+}}}
+
index 3ab32491a6a9035aa616e37d87d2e312648dc4ed..f34568902dd19c9b6b1e189daf5f65733f19ab1d 100644 (file)
@@ -1,69 +1,69 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "and.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-namespace aux {\r
-\r
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >\r
-struct and_impl\r
-    : false_\r
-{\r
-};\r
-\r
-template< typename T1, typename T2, typename T3, typename T4 >\r
-struct and_impl< true,T1,T2,T3,T4 >\r
-    : and_impl<\r
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value\r
-        , T2, T3, T4\r
-        , true_\r
-        >\r
-{\r
-};\r
-\r
-template<>\r
-struct and_impl<\r
-          true\r
-        , true_, true_, true_, true_\r
-        >\r
-    : true_\r
-{\r
-};\r
-\r
-} // namespace aux\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(T1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)\r
-    , typename T3 = true_, typename T4 = true_, typename T5 = true_\r
-    >\r
-struct and_\r
-\r
-    : aux::and_impl<\r
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value\r
-        , T2, T3, T4, T5\r
-        >\r
-\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          5\r
-        , and_\r
-        , ( T1, T2, T3, T4, T5)\r
-        )\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(\r
-      2\r
-    , 5\r
-    , and_\r
-    )\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "and.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+namespace aux {
+
+template< bool C_, typename T1, typename T2, typename T3, typename T4 >
+struct and_impl
+    : false_
+{
+};
+
+template< typename T1, typename T2, typename T3, typename T4 >
+struct and_impl< true,T1,T2,T3,T4 >
+    : and_impl<
+          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+        , T2, T3, T4
+        , true_
+        >
+{
+};
+
+template<>
+struct and_impl<
+          true
+        , true_, true_, true_, true_
+        >
+    : true_
+{
+};
+
+} // namespace aux
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(T1)
+    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+    , typename T3 = true_, typename T4 = true_, typename T5 = true_
+    >
+struct and_
+
+    : aux::and_impl<
+          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+        , T2, T3, T4, T5
+        >
+
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          5
+        , and_
+        , ( T1, T2, T3, T4, T5)
+        )
+};
+
+BOOST_MPL_AUX_NA_SPEC2(
+      2
+    , 5
+    , and_
+    )
+
+}}
index 844db680e72e9ea8f16e2c83c6e94c38cb5289a0..bce7c2c3ab9ed81135d603f8cd1b05bb9c490d75 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "apply.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename F\r
-    >\r
-struct apply0\r
-\r
-    : apply_wrap0<\r
-          typename lambda<F>::type\r
-       \r
-        >\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          1\r
-        , apply0\r
-        , (F )\r
-        )\r
-};\r
-\r
-template<\r
-      typename F\r
-    >\r
-struct apply< F,na,na,na,na,na >\r
-    : apply0<F>\r
-{\r
-};\r
-\r
-template<\r
-      typename F, typename T1\r
-    >\r
-struct apply1\r
-\r
-    : apply_wrap1<\r
-          typename lambda<F>::type\r
-        , T1\r
-        >\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          2\r
-        , apply1\r
-        , (F, T1)\r
-        )\r
-};\r
-\r
-template<\r
-      typename F, typename T1\r
-    >\r
-struct apply< F,T1,na,na,na,na >\r
-    : apply1< F,T1 >\r
-{\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2\r
-    >\r
-struct apply2\r
-\r
-    : apply_wrap2<\r
-          typename lambda<F>::type\r
-        , T1, T2\r
-        >\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          3\r
-        , apply2\r
-        , (F, T1, T2)\r
-        )\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2\r
-    >\r
-struct apply< F,T1,T2,na,na,na >\r
-    : apply2< F,T1,T2 >\r
-{\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3\r
-    >\r
-struct apply3\r
-\r
-    : apply_wrap3<\r
-          typename lambda<F>::type\r
-        , T1, T2, T3\r
-        >\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          4\r
-        , apply3\r
-        , (F, T1, T2, T3)\r
-        )\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3\r
-    >\r
-struct apply< F,T1,T2,T3,na,na >\r
-    : apply3< F,T1,T2,T3 >\r
-{\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct apply4\r
-\r
-    : apply_wrap4<\r
-          typename lambda<F>::type\r
-        , T1, T2, T3, T4\r
-        >\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          5\r
-        , apply4\r
-        , (F, T1, T2, T3, T4)\r
-        )\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct apply< F,T1,T2,T3,T4,na >\r
-    : apply4< F,T1,T2,T3,T4 >\r
-{\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct apply5\r
-\r
-    : apply_wrap5<\r
-          typename lambda<F>::type\r
-        , T1, T2, T3, T4, T5\r
-        >\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          6\r
-        , apply5\r
-        , (F, T1, T2, T3, T4, T5)\r
-        )\r
-};\r
-\r
-/// primary template (not a specialization!)\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct apply\r
-    : apply5< F,T1,T2,T3,T4,T5 >\r
-{\r
-};\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "apply.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename F
+    >
+struct apply0
+
+    : apply_wrap0<
+          typename lambda<F>::type
+       
+        >
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          1
+        , apply0
+        , (F )
+        )
+};
+
+template<
+      typename F
+    >
+struct apply< F,na,na,na,na,na >
+    : apply0<F>
+{
+};
+
+template<
+      typename F, typename T1
+    >
+struct apply1
+
+    : apply_wrap1<
+          typename lambda<F>::type
+        , T1
+        >
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          2
+        , apply1
+        , (F, T1)
+        )
+};
+
+template<
+      typename F, typename T1
+    >
+struct apply< F,T1,na,na,na,na >
+    : apply1< F,T1 >
+{
+};
+
+template<
+      typename F, typename T1, typename T2
+    >
+struct apply2
+
+    : apply_wrap2<
+          typename lambda<F>::type
+        , T1, T2
+        >
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          3
+        , apply2
+        , (F, T1, T2)
+        )
+};
+
+template<
+      typename F, typename T1, typename T2
+    >
+struct apply< F,T1,T2,na,na,na >
+    : apply2< F,T1,T2 >
+{
+};
+
+template<
+      typename F, typename T1, typename T2, typename T3
+    >
+struct apply3
+
+    : apply_wrap3<
+          typename lambda<F>::type
+        , T1, T2, T3
+        >
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          4
+        , apply3
+        , (F, T1, T2, T3)
+        )
+};
+
+template<
+      typename F, typename T1, typename T2, typename T3
+    >
+struct apply< F,T1,T2,T3,na,na >
+    : apply3< F,T1,T2,T3 >
+{
+};
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    >
+struct apply4
+
+    : apply_wrap4<
+          typename lambda<F>::type
+        , T1, T2, T3, T4
+        >
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          5
+        , apply4
+        , (F, T1, T2, T3, T4)
+        )
+};
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    >
+struct apply< F,T1,T2,T3,T4,na >
+    : apply4< F,T1,T2,T3,T4 >
+{
+};
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct apply5
+
+    : apply_wrap5<
+          typename lambda<F>::type
+        , T1, T2, T3, T4, T5
+        >
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          6
+        , apply5
+        , (F, T1, T2, T3, T4, T5)
+        )
+};
+
+/// primary template (not a specialization!)
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct apply
+    : apply5< F,T1,T2,T3,T4,T5 >
+{
+};
+
+}}
+
index 80a28359fd55a610bbadf9bc1b8a0e8e5f13dcdf..1ba706ff2aaefb6a26465dd76be40ddeae02b04c 100644 (file)
@@ -1,52 +1,52 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "apply_fwd.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na\r
-    , typename T4 = na, typename T5 = na\r
-    >\r
-struct apply;\r
-\r
-template<\r
-      typename F\r
-    >\r
-struct apply0;\r
-\r
-template<\r
-      typename F, typename T1\r
-    >\r
-struct apply1;\r
-\r
-template<\r
-      typename F, typename T1, typename T2\r
-    >\r
-struct apply2;\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3\r
-    >\r
-struct apply3;\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct apply4;\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct apply5;\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "apply_fwd.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename F, typename T1 = na, typename T2 = na, typename T3 = na
+    , typename T4 = na, typename T5 = na
+    >
+struct apply;
+
+template<
+      typename F
+    >
+struct apply0;
+
+template<
+      typename F, typename T1
+    >
+struct apply1;
+
+template<
+      typename F, typename T1, typename T2
+    >
+struct apply2;
+
+template<
+      typename F, typename T1, typename T2, typename T3
+    >
+struct apply3;
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    >
+struct apply4;
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct apply5;
+
+}}
+
index 8e385bd2d005e3781ba8c36b20e74bfb465621ce..d88129dadf0454ac46a965da7e070f32ec777575 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2008\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "apply_wrap.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      int N, typename F\r
-    >\r
-struct apply_wrap_impl0;\r
-\r
-template<\r
-      typename F\r
-    >\r
-struct apply_wrap_impl0<\r
-          0\r
-        , F\r
-       \r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-         \r
-/// since the defaults are "lost", we have to pass *something* even for nullary\r
-/// metafunction classes\r
-        na\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F\r
-    >\r
-struct apply_wrap_impl0<\r
-          1\r
-        , F\r
-       \r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-         \r
-        na\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F\r
-    >\r
-struct apply_wrap_impl0<\r
-          2\r
-        , F\r
-       \r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-         \r
-        na, na\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F\r
-    >\r
-struct apply_wrap_impl0<\r
-          3\r
-        , F\r
-       \r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-         \r
-        na, na, na\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F\r
-    >\r
-struct apply_wrap_impl0<\r
-          4\r
-        , F\r
-       \r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-         \r
-        na, na, na, na\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F\r
-    >\r
-struct apply_wrap_impl0<\r
-          5\r
-        , F\r
-       \r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-         \r
-        na, na, na, na, na\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F\r
-    >\r
-struct apply_wrap0\r
-    : apply_wrap_impl0<\r
-          ::boost::mpl::aux::arity< F,0 >::value\r
-        , F\r
-       \r
-        >::type\r
-{\r
-};\r
-\r
-template<\r
-      int N, typename F, typename T1\r
-    >\r
-struct apply_wrap_impl1;\r
-\r
-template<\r
-      typename F, typename T1\r
-    >\r
-struct apply_wrap_impl1<\r
-          1\r
-        , F\r
-        , T1\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1\r
-    >\r
-struct apply_wrap_impl1<\r
-          2\r
-        , F\r
-        , T1\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1\r
-        , na\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1\r
-    >\r
-struct apply_wrap_impl1<\r
-          3\r
-        , F\r
-        , T1\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1\r
-        , na, na\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1\r
-    >\r
-struct apply_wrap_impl1<\r
-          4\r
-        , F\r
-        , T1\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1\r
-        , na, na, na\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1\r
-    >\r
-struct apply_wrap_impl1<\r
-          5\r
-        , F\r
-        , T1\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1\r
-        , na, na, na, na\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1\r
-    >\r
-struct apply_wrap1\r
-    : apply_wrap_impl1<\r
-          ::boost::mpl::aux::arity< F,1 >::value\r
-        , F\r
-        , T1\r
-        >::type\r
-{\r
-};\r
-\r
-template<\r
-      int N, typename F, typename T1, typename T2\r
-    >\r
-struct apply_wrap_impl2;\r
-\r
-template<\r
-      typename F, typename T1, typename T2\r
-    >\r
-struct apply_wrap_impl2<\r
-          2\r
-        , F\r
-        , T1, T2\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1, T2\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2\r
-    >\r
-struct apply_wrap_impl2<\r
-          3\r
-        , F\r
-        , T1, T2\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1, T2\r
-\r
-        , na\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2\r
-    >\r
-struct apply_wrap_impl2<\r
-          4\r
-        , F\r
-        , T1, T2\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1, T2\r
-\r
-        , na, na\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2\r
-    >\r
-struct apply_wrap_impl2<\r
-          5\r
-        , F\r
-        , T1, T2\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1, T2\r
-\r
-        , na, na, na\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2\r
-    >\r
-struct apply_wrap2\r
-    : apply_wrap_impl2<\r
-          ::boost::mpl::aux::arity< F,2 >::value\r
-        , F\r
-        , T1, T2\r
-        >::type\r
-{\r
-};\r
-\r
-template<\r
-      int N, typename F, typename T1, typename T2, typename T3\r
-    >\r
-struct apply_wrap_impl3;\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3\r
-    >\r
-struct apply_wrap_impl3<\r
-          3\r
-        , F\r
-        , T1, T2, T3\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1, T2, T3\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3\r
-    >\r
-struct apply_wrap_impl3<\r
-          4\r
-        , F\r
-        , T1, T2, T3\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1, T2, T3\r
-\r
-        , na\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3\r
-    >\r
-struct apply_wrap_impl3<\r
-          5\r
-        , F\r
-        , T1, T2, T3\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1, T2, T3\r
-\r
-        , na, na\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3\r
-    >\r
-struct apply_wrap3\r
-    : apply_wrap_impl3<\r
-          ::boost::mpl::aux::arity< F,3 >::value\r
-        , F\r
-        , T1, T2, T3\r
-        >::type\r
-{\r
-};\r
-\r
-template<\r
-      int N, typename F, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct apply_wrap_impl4;\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct apply_wrap_impl4<\r
-          4\r
-        , F\r
-        , T1, T2, T3, T4\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1, T2, T3, T4\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct apply_wrap_impl4<\r
-          5\r
-        , F\r
-        , T1, T2, T3, T4\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1, T2, T3, T4\r
-\r
-        , na\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct apply_wrap4\r
-    : apply_wrap_impl4<\r
-          ::boost::mpl::aux::arity< F,4 >::value\r
-        , F\r
-        , T1, T2, T3, T4\r
-        >::type\r
-{\r
-};\r
-\r
-template<\r
-      int N, typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct apply_wrap_impl5;\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct apply_wrap_impl5<\r
-          5\r
-        , F\r
-        , T1, T2, T3, T4, T5\r
-        >\r
-{\r
-    typedef typename F::template apply<\r
-          T1, T2, T3, T4, T5\r
-\r
-        > type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct apply_wrap5\r
-    : apply_wrap_impl5<\r
-          ::boost::mpl::aux::arity< F,5 >::value\r
-        , F\r
-        , T1, T2, T3, T4, T5\r
-        >::type\r
-{\r
-};\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2008
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "apply_wrap.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      int N, typename F
+    >
+struct apply_wrap_impl0;
+
+template<
+      typename F
+    >
+struct apply_wrap_impl0<
+          0
+        , F
+       
+        >
+{
+    typedef typename F::template apply<
+         
+/// since the defaults are "lost", we have to pass *something* even for nullary
+/// metafunction classes
+        na
+        > type;
+};
+
+template<
+      typename F
+    >
+struct apply_wrap_impl0<
+          1
+        , F
+       
+        >
+{
+    typedef typename F::template apply<
+         
+        na
+        > type;
+};
+
+template<
+      typename F
+    >
+struct apply_wrap_impl0<
+          2
+        , F
+       
+        >
+{
+    typedef typename F::template apply<
+         
+        na, na
+
+        > type;
+};
+
+template<
+      typename F
+    >
+struct apply_wrap_impl0<
+          3
+        , F
+       
+        >
+{
+    typedef typename F::template apply<
+         
+        na, na, na
+
+        > type;
+};
+
+template<
+      typename F
+    >
+struct apply_wrap_impl0<
+          4
+        , F
+       
+        >
+{
+    typedef typename F::template apply<
+         
+        na, na, na, na
+
+        > type;
+};
+
+template<
+      typename F
+    >
+struct apply_wrap_impl0<
+          5
+        , F
+       
+        >
+{
+    typedef typename F::template apply<
+         
+        na, na, na, na, na
+
+        > type;
+};
+
+template<
+      typename F
+    >
+struct apply_wrap0
+    : apply_wrap_impl0<
+          ::boost::mpl::aux::arity< F,0 >::value
+        , F
+       
+        >::type
+{
+};
+
+template<
+      int N, typename F, typename T1
+    >
+struct apply_wrap_impl1;
+
+template<
+      typename F, typename T1
+    >
+struct apply_wrap_impl1<
+          1
+        , F
+        , T1
+        >
+{
+    typedef typename F::template apply<
+          T1
+        > type;
+};
+
+template<
+      typename F, typename T1
+    >
+struct apply_wrap_impl1<
+          2
+        , F
+        , T1
+        >
+{
+    typedef typename F::template apply<
+          T1
+        , na
+
+        > type;
+};
+
+template<
+      typename F, typename T1
+    >
+struct apply_wrap_impl1<
+          3
+        , F
+        , T1
+        >
+{
+    typedef typename F::template apply<
+          T1
+        , na, na
+
+        > type;
+};
+
+template<
+      typename F, typename T1
+    >
+struct apply_wrap_impl1<
+          4
+        , F
+        , T1
+        >
+{
+    typedef typename F::template apply<
+          T1
+        , na, na, na
+
+        > type;
+};
+
+template<
+      typename F, typename T1
+    >
+struct apply_wrap_impl1<
+          5
+        , F
+        , T1
+        >
+{
+    typedef typename F::template apply<
+          T1
+        , na, na, na, na
+
+        > type;
+};
+
+template<
+      typename F, typename T1
+    >
+struct apply_wrap1
+    : apply_wrap_impl1<
+          ::boost::mpl::aux::arity< F,1 >::value
+        , F
+        , T1
+        >::type
+{
+};
+
+template<
+      int N, typename F, typename T1, typename T2
+    >
+struct apply_wrap_impl2;
+
+template<
+      typename F, typename T1, typename T2
+    >
+struct apply_wrap_impl2<
+          2
+        , F
+        , T1, T2
+        >
+{
+    typedef typename F::template apply<
+          T1, T2
+
+        > type;
+};
+
+template<
+      typename F, typename T1, typename T2
+    >
+struct apply_wrap_impl2<
+          3
+        , F
+        , T1, T2
+        >
+{
+    typedef typename F::template apply<
+          T1, T2
+
+        , na
+
+        > type;
+};
+
+template<
+      typename F, typename T1, typename T2
+    >
+struct apply_wrap_impl2<
+          4
+        , F
+        , T1, T2
+        >
+{
+    typedef typename F::template apply<
+          T1, T2
+
+        , na, na
+
+        > type;
+};
+
+template<
+      typename F, typename T1, typename T2
+    >
+struct apply_wrap_impl2<
+          5
+        , F
+        , T1, T2
+        >
+{
+    typedef typename F::template apply<
+          T1, T2
+
+        , na, na, na
+
+        > type;
+};
+
+template<
+      typename F, typename T1, typename T2
+    >
+struct apply_wrap2
+    : apply_wrap_impl2<
+          ::boost::mpl::aux::arity< F,2 >::value
+        , F
+        , T1, T2
+        >::type
+{
+};
+
+template<
+      int N, typename F, typename T1, typename T2, typename T3
+    >
+struct apply_wrap_impl3;
+
+template<
+      typename F, typename T1, typename T2, typename T3
+    >
+struct apply_wrap_impl3<
+          3
+        , F
+        , T1, T2, T3
+        >
+{
+    typedef typename F::template apply<
+          T1, T2, T3
+
+        > type;
+};
+
+template<
+      typename F, typename T1, typename T2, typename T3
+    >
+struct apply_wrap_impl3<
+          4
+        , F
+        , T1, T2, T3
+        >
+{
+    typedef typename F::template apply<
+          T1, T2, T3
+
+        , na
+
+        > type;
+};
+
+template<
+      typename F, typename T1, typename T2, typename T3
+    >
+struct apply_wrap_impl3<
+          5
+        , F
+        , T1, T2, T3
+        >
+{
+    typedef typename F::template apply<
+          T1, T2, T3
+
+        , na, na
+
+        > type;
+};
+
+template<
+      typename F, typename T1, typename T2, typename T3
+    >
+struct apply_wrap3
+    : apply_wrap_impl3<
+          ::boost::mpl::aux::arity< F,3 >::value
+        , F
+        , T1, T2, T3
+        >::type
+{
+};
+
+template<
+      int N, typename F, typename T1, typename T2, typename T3, typename T4
+    >
+struct apply_wrap_impl4;
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    >
+struct apply_wrap_impl4<
+          4
+        , F
+        , T1, T2, T3, T4
+        >
+{
+    typedef typename F::template apply<
+          T1, T2, T3, T4
+
+        > type;
+};
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    >
+struct apply_wrap_impl4<
+          5
+        , F
+        , T1, T2, T3, T4
+        >
+{
+    typedef typename F::template apply<
+          T1, T2, T3, T4
+
+        , na
+
+        > type;
+};
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    >
+struct apply_wrap4
+    : apply_wrap_impl4<
+          ::boost::mpl::aux::arity< F,4 >::value
+        , F
+        , T1, T2, T3, T4
+        >::type
+{
+};
+
+template<
+      int N, typename F, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct apply_wrap_impl5;
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct apply_wrap_impl5<
+          5
+        , F
+        , T1, T2, T3, T4, T5
+        >
+{
+    typedef typename F::template apply<
+          T1, T2, T3, T4, T5
+
+        > type;
+};
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct apply_wrap5
+    : apply_wrap_impl5<
+          ::boost::mpl::aux::arity< F,5 >::value
+        , F
+        , T1, T2, T3, T4, T5
+        >::type
+{
+};
+
+}}
+
index c87ef00b00296fba1020640fd5e9c84d8a1beb73..3ac43401af5453a05d58e37813cdb88c05a3414d 100644 (file)
-\r
-// Copyright Peter Dimov 2001-2002\r
-// Copyright Aleksey Gurtovoy 2001-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "arg.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
-template<> struct arg< -1 >\r
-{\r
-    BOOST_STATIC_CONSTANT(int, value  = -1);\r
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)\r
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)\r
-\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-        typedef U1 type;\r
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);\r
-    };\r
-};\r
-\r
-template<> struct arg<1>\r
-{\r
-    BOOST_STATIC_CONSTANT(int, value  = 1);\r
-    typedef arg<2> next;\r
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)\r
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)\r
-\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-        typedef U1 type;\r
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);\r
-    };\r
-};\r
-\r
-template<> struct arg<2>\r
-{\r
-    BOOST_STATIC_CONSTANT(int, value  = 2);\r
-    typedef arg<3> next;\r
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)\r
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)\r
-\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-        typedef U2 type;\r
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);\r
-    };\r
-};\r
-\r
-template<> struct arg<3>\r
-{\r
-    BOOST_STATIC_CONSTANT(int, value  = 3);\r
-    typedef arg<4> next;\r
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)\r
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)\r
-\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-        typedef U3 type;\r
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);\r
-    };\r
-};\r
-\r
-template<> struct arg<4>\r
-{\r
-    BOOST_STATIC_CONSTANT(int, value  = 4);\r
-    typedef arg<5> next;\r
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)\r
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)\r
-\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-        typedef U4 type;\r
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);\r
-    };\r
-};\r
-\r
-template<> struct arg<5>\r
-{\r
-    BOOST_STATIC_CONSTANT(int, value  = 5);\r
-    typedef arg<6> next;\r
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)\r
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)\r
-\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-        typedef U5 type;\r
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);\r
-    };\r
-};\r
-\r
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)\r
-\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
+
+// Copyright Peter Dimov 2001-2002
+// Copyright Aleksey Gurtovoy 2001-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "arg.hpp" header
+// -- DO NOT modify by hand!
+
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+template<> struct arg< -1 >
+{
+    BOOST_STATIC_CONSTANT(int, value  = -1);
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+        typedef U1 type;
+        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+    };
+};
+
+template<> struct arg<1>
+{
+    BOOST_STATIC_CONSTANT(int, value  = 1);
+    typedef arg<2> next;
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+        typedef U1 type;
+        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+    };
+};
+
+template<> struct arg<2>
+{
+    BOOST_STATIC_CONSTANT(int, value  = 2);
+    typedef arg<3> next;
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+        typedef U2 type;
+        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+    };
+};
+
+template<> struct arg<3>
+{
+    BOOST_STATIC_CONSTANT(int, value  = 3);
+    typedef arg<4> next;
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+        typedef U3 type;
+        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+    };
+};
+
+template<> struct arg<4>
+{
+    BOOST_STATIC_CONSTANT(int, value  = 4);
+    typedef arg<5> next;
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+        typedef U4 type;
+        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+    };
+};
+
+template<> struct arg<5>
+{
+    BOOST_STATIC_CONSTANT(int, value  = 5);
+    typedef arg<6> next;
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
+
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+        typedef U5 type;
+        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
+    };
+};
+
+BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
+
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
index a525a9f081d7df693d371974e556aa6fd7655398..74b00299124b4f5b5474d5b549528a0e99f3fdad 100644 (file)
-\r
-// Copyright Peter Dimov 2001\r
-// Copyright Aleksey Gurtovoy 2001-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "basic_bind.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename T, typename U1, typename U2, typename U3, typename U4\r
-    , typename U5\r
-    >\r
-struct resolve_bind_arg\r
-{\r
-    typedef T type;\r
-};\r
-\r
-template<\r
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5\r
-    >\r
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >\r
-{\r
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-template<\r
-      typename F\r
-    >\r
-struct bind0\r
-{\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-     private:\r
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;\r
-\r
-     public:\r
-        typedef typename apply_wrap0<\r
-              f_\r
-            >::type type;\r
-\r
-    };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename F, typename U1, typename U2, typename U3, typename U4\r
-    , typename U5\r
-    >\r
-struct resolve_bind_arg<\r
-      bind0<F>, U1, U2, U3, U4, U5\r
-    >\r
-{\r
-    typedef bind0<F> f_;\r
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)\r
-\r
-template<\r
-      typename F, typename T1\r
-    >\r
-struct bind1\r
-{\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-     private:\r
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;\r
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;\r
-\r
-     public:\r
-        typedef typename apply_wrap1<\r
-              f_\r
-            , typename t1::type\r
-            >::type type;\r
-\r
-    };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename F, typename T1, typename U1, typename U2, typename U3\r
-    , typename U4, typename U5\r
-    >\r
-struct resolve_bind_arg<\r
-      bind1< F,T1 >, U1, U2, U3, U4, U5\r
-    >\r
-{\r
-    typedef bind1< F,T1 > f_;\r
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)\r
-\r
-template<\r
-      typename F, typename T1, typename T2\r
-    >\r
-struct bind2\r
-{\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-     private:\r
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;\r
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;\r
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;\r
-\r
-     public:\r
-        typedef typename apply_wrap2<\r
-              f_\r
-            , typename t1::type, typename t2::type\r
-            >::type type;\r
-\r
-    };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename U1, typename U2\r
-    , typename U3, typename U4, typename U5\r
-    >\r
-struct resolve_bind_arg<\r
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5\r
-    >\r
-{\r
-    typedef bind2< F,T1,T2 > f_;\r
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3\r
-    >\r
-struct bind3\r
-{\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-     private:\r
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;\r
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;\r
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;\r
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;\r
-\r
-     public:\r
-        typedef typename apply_wrap3<\r
-              f_\r
-            , typename t1::type, typename t2::type, typename t3::type\r
-            >::type type;\r
-\r
-    };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename U1\r
-    , typename U2, typename U3, typename U4, typename U5\r
-    >\r
-struct resolve_bind_arg<\r
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5\r
-    >\r
-{\r
-    typedef bind3< F,T1,T2,T3 > f_;\r
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct bind4\r
-{\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-     private:\r
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;\r
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;\r
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;\r
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;\r
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;\r
-\r
-     public:\r
-        typedef typename apply_wrap4<\r
-              f_\r
-            , typename t1::type, typename t2::type, typename t3::type\r
-            , typename t4::type\r
-            >::type type;\r
-\r
-    };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename U1, typename U2, typename U3, typename U4, typename U5\r
-    >\r
-struct resolve_bind_arg<\r
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5\r
-    >\r
-{\r
-    typedef bind4< F,T1,T2,T3,T4 > f_;\r
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct bind5\r
-{\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-     private:\r
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;\r
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;\r
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;\r
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;\r
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;\r
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;\r
-\r
-     public:\r
-        typedef typename apply_wrap5<\r
-              f_\r
-            , typename t1::type, typename t2::type, typename t3::type\r
-            , typename t4::type, typename t5::type\r
-            >::type type;\r
-\r
-    };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename U1, typename U2, typename U3, typename U4\r
-    , typename U5\r
-    >\r
-struct resolve_bind_arg<\r
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5\r
-    >\r
-{\r
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;\r
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)\r
-}}\r
-\r
+
+// Copyright Peter Dimov 2001
+// Copyright Aleksey Gurtovoy 2001-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "basic_bind.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+namespace aux {
+
+template<
+      typename T, typename U1, typename U2, typename U3, typename U4
+    , typename U5
+    >
+struct resolve_bind_arg
+{
+    typedef T type;
+};
+
+template<
+      int N, typename U1, typename U2, typename U3, typename U4, typename U5
+    >
+struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
+{
+    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
+};
+
+} // namespace aux
+
+template<
+      typename F
+    >
+struct bind0
+{
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+     private:
+        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
+
+     public:
+        typedef typename apply_wrap0<
+              f_
+            >::type type;
+
+    };
+};
+
+namespace aux {
+
+template<
+      typename F, typename U1, typename U2, typename U3, typename U4
+    , typename U5
+    >
+struct resolve_bind_arg<
+      bind0<F>, U1, U2, U3, U4, U5
+    >
+{
+    typedef bind0<F> f_;
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+
+template<
+      typename F, typename T1
+    >
+struct bind1
+{
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+     private:
+        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
+        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
+
+     public:
+        typedef typename apply_wrap1<
+              f_
+            , typename t1::type
+            >::type type;
+
+    };
+};
+
+namespace aux {
+
+template<
+      typename F, typename T1, typename U1, typename U2, typename U3
+    , typename U4, typename U5
+    >
+struct resolve_bind_arg<
+      bind1< F,T1 >, U1, U2, U3, U4, U5
+    >
+{
+    typedef bind1< F,T1 > f_;
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+
+template<
+      typename F, typename T1, typename T2
+    >
+struct bind2
+{
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+     private:
+        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
+        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
+        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
+
+     public:
+        typedef typename apply_wrap2<
+              f_
+            , typename t1::type, typename t2::type
+            >::type type;
+
+    };
+};
+
+namespace aux {
+
+template<
+      typename F, typename T1, typename T2, typename U1, typename U2
+    , typename U3, typename U4, typename U5
+    >
+struct resolve_bind_arg<
+      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
+    >
+{
+    typedef bind2< F,T1,T2 > f_;
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+
+template<
+      typename F, typename T1, typename T2, typename T3
+    >
+struct bind3
+{
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+     private:
+        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
+        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
+        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
+        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
+
+     public:
+        typedef typename apply_wrap3<
+              f_
+            , typename t1::type, typename t2::type, typename t3::type
+            >::type type;
+
+    };
+};
+
+namespace aux {
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename U1
+    , typename U2, typename U3, typename U4, typename U5
+    >
+struct resolve_bind_arg<
+      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
+    >
+{
+    typedef bind3< F,T1,T2,T3 > f_;
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    >
+struct bind4
+{
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+     private:
+        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
+        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
+        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
+        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
+        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
+
+     public:
+        typedef typename apply_wrap4<
+              f_
+            , typename t1::type, typename t2::type, typename t3::type
+            , typename t4::type
+            >::type type;
+
+    };
+};
+
+namespace aux {
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename U1, typename U2, typename U3, typename U4, typename U5
+    >
+struct resolve_bind_arg<
+      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
+    >
+{
+    typedef bind4< F,T1,T2,T3,T4 > f_;
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct bind5
+{
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+     private:
+        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
+        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
+        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
+        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
+        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
+        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
+
+     public:
+        typedef typename apply_wrap5<
+              f_
+            , typename t1::type, typename t2::type, typename t3::type
+            , typename t4::type, typename t5::type
+            >::type type;
+
+    };
+};
+
+namespace aux {
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename U1, typename U2, typename U3, typename U4
+    , typename U5
+    >
+struct resolve_bind_arg<
+      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
+    >
+{
+    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+}}
+
index e04f409601fe79562ef74897dc7e64d1f87acc8d..e769a0cb9dd30e7ebf168653d8ec0a39ec8e0e49 100644 (file)
-\r
-// Copyright Peter Dimov 2001\r
-// Copyright Aleksey Gurtovoy 2001-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "bind.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename T, typename U1, typename U2, typename U3, typename U4\r
-    , typename U5\r
-    >\r
-struct resolve_bind_arg\r
-{\r
-    typedef T type;\r
-};\r
-\r
-template<\r
-      typename T\r
-    , typename Arg\r
-    >\r
-struct replace_unnamed_arg\r
-{\r
-    typedef Arg next;\r
-    typedef T type;\r
-};\r
-\r
-template<\r
-      typename Arg\r
-    >\r
-struct replace_unnamed_arg< arg< -1 >, Arg >\r
-{\r
-    typedef typename Arg::next next;\r
-    typedef Arg type;\r
-};\r
-\r
-template<\r
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5\r
-    >\r
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >\r
-{\r
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-template<\r
-      typename F\r
-    >\r
-struct bind0\r
-{\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-     private:\r
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
-        typedef typename r0::type a0;\r
-        typedef typename r0::next n1;\r
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
-        ///\r
-     public:\r
-        typedef typename apply_wrap0<\r
-              f_\r
-            >::type type;\r
-\r
-    };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename F, typename U1, typename U2, typename U3, typename U4\r
-    , typename U5\r
-    >\r
-struct resolve_bind_arg<\r
-      bind0<F>, U1, U2, U3, U4, U5\r
-    >\r
-{\r
-    typedef bind0<F> f_;\r
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)\r
-\r
-template<\r
-      typename F, typename T1\r
-    >\r
-struct bind1\r
-{\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-     private:\r
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
-        typedef typename r0::type a0;\r
-        typedef typename r0::next n1;\r
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
-        typedef typename r1::type a1;\r
-        typedef typename r1::next n2;\r
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
-        ///\r
-     public:\r
-        typedef typename apply_wrap1<\r
-              f_\r
-            , typename t1::type\r
-            >::type type;\r
-\r
-    };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename F, typename T1, typename U1, typename U2, typename U3\r
-    , typename U4, typename U5\r
-    >\r
-struct resolve_bind_arg<\r
-      bind1< F,T1 >, U1, U2, U3, U4, U5\r
-    >\r
-{\r
-    typedef bind1< F,T1 > f_;\r
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)\r
-\r
-template<\r
-      typename F, typename T1, typename T2\r
-    >\r
-struct bind2\r
-{\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-     private:\r
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
-        typedef typename r0::type a0;\r
-        typedef typename r0::next n1;\r
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
-        typedef typename r1::type a1;\r
-        typedef typename r1::next n2;\r
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
-        typedef typename r2::type a2;\r
-        typedef typename r2::next n3;\r
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
-        ///\r
-     public:\r
-        typedef typename apply_wrap2<\r
-              f_\r
-            , typename t1::type, typename t2::type\r
-            >::type type;\r
-\r
-    };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename U1, typename U2\r
-    , typename U3, typename U4, typename U5\r
-    >\r
-struct resolve_bind_arg<\r
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5\r
-    >\r
-{\r
-    typedef bind2< F,T1,T2 > f_;\r
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3\r
-    >\r
-struct bind3\r
-{\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-     private:\r
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
-        typedef typename r0::type a0;\r
-        typedef typename r0::next n1;\r
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
-        typedef typename r1::type a1;\r
-        typedef typename r1::next n2;\r
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
-        typedef typename r2::type a2;\r
-        typedef typename r2::next n3;\r
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;\r
-        typedef typename r3::type a3;\r
-        typedef typename r3::next n4;\r
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;\r
-        ///\r
-     public:\r
-        typedef typename apply_wrap3<\r
-              f_\r
-            , typename t1::type, typename t2::type, typename t3::type\r
-            >::type type;\r
-\r
-    };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename U1\r
-    , typename U2, typename U3, typename U4, typename U5\r
-    >\r
-struct resolve_bind_arg<\r
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5\r
-    >\r
-{\r
-    typedef bind3< F,T1,T2,T3 > f_;\r
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct bind4\r
-{\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-     private:\r
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
-        typedef typename r0::type a0;\r
-        typedef typename r0::next n1;\r
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
-        typedef typename r1::type a1;\r
-        typedef typename r1::next n2;\r
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
-        typedef typename r2::type a2;\r
-        typedef typename r2::next n3;\r
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;\r
-        typedef typename r3::type a3;\r
-        typedef typename r3::next n4;\r
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;\r
-        typedef typename r4::type a4;\r
-        typedef typename r4::next n5;\r
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;\r
-        ///\r
-     public:\r
-        typedef typename apply_wrap4<\r
-              f_\r
-            , typename t1::type, typename t2::type, typename t3::type\r
-            , typename t4::type\r
-            >::type type;\r
-\r
-    };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename U1, typename U2, typename U3, typename U4, typename U5\r
-    >\r
-struct resolve_bind_arg<\r
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5\r
-    >\r
-{\r
-    typedef bind4< F,T1,T2,T3,T4 > f_;\r
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct bind5\r
-{\r
-    template<\r
-          typename U1, typename U2, typename U3, typename U4, typename U5\r
-        >\r
-    struct apply\r
-    {\r
-     private:\r
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
-        typedef typename r0::type a0;\r
-        typedef typename r0::next n1;\r
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
-        typedef typename r1::type a1;\r
-        typedef typename r1::next n2;\r
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
-        typedef typename r2::type a2;\r
-        typedef typename r2::next n3;\r
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;\r
-        typedef typename r3::type a3;\r
-        typedef typename r3::next n4;\r
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;\r
-        typedef typename r4::type a4;\r
-        typedef typename r4::next n5;\r
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;\r
-        ///\r
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;\r
-        typedef typename r5::type a5;\r
-        typedef typename r5::next n6;\r
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;\r
-        ///\r
-     public:\r
-        typedef typename apply_wrap5<\r
-              f_\r
-            , typename t1::type, typename t2::type, typename t3::type\r
-            , typename t4::type, typename t5::type\r
-            >::type type;\r
-\r
-    };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename U1, typename U2, typename U3, typename U4\r
-    , typename U5\r
-    >\r
-struct resolve_bind_arg<\r
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5\r
-    >\r
-{\r
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;\r
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)\r
-}}\r
-\r
+
+// Copyright Peter Dimov 2001
+// Copyright Aleksey Gurtovoy 2001-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "bind.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+namespace aux {
+
+template<
+      typename T, typename U1, typename U2, typename U3, typename U4
+    , typename U5
+    >
+struct resolve_bind_arg
+{
+    typedef T type;
+};
+
+template<
+      typename T
+    , typename Arg
+    >
+struct replace_unnamed_arg
+{
+    typedef Arg next;
+    typedef T type;
+};
+
+template<
+      typename Arg
+    >
+struct replace_unnamed_arg< arg< -1 >, Arg >
+{
+    typedef typename Arg::next next;
+    typedef Arg type;
+};
+
+template<
+      int N, typename U1, typename U2, typename U3, typename U4, typename U5
+    >
+struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
+{
+    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
+};
+
+} // namespace aux
+
+template<
+      typename F
+    >
+struct bind0
+{
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+     private:
+        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
+        typedef typename r0::type a0;
+        typedef typename r0::next n1;
+        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
+        ///
+     public:
+        typedef typename apply_wrap0<
+              f_
+            >::type type;
+
+    };
+};
+
+namespace aux {
+
+template<
+      typename F, typename U1, typename U2, typename U3, typename U4
+    , typename U5
+    >
+struct resolve_bind_arg<
+      bind0<F>, U1, U2, U3, U4, U5
+    >
+{
+    typedef bind0<F> f_;
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+
+template<
+      typename F, typename T1
+    >
+struct bind1
+{
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+     private:
+        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
+        typedef typename r0::type a0;
+        typedef typename r0::next n1;
+        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
+        ///
+        typedef aux::replace_unnamed_arg< T1,n1 > r1;
+        typedef typename r1::type a1;
+        typedef typename r1::next n2;
+        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
+        ///
+     public:
+        typedef typename apply_wrap1<
+              f_
+            , typename t1::type
+            >::type type;
+
+    };
+};
+
+namespace aux {
+
+template<
+      typename F, typename T1, typename U1, typename U2, typename U3
+    , typename U4, typename U5
+    >
+struct resolve_bind_arg<
+      bind1< F,T1 >, U1, U2, U3, U4, U5
+    >
+{
+    typedef bind1< F,T1 > f_;
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+
+template<
+      typename F, typename T1, typename T2
+    >
+struct bind2
+{
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+     private:
+        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
+        typedef typename r0::type a0;
+        typedef typename r0::next n1;
+        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
+        ///
+        typedef aux::replace_unnamed_arg< T1,n1 > r1;
+        typedef typename r1::type a1;
+        typedef typename r1::next n2;
+        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
+        ///
+        typedef aux::replace_unnamed_arg< T2,n2 > r2;
+        typedef typename r2::type a2;
+        typedef typename r2::next n3;
+        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
+        ///
+     public:
+        typedef typename apply_wrap2<
+              f_
+            , typename t1::type, typename t2::type
+            >::type type;
+
+    };
+};
+
+namespace aux {
+
+template<
+      typename F, typename T1, typename T2, typename U1, typename U2
+    , typename U3, typename U4, typename U5
+    >
+struct resolve_bind_arg<
+      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
+    >
+{
+    typedef bind2< F,T1,T2 > f_;
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+
+template<
+      typename F, typename T1, typename T2, typename T3
+    >
+struct bind3
+{
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+     private:
+        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
+        typedef typename r0::type a0;
+        typedef typename r0::next n1;
+        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
+        ///
+        typedef aux::replace_unnamed_arg< T1,n1 > r1;
+        typedef typename r1::type a1;
+        typedef typename r1::next n2;
+        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
+        ///
+        typedef aux::replace_unnamed_arg< T2,n2 > r2;
+        typedef typename r2::type a2;
+        typedef typename r2::next n3;
+        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
+        ///
+        typedef aux::replace_unnamed_arg< T3,n3 > r3;
+        typedef typename r3::type a3;
+        typedef typename r3::next n4;
+        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
+        ///
+     public:
+        typedef typename apply_wrap3<
+              f_
+            , typename t1::type, typename t2::type, typename t3::type
+            >::type type;
+
+    };
+};
+
+namespace aux {
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename U1
+    , typename U2, typename U3, typename U4, typename U5
+    >
+struct resolve_bind_arg<
+      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
+    >
+{
+    typedef bind3< F,T1,T2,T3 > f_;
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    >
+struct bind4
+{
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+     private:
+        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
+        typedef typename r0::type a0;
+        typedef typename r0::next n1;
+        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
+        ///
+        typedef aux::replace_unnamed_arg< T1,n1 > r1;
+        typedef typename r1::type a1;
+        typedef typename r1::next n2;
+        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
+        ///
+        typedef aux::replace_unnamed_arg< T2,n2 > r2;
+        typedef typename r2::type a2;
+        typedef typename r2::next n3;
+        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
+        ///
+        typedef aux::replace_unnamed_arg< T3,n3 > r3;
+        typedef typename r3::type a3;
+        typedef typename r3::next n4;
+        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
+        ///
+        typedef aux::replace_unnamed_arg< T4,n4 > r4;
+        typedef typename r4::type a4;
+        typedef typename r4::next n5;
+        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
+        ///
+     public:
+        typedef typename apply_wrap4<
+              f_
+            , typename t1::type, typename t2::type, typename t3::type
+            , typename t4::type
+            >::type type;
+
+    };
+};
+
+namespace aux {
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename U1, typename U2, typename U3, typename U4, typename U5
+    >
+struct resolve_bind_arg<
+      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
+    >
+{
+    typedef bind4< F,T1,T2,T3,T4 > f_;
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct bind5
+{
+    template<
+          typename U1, typename U2, typename U3, typename U4, typename U5
+        >
+    struct apply
+    {
+     private:
+        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
+        typedef typename r0::type a0;
+        typedef typename r0::next n1;
+        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
+        ///
+        typedef aux::replace_unnamed_arg< T1,n1 > r1;
+        typedef typename r1::type a1;
+        typedef typename r1::next n2;
+        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
+        ///
+        typedef aux::replace_unnamed_arg< T2,n2 > r2;
+        typedef typename r2::type a2;
+        typedef typename r2::next n3;
+        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
+        ///
+        typedef aux::replace_unnamed_arg< T3,n3 > r3;
+        typedef typename r3::type a3;
+        typedef typename r3::next n4;
+        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
+        ///
+        typedef aux::replace_unnamed_arg< T4,n4 > r4;
+        typedef typename r4::type a4;
+        typedef typename r4::next n5;
+        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
+        ///
+        typedef aux::replace_unnamed_arg< T5,n5 > r5;
+        typedef typename r5::type a5;
+        typedef typename r5::next n6;
+        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
+        ///
+     public:
+        typedef typename apply_wrap5<
+              f_
+            , typename t1::type, typename t2::type, typename t3::type
+            , typename t4::type, typename t5::type
+            >::type type;
+
+    };
+};
+
+namespace aux {
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename U1, typename U2, typename U3, typename U4
+    , typename U5
+    >
+struct resolve_bind_arg<
+      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
+    >
+{
+    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+}}
+
index 77802c5c2aa5487ab9cffde3f5d42409be36ce2d..962b5c98bc591079b17375590278460a1dc1e703 100644 (file)
@@ -1,46 +1,46 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "bind_fwd.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename F\r
-    >\r
-struct bind0;\r
-\r
-template<\r
-      typename F, typename T1\r
-    >\r
-struct bind1;\r
-\r
-template<\r
-      typename F, typename T1, typename T2\r
-    >\r
-struct bind2;\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3\r
-    >\r
-struct bind3;\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct bind4;\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct bind5;\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "bind_fwd.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename F
+    >
+struct bind0;
+
+template<
+      typename F, typename T1
+    >
+struct bind1;
+
+template<
+      typename F, typename T1, typename T2
+    >
+struct bind2;
+
+template<
+      typename F, typename T1, typename T2, typename T3
+    >
+struct bind3;
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    >
+struct bind4;
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct bind5;
+
+}}
+
index da520a78d2c1cd2ab6468bf69cd53a1864f6f297..527b6894fcd983413b0cefde7ca0cf125babc3d5 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-// Copyright Jaap Suter 2003\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "bitand.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct bitand_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct bitand_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct bitand_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct bitand_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct bitand_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    , typename N3 = na, typename N4 = na, typename N5 = na\r
-    >\r
-struct bitand_\r
-    : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          5\r
-        , bitand_\r
-        , ( N1, N2, N3, N4, N5 )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2, typename N3, typename N4\r
-    >\r
-struct bitand_< N1,N2,N3,N4,na >\r
-\r
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , bitand_\r
-        , ( N1, N2, N3, N4, na )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2, typename N3\r
-    >\r
-struct bitand_< N1,N2,N3,na,na >\r
-\r
-    : bitand_< bitand_< N1,N2 >, N3>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , bitand_\r
-        , ( N1, N2, N3, na, na )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2\r
-    >\r
-struct bitand_< N1,N2,na,na,na >\r
-    : bitand_impl<\r
-          typename bitand_tag<N1>::type\r
-        , typename bitand_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , bitand_\r
-        , ( N1, N2, na, na, na )\r
-        )\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-template<>\r
-struct bitand_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N1, typename N2 > struct apply\r
-\r
-        : integral_c<\r
-              typename aux::largest_int<\r
-                  typename N1::value_type\r
-                , typename N2::value_type\r
-                >::type\r
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
-                )\r
-            >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+// Copyright Jaap Suter 2003
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// *Preprocessed* version of the main "bitand.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct bitand_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct bitand_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct bitand_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct bitand_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct bitand_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    , typename N3 = na, typename N4 = na, typename N5 = na
+    >
+struct bitand_
+    : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          5
+        , bitand_
+        , ( N1, N2, N3, N4, N5 )
+        )
+};
+
+template<
+      typename N1, typename N2, typename N3, typename N4
+    >
+struct bitand_< N1,N2,N3,N4,na >
+
+    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , bitand_
+        , ( N1, N2, N3, N4, na )
+        )
+};
+
+template<
+      typename N1, typename N2, typename N3
+    >
+struct bitand_< N1,N2,N3,na,na >
+
+    : bitand_< bitand_< N1,N2 >, N3>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , bitand_
+        , ( N1, N2, N3, na, na )
+        )
+};
+
+template<
+      typename N1, typename N2
+    >
+struct bitand_< N1,N2,na,na,na >
+    : bitand_impl<
+          typename bitand_tag<N1>::type
+        , typename bitand_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , bitand_
+        , ( N1, N2, na, na, na )
+        )
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
+
+}}
+
+namespace boost { namespace mpl {
+template<>
+struct bitand_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N1, typename N2 > struct apply
+
+        : integral_c<
+              typename aux::largest_int<
+                  typename N1::value_type
+                , typename N2::value_type
+                >::type
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
+                )
+            >
+    {
+    };
+};
+
+}}
index 9c2e186f8de25a61534b7115b798a23149c2d595..3f0d5caa5a07b27cb35580394747c2a0975db515 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-// Copyright Jaap Suter 2003\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "bitor.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct bitor_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct bitor_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct bitor_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct bitor_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct bitor_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    , typename N3 = na, typename N4 = na, typename N5 = na\r
-    >\r
-struct bitor_\r
-    : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          5\r
-        , bitor_\r
-        , ( N1, N2, N3, N4, N5 )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2, typename N3, typename N4\r
-    >\r
-struct bitor_< N1,N2,N3,N4,na >\r
-\r
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , bitor_\r
-        , ( N1, N2, N3, N4, na )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2, typename N3\r
-    >\r
-struct bitor_< N1,N2,N3,na,na >\r
-\r
-    : bitor_< bitor_< N1,N2 >, N3>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , bitor_\r
-        , ( N1, N2, N3, na, na )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2\r
-    >\r
-struct bitor_< N1,N2,na,na,na >\r
-    : bitor_impl<\r
-          typename bitor_tag<N1>::type\r
-        , typename bitor_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , bitor_\r
-        , ( N1, N2, na, na, na )\r
-        )\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-template<>\r
-struct bitor_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N1, typename N2 > struct apply\r
-\r
-        : integral_c<\r
-              typename aux::largest_int<\r
-                  typename N1::value_type\r
-                , typename N2::value_type\r
-                >::type\r
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
-                )\r
-            >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+// Copyright Jaap Suter 2003
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// *Preprocessed* version of the main "bitor.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct bitor_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct bitor_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct bitor_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct bitor_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct bitor_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    , typename N3 = na, typename N4 = na, typename N5 = na
+    >
+struct bitor_
+    : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          5
+        , bitor_
+        , ( N1, N2, N3, N4, N5 )
+        )
+};
+
+template<
+      typename N1, typename N2, typename N3, typename N4
+    >
+struct bitor_< N1,N2,N3,N4,na >
+
+    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , bitor_
+        , ( N1, N2, N3, N4, na )
+        )
+};
+
+template<
+      typename N1, typename N2, typename N3
+    >
+struct bitor_< N1,N2,N3,na,na >
+
+    : bitor_< bitor_< N1,N2 >, N3>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , bitor_
+        , ( N1, N2, N3, na, na )
+        )
+};
+
+template<
+      typename N1, typename N2
+    >
+struct bitor_< N1,N2,na,na,na >
+    : bitor_impl<
+          typename bitor_tag<N1>::type
+        , typename bitor_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , bitor_
+        , ( N1, N2, na, na, na )
+        )
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
+
+}}
+
+namespace boost { namespace mpl {
+template<>
+struct bitor_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N1, typename N2 > struct apply
+
+        : integral_c<
+              typename aux::largest_int<
+                  typename N1::value_type
+                , typename N2::value_type
+                >::type
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
+                )
+            >
+    {
+    };
+};
+
+}}
index b7f8ff44646abd98d81a1f01d452c1949e71433a..06996c03b895f657324f43aef9d8398519d47cc4 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-// Copyright Jaap Suter 2003\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "bitxor.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct bitxor_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct bitxor_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct bitxor_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct bitxor_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct bitxor_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    , typename N3 = na, typename N4 = na, typename N5 = na\r
-    >\r
-struct bitxor_\r
-    : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          5\r
-        , bitxor_\r
-        , ( N1, N2, N3, N4, N5 )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2, typename N3, typename N4\r
-    >\r
-struct bitxor_< N1,N2,N3,N4,na >\r
-\r
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , bitxor_\r
-        , ( N1, N2, N3, N4, na )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2, typename N3\r
-    >\r
-struct bitxor_< N1,N2,N3,na,na >\r
-\r
-    : bitxor_< bitxor_< N1,N2 >, N3>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , bitxor_\r
-        , ( N1, N2, N3, na, na )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2\r
-    >\r
-struct bitxor_< N1,N2,na,na,na >\r
-    : bitxor_impl<\r
-          typename bitxor_tag<N1>::type\r
-        , typename bitxor_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , bitxor_\r
-        , ( N1, N2, na, na, na )\r
-        )\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-template<>\r
-struct bitxor_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N1, typename N2 > struct apply\r
-\r
-        : integral_c<\r
-              typename aux::largest_int<\r
-                  typename N1::value_type\r
-                , typename N2::value_type\r
-                >::type\r
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
-                )\r
-            >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+// Copyright Jaap Suter 2003
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// *Preprocessed* version of the main "bitxor.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct bitxor_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct bitxor_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct bitxor_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct bitxor_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct bitxor_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    , typename N3 = na, typename N4 = na, typename N5 = na
+    >
+struct bitxor_
+    : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          5
+        , bitxor_
+        , ( N1, N2, N3, N4, N5 )
+        )
+};
+
+template<
+      typename N1, typename N2, typename N3, typename N4
+    >
+struct bitxor_< N1,N2,N3,N4,na >
+
+    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , bitxor_
+        , ( N1, N2, N3, N4, na )
+        )
+};
+
+template<
+      typename N1, typename N2, typename N3
+    >
+struct bitxor_< N1,N2,N3,na,na >
+
+    : bitxor_< bitxor_< N1,N2 >, N3>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , bitxor_
+        , ( N1, N2, N3, na, na )
+        )
+};
+
+template<
+      typename N1, typename N2
+    >
+struct bitxor_< N1,N2,na,na,na >
+    : bitxor_impl<
+          typename bitxor_tag<N1>::type
+        , typename bitxor_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , bitxor_
+        , ( N1, N2, na, na, na )
+        )
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
+
+}}
+
+namespace boost { namespace mpl {
+template<>
+struct bitxor_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N1, typename N2 > struct apply
+
+        : integral_c<
+              typename aux::largest_int<
+                  typename N1::value_type
+                , typename N2::value_type
+                >::type
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
+                )
+            >
+    {
+    };
+};
+
+}}
index 0b0de67389458b24c87c68c616a2cb0d5796f892..06505c9360c5858046a0f29c73ddfcda546479a8 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "deque.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na\r
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na\r
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na\r
-    , typename T12 = na, typename T13 = na, typename T14 = na\r
-    , typename T15 = na, typename T16 = na, typename T17 = na\r
-    , typename T18 = na, typename T19 = na\r
-    >\r
-struct deque;\r
-\r
-template<\r
-     \r
-    >\r
-struct deque<\r
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector0<  >\r
-{\r
-    typedef vector0<  >::type type;\r
-};\r
-\r
-template<\r
-      typename T0\r
-    >\r
-struct deque<\r
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector1<T0>\r
-{\r
-    typedef typename vector1<T0>::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1\r
-    >\r
-struct deque<\r
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector2< T0,T1 >\r
-{\r
-    typedef typename vector2< T0,T1 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2\r
-    >\r
-struct deque<\r
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector3< T0,T1,T2 >\r
-{\r
-    typedef typename vector3< T0,T1,T2 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector4< T0,T1,T2,T3 >\r
-{\r
-    typedef typename vector4< T0,T1,T2,T3 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector5< T0,T1,T2,T3,T4 >\r
-{\r
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector6< T0,T1,T2,T3,T4,T5 >\r
-{\r
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >\r
-{\r
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >\r
-{\r
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >\r
-{\r
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >\r
-{\r
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >\r
-{\r
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na\r
-        , na, na, na, na\r
-        >\r
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >\r
-{\r
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na\r
-        , na, na, na, na\r
-        >\r
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >\r
-{\r
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na\r
-        , na, na, na, na\r
-        >\r
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >\r
-{\r
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na\r
-        , na, na, na, na\r
-        >\r
-    : vector15<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        >\r
-{\r
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, na, na, na, na\r
-        >\r
-    : vector16<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15\r
-        >\r
-{\r
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, na, na, na\r
-        >\r
-    : vector17<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16\r
-        >\r
-{\r
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, na, na\r
-        >\r
-    : vector18<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17\r
-        >\r
-{\r
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17, typename T18\r
-    >\r
-struct deque<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18, na\r
-        >\r
-    : vector19<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18\r
-        >\r
-{\r
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;\r
-};\r
-\r
-/// primary template (not a specialization!)\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17, typename T18, typename T19\r
-    >\r
-struct deque\r
-    : vector20<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18, T19\r
-        >\r
-{\r
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;\r
-};\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "deque.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
+    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
+    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
+    , typename T12 = na, typename T13 = na, typename T14 = na
+    , typename T15 = na, typename T16 = na, typename T17 = na
+    , typename T18 = na, typename T19 = na
+    >
+struct deque;
+
+template<
+     
+    >
+struct deque<
+          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector0<  >
+{
+    typedef vector0<  >::type type;
+};
+
+template<
+      typename T0
+    >
+struct deque<
+          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector1<T0>
+{
+    typedef typename vector1<T0>::type type;
+};
+
+template<
+      typename T0, typename T1
+    >
+struct deque<
+          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector2< T0,T1 >
+{
+    typedef typename vector2< T0,T1 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2
+    >
+struct deque<
+          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector3< T0,T1,T2 >
+{
+    typedef typename vector3< T0,T1,T2 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3
+    >
+struct deque<
+          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector4< T0,T1,T2,T3 >
+{
+    typedef typename vector4< T0,T1,T2,T3 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    >
+struct deque<
+          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector5< T0,T1,T2,T3,T4 >
+{
+    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct deque<
+          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector6< T0,T1,T2,T3,T4,T5 >
+{
+    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6
+    >
+struct deque<
+          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector7< T0,T1,T2,T3,T4,T5,T6 >
+{
+    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7
+    >
+struct deque<
+          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
+{
+    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8
+    >
+struct deque<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
+{
+    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    >
+struct deque<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
+{
+    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10
+    >
+struct deque<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
+{
+    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11
+    >
+struct deque<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
+        , na, na, na, na
+        >
+    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
+{
+    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12
+    >
+struct deque<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
+        , na, na, na, na
+        >
+    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
+{
+    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13
+    >
+struct deque<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
+        , na, na, na, na
+        >
+    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
+{
+    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    >
+struct deque<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
+        , na, na, na, na
+        >
+    : vector15<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        >
+{
+    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15
+    >
+struct deque<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, na, na, na, na
+        >
+    : vector16<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15
+        >
+{
+    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16
+    >
+struct deque<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, na, na, na
+        >
+    : vector17<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16
+        >
+{
+    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17
+    >
+struct deque<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, na, na
+        >
+    : vector18<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17
+        >
+{
+    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18
+    >
+struct deque<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18, na
+        >
+    : vector19<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18
+        >
+{
+    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
+};
+
+/// primary template (not a specialization!)
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    >
+struct deque
+    : vector20<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18, T19
+        >
+{
+    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
+};
+
+}}
+
index 74765f95c187bcee3bea160ac25b7338ac7f63b1..6b4178a9c73f30082b14c78699c2edd28154d2b7 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "divides.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct divides_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct divides_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct divides_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct divides_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct divides_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    , typename N3 = na, typename N4 = na, typename N5 = na\r
-    >\r
-struct divides\r
-    : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          5\r
-        , divides\r
-        , ( N1, N2, N3, N4, N5 )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2, typename N3, typename N4\r
-    >\r
-struct divides< N1,N2,N3,N4,na >\r
-\r
-    : divides< divides< divides< N1,N2 >, N3>, N4>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , divides\r
-        , ( N1, N2, N3, N4, na )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2, typename N3\r
-    >\r
-struct divides< N1,N2,N3,na,na >\r
-\r
-    : divides< divides< N1,N2 >, N3>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , divides\r
-        , ( N1, N2, N3, na, na )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2\r
-    >\r
-struct divides< N1,N2,na,na,na >\r
-    : divides_impl<\r
-          typename divides_tag<N1>::type\r
-        , typename divides_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , divides\r
-        , ( N1, N2, na, na, na )\r
-        )\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-template<>\r
-struct divides_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N1, typename N2 > struct apply\r
-\r
-        : integral_c<\r
-              typename aux::largest_int<\r
-                  typename N1::value_type\r
-                , typename N2::value_type\r
-                >::type\r
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
-                )\r
-            >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "divides.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct divides_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct divides_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct divides_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct divides_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct divides_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    , typename N3 = na, typename N4 = na, typename N5 = na
+    >
+struct divides
+    : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          5
+        , divides
+        , ( N1, N2, N3, N4, N5 )
+        )
+};
+
+template<
+      typename N1, typename N2, typename N3, typename N4
+    >
+struct divides< N1,N2,N3,N4,na >
+
+    : divides< divides< divides< N1,N2 >, N3>, N4>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , divides
+        , ( N1, N2, N3, N4, na )
+        )
+};
+
+template<
+      typename N1, typename N2, typename N3
+    >
+struct divides< N1,N2,N3,na,na >
+
+    : divides< divides< N1,N2 >, N3>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , divides
+        , ( N1, N2, N3, na, na )
+        )
+};
+
+template<
+      typename N1, typename N2
+    >
+struct divides< N1,N2,na,na,na >
+    : divides_impl<
+          typename divides_tag<N1>::type
+        , typename divides_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , divides
+        , ( N1, N2, na, na, na )
+        )
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
+
+}}
+
+namespace boost { namespace mpl {
+template<>
+struct divides_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N1, typename N2 > struct apply
+
+        : integral_c<
+              typename aux::largest_int<
+                  typename N1::value_type
+                , typename N2::value_type
+                >::type
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
+                )
+            >
+    {
+    };
+};
+
+}}
index 6933512c608c0f12ce11922ede2ba27f51f7c68d..901a93c2f4d46c61e0b3b3517beb47ff383523f4 100644 (file)
@@ -1,94 +1,94 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "equal_to.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct equal_to_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct equal_to_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct equal_to_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct equal_to_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct equal_to_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    >\r
-struct equal_to\r
-\r
-    : equal_to_impl<\r
-          typename equal_to_tag<N1>::type\r
-        , typename equal_to_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<>\r
-struct equal_to_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N1, typename N2 > struct apply\r
-\r
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "equal_to.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct equal_to_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct equal_to_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct equal_to_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct equal_to_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct equal_to_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    >
+struct equal_to
+
+    : equal_to_impl<
+          typename equal_to_tag<N1>::type
+        , typename equal_to_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
+
+}}
+
+namespace boost { namespace mpl {
+
+template<>
+struct equal_to_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N1, typename N2 > struct apply
+
+        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+    {
+    };
+};
+
+}}
index 6c5be575a41b67a39f8cfa99d64dbbe9daa98083..45ab4e7c6deada064fdb73816941019900b2299a 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "fold_impl.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl { namespace aux {\r
-\r
-/// forward declaration\r
-\r
-template<\r
-      int N\r
-    , typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct fold_impl;\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct fold_impl< 0,First,Last,State,ForwardOp >\r
-{\r
-    typedef First iter0;\r
-    typedef State state0;\r
-    typedef state0 state;\r
-    typedef iter0 iterator;\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct fold_impl< 1,First,Last,State,ForwardOp >\r
-{\r
-    typedef First iter0;\r
-    typedef State state0;\r
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;\r
-    typedef typename mpl::next<iter0>::type iter1;\r
-    \r
-\r
-    typedef state1 state;\r
-    typedef iter1 iterator;\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct fold_impl< 2,First,Last,State,ForwardOp >\r
-{\r
-    typedef First iter0;\r
-    typedef State state0;\r
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;\r
-    typedef typename mpl::next<iter0>::type iter1;\r
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;\r
-    typedef typename mpl::next<iter1>::type iter2;\r
-    \r
-\r
-    typedef state2 state;\r
-    typedef iter2 iterator;\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct fold_impl< 3,First,Last,State,ForwardOp >\r
-{\r
-    typedef First iter0;\r
-    typedef State state0;\r
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;\r
-    typedef typename mpl::next<iter0>::type iter1;\r
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;\r
-    typedef typename mpl::next<iter1>::type iter2;\r
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;\r
-    typedef typename mpl::next<iter2>::type iter3;\r
-    \r
-\r
-    typedef state3 state;\r
-    typedef iter3 iterator;\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct fold_impl< 4,First,Last,State,ForwardOp >\r
-{\r
-    typedef First iter0;\r
-    typedef State state0;\r
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;\r
-    typedef typename mpl::next<iter0>::type iter1;\r
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;\r
-    typedef typename mpl::next<iter1>::type iter2;\r
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;\r
-    typedef typename mpl::next<iter2>::type iter3;\r
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;\r
-    typedef typename mpl::next<iter3>::type iter4;\r
-    \r
-\r
-    typedef state4 state;\r
-    typedef iter4 iterator;\r
-};\r
-\r
-template<\r
-      int N\r
-    , typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct fold_impl\r
-{\r
-    typedef fold_impl<\r
-          4\r
-        , First\r
-        , Last\r
-        , State\r
-        , ForwardOp\r
-        > chunk_;\r
-\r
-    typedef fold_impl<\r
-          ( (N - 4) < 0 ? 0 : N - 4 )\r
-        , typename chunk_::iterator\r
-        , Last\r
-        , typename chunk_::state\r
-        , ForwardOp\r
-        > res_;\r
-\r
-    typedef typename res_::state state;\r
-    typedef typename res_::iterator iterator;\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct fold_impl< -1,First,Last,State,ForwardOp >\r
-    : fold_impl<\r
-          -1\r
-        , typename mpl::next<First>::type\r
-        , Last\r
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type\r
-        , ForwardOp\r
-        >\r
-{\r
-};\r
-\r
-template<\r
-      typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct fold_impl< -1,Last,Last,State,ForwardOp >\r
-{\r
-    typedef State state;\r
-    typedef Last iterator;\r
-};\r
-\r
-}}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "fold_impl.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl { namespace aux {
+
+/// forward declaration
+
+template<
+      int N
+    , typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct fold_impl;
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct fold_impl< 0,First,Last,State,ForwardOp >
+{
+    typedef First iter0;
+    typedef State state0;
+    typedef state0 state;
+    typedef iter0 iterator;
+};
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct fold_impl< 1,First,Last,State,ForwardOp >
+{
+    typedef First iter0;
+    typedef State state0;
+    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
+    typedef typename mpl::next<iter0>::type iter1;
+    
+
+    typedef state1 state;
+    typedef iter1 iterator;
+};
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct fold_impl< 2,First,Last,State,ForwardOp >
+{
+    typedef First iter0;
+    typedef State state0;
+    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
+    typedef typename mpl::next<iter0>::type iter1;
+    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
+    typedef typename mpl::next<iter1>::type iter2;
+    
+
+    typedef state2 state;
+    typedef iter2 iterator;
+};
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct fold_impl< 3,First,Last,State,ForwardOp >
+{
+    typedef First iter0;
+    typedef State state0;
+    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
+    typedef typename mpl::next<iter0>::type iter1;
+    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
+    typedef typename mpl::next<iter1>::type iter2;
+    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
+    typedef typename mpl::next<iter2>::type iter3;
+    
+
+    typedef state3 state;
+    typedef iter3 iterator;
+};
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct fold_impl< 4,First,Last,State,ForwardOp >
+{
+    typedef First iter0;
+    typedef State state0;
+    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
+    typedef typename mpl::next<iter0>::type iter1;
+    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
+    typedef typename mpl::next<iter1>::type iter2;
+    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
+    typedef typename mpl::next<iter2>::type iter3;
+    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
+    typedef typename mpl::next<iter3>::type iter4;
+    
+
+    typedef state4 state;
+    typedef iter4 iterator;
+};
+
+template<
+      int N
+    , typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct fold_impl
+{
+    typedef fold_impl<
+          4
+        , First
+        , Last
+        , State
+        , ForwardOp
+        > chunk_;
+
+    typedef fold_impl<
+          ( (N - 4) < 0 ? 0 : N - 4 )
+        , typename chunk_::iterator
+        , Last
+        , typename chunk_::state
+        , ForwardOp
+        > res_;
+
+    typedef typename res_::state state;
+    typedef typename res_::iterator iterator;
+};
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct fold_impl< -1,First,Last,State,ForwardOp >
+    : fold_impl<
+          -1
+        , typename mpl::next<First>::type
+        , Last
+        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
+        , ForwardOp
+        >
+{
+};
+
+template<
+      typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct fold_impl< -1,Last,Last,State,ForwardOp >
+{
+    typedef State state;
+    typedef Last iterator;
+};
+
+}}}
index d987a99e9bcb320979347d760bc0196610fa69b8..8b2bf590632bc166b4157fe6cc6da79cfb3b4f54 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2001-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "full_lambda.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-namespace aux {\r
-\r
-template<\r
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false\r
-    , bool C5 = false\r
-    >\r
-struct lambda_or\r
-    : true_\r
-{\r
-};\r
-\r
-template<>\r
-struct lambda_or< false,false,false,false,false >\r
-    : false_\r
-{\r
-};\r
-\r
-} // namespace aux\r
-\r
-template<\r
-      typename T\r
-    , typename Tag\r
-    , typename Arity\r
-    >\r
-struct lambda\r
-{\r
-    typedef false_ is_le;\r
-    typedef T result_;\r
-    typedef T type;\r
-};\r
-\r
-template<\r
-      typename T\r
-    >\r
-struct is_lambda_expression\r
-    : lambda<T>::is_le\r
-{\r
-};\r
-\r
-template< int N, typename Tag >\r
-struct lambda< arg<N>,Tag, int_< -1 > >\r
-{\r
-    typedef true_ is_le;\r
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41\r
-    typedef mpl::protect<result_> type;\r
-};\r
-\r
-template<\r
-      typename F\r
-    , typename Tag\r
-    >\r
-struct lambda<\r
-          bind0<F>\r
-        , Tag\r
-        , int_<1>\r
-        >\r
-{\r
-    typedef false_ is_le;\r
-    typedef bind0<\r
-          F\r
-        > result_;\r
-\r
-    typedef result_ type;\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename IsLE, typename Tag\r
-    , template< typename P1 > class F\r
-    , typename L1\r
-    >\r
-struct le_result1\r
-{\r
-    typedef F<\r
-          typename L1::type\r
-        > result_;\r
-\r
-    typedef result_ type;\r
-};\r
-\r
-template<\r
-      typename Tag\r
-    , template< typename P1 > class F\r
-    , typename L1\r
-    >\r
-struct le_result1< true_,Tag,F,L1 >\r
-{\r
-    typedef bind1<\r
-          quote1< F,Tag >\r
-        , typename L1::result_\r
-        > result_;\r
-\r
-    typedef mpl::protect<result_> type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-template<\r
-      template< typename P1 > class F\r
-    , typename T1\r
-    , typename Tag\r
-    >\r
-struct lambda<\r
-          F<T1>\r
-        , Tag\r
-        , int_<1>\r
-        >\r
-{\r
-    typedef lambda< T1,Tag > l1;\r
-    typedef typename l1::is_le is_le1;\r
-    typedef typename aux::lambda_or<\r
-          is_le1::value\r
-        >::type is_le;\r
-\r
-    typedef aux::le_result1<\r
-          is_le, Tag, F, l1\r
-        > le_result_;\r
-\r
-    typedef typename le_result_::result_ result_;\r
-    typedef typename le_result_::type type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1\r
-    , typename Tag\r
-    >\r
-struct lambda<\r
-          bind1< F,T1 >\r
-        , Tag\r
-        , int_<2>\r
-        >\r
-{\r
-    typedef false_ is_le;\r
-    typedef bind1<\r
-          F\r
-        , T1\r
-        > result_;\r
-\r
-    typedef result_ type;\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename IsLE, typename Tag\r
-    , template< typename P1, typename P2 > class F\r
-    , typename L1, typename L2\r
-    >\r
-struct le_result2\r
-{\r
-    typedef F<\r
-          typename L1::type, typename L2::type\r
-        > result_;\r
-\r
-    typedef result_ type;\r
-};\r
-\r
-template<\r
-      typename Tag\r
-    , template< typename P1, typename P2 > class F\r
-    , typename L1, typename L2\r
-    >\r
-struct le_result2< true_,Tag,F,L1,L2 >\r
-{\r
-    typedef bind2<\r
-          quote2< F,Tag >\r
-        , typename L1::result_, typename L2::result_\r
-        > result_;\r
-\r
-    typedef mpl::protect<result_> type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-template<\r
-      template< typename P1, typename P2 > class F\r
-    , typename T1, typename T2\r
-    , typename Tag\r
-    >\r
-struct lambda<\r
-          F< T1,T2 >\r
-        , Tag\r
-        , int_<2>\r
-        >\r
-{\r
-    typedef lambda< T1,Tag > l1;\r
-    typedef lambda< T2,Tag > l2;\r
-    \r
-    typedef typename l1::is_le is_le1;\r
-    typedef typename l2::is_le is_le2;\r
-    \r
-\r
-    typedef typename aux::lambda_or<\r
-          is_le1::value, is_le2::value\r
-        >::type is_le;\r
-\r
-    typedef aux::le_result2<\r
-          is_le, Tag, F, l1, l2\r
-        > le_result_;\r
-\r
-    typedef typename le_result_::result_ result_;\r
-    typedef typename le_result_::type type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2\r
-    , typename Tag\r
-    >\r
-struct lambda<\r
-          bind2< F,T1,T2 >\r
-        , Tag\r
-        , int_<3>\r
-        >\r
-{\r
-    typedef false_ is_le;\r
-    typedef bind2<\r
-          F\r
-        , T1, T2\r
-        > result_;\r
-\r
-    typedef result_ type;\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename IsLE, typename Tag\r
-    , template< typename P1, typename P2, typename P3 > class F\r
-    , typename L1, typename L2, typename L3\r
-    >\r
-struct le_result3\r
-{\r
-    typedef F<\r
-          typename L1::type, typename L2::type, typename L3::type\r
-        > result_;\r
-\r
-    typedef result_ type;\r
-};\r
-\r
-template<\r
-      typename Tag\r
-    , template< typename P1, typename P2, typename P3 > class F\r
-    , typename L1, typename L2, typename L3\r
-    >\r
-struct le_result3< true_,Tag,F,L1,L2,L3 >\r
-{\r
-    typedef bind3<\r
-          quote3< F,Tag >\r
-        , typename L1::result_, typename L2::result_, typename L3::result_\r
-        > result_;\r
-\r
-    typedef mpl::protect<result_> type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-template<\r
-      template< typename P1, typename P2, typename P3 > class F\r
-    , typename T1, typename T2, typename T3\r
-    , typename Tag\r
-    >\r
-struct lambda<\r
-          F< T1,T2,T3 >\r
-        , Tag\r
-        , int_<3>\r
-        >\r
-{\r
-    typedef lambda< T1,Tag > l1;\r
-    typedef lambda< T2,Tag > l2;\r
-    typedef lambda< T3,Tag > l3;\r
-    \r
-    typedef typename l1::is_le is_le1;\r
-    typedef typename l2::is_le is_le2;\r
-    typedef typename l3::is_le is_le3;\r
-    \r
-\r
-    typedef typename aux::lambda_or<\r
-          is_le1::value, is_le2::value, is_le3::value\r
-        >::type is_le;\r
-\r
-    typedef aux::le_result3<\r
-          is_le, Tag, F, l1, l2, l3\r
-        > le_result_;\r
-\r
-    typedef typename le_result_::result_ result_;\r
-    typedef typename le_result_::type type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3\r
-    , typename Tag\r
-    >\r
-struct lambda<\r
-          bind3< F,T1,T2,T3 >\r
-        , Tag\r
-        , int_<4>\r
-        >\r
-{\r
-    typedef false_ is_le;\r
-    typedef bind3<\r
-          F\r
-        , T1, T2, T3\r
-        > result_;\r
-\r
-    typedef result_ type;\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename IsLE, typename Tag\r
-    , template< typename P1, typename P2, typename P3, typename P4 > class F\r
-    , typename L1, typename L2, typename L3, typename L4\r
-    >\r
-struct le_result4\r
-{\r
-    typedef F<\r
-          typename L1::type, typename L2::type, typename L3::type\r
-        , typename L4::type\r
-        > result_;\r
-\r
-    typedef result_ type;\r
-};\r
-\r
-template<\r
-      typename Tag\r
-    , template< typename P1, typename P2, typename P3, typename P4 > class F\r
-    , typename L1, typename L2, typename L3, typename L4\r
-    >\r
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >\r
-{\r
-    typedef bind4<\r
-          quote4< F,Tag >\r
-        , typename L1::result_, typename L2::result_, typename L3::result_\r
-        , typename L4::result_\r
-        > result_;\r
-\r
-    typedef mpl::protect<result_> type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-template<\r
-      template< typename P1, typename P2, typename P3, typename P4 > class F\r
-    , typename T1, typename T2, typename T3, typename T4\r
-    , typename Tag\r
-    >\r
-struct lambda<\r
-          F< T1,T2,T3,T4 >\r
-        , Tag\r
-        , int_<4>\r
-        >\r
-{\r
-    typedef lambda< T1,Tag > l1;\r
-    typedef lambda< T2,Tag > l2;\r
-    typedef lambda< T3,Tag > l3;\r
-    typedef lambda< T4,Tag > l4;\r
-    \r
-    typedef typename l1::is_le is_le1;\r
-    typedef typename l2::is_le is_le2;\r
-    typedef typename l3::is_le is_le3;\r
-    typedef typename l4::is_le is_le4;\r
-    \r
-\r
-    typedef typename aux::lambda_or<\r
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value\r
-        >::type is_le;\r
-\r
-    typedef aux::le_result4<\r
-          is_le, Tag, F, l1, l2, l3, l4\r
-        > le_result_;\r
-\r
-    typedef typename le_result_::result_ result_;\r
-    typedef typename le_result_::type type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename Tag\r
-    >\r
-struct lambda<\r
-          bind4< F,T1,T2,T3,T4 >\r
-        , Tag\r
-        , int_<5>\r
-        >\r
-{\r
-    typedef false_ is_le;\r
-    typedef bind4<\r
-          F\r
-        , T1, T2, T3, T4\r
-        > result_;\r
-\r
-    typedef result_ type;\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
-      typename IsLE, typename Tag\r
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F\r
-    , typename L1, typename L2, typename L3, typename L4, typename L5\r
-    >\r
-struct le_result5\r
-{\r
-    typedef F<\r
-          typename L1::type, typename L2::type, typename L3::type\r
-        , typename L4::type, typename L5::type\r
-        > result_;\r
-\r
-    typedef result_ type;\r
-};\r
-\r
-template<\r
-      typename Tag\r
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F\r
-    , typename L1, typename L2, typename L3, typename L4, typename L5\r
-    >\r
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >\r
-{\r
-    typedef bind5<\r
-          quote5< F,Tag >\r
-        , typename L1::result_, typename L2::result_, typename L3::result_\r
-        , typename L4::result_, typename L5::result_\r
-        > result_;\r
-\r
-    typedef mpl::protect<result_> type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-template<\r
-      template<\r
-          typename P1, typename P2, typename P3, typename P4\r
-        , typename P5\r
-        >\r
-      class F\r
-    , typename T1, typename T2, typename T3, typename T4, typename T5\r
-    , typename Tag\r
-    >\r
-struct lambda<\r
-          F< T1,T2,T3,T4,T5 >\r
-        , Tag\r
-        , int_<5>\r
-        >\r
-{\r
-    typedef lambda< T1,Tag > l1;\r
-    typedef lambda< T2,Tag > l2;\r
-    typedef lambda< T3,Tag > l3;\r
-    typedef lambda< T4,Tag > l4;\r
-    typedef lambda< T5,Tag > l5;\r
-    \r
-    typedef typename l1::is_le is_le1;\r
-    typedef typename l2::is_le is_le2;\r
-    typedef typename l3::is_le is_le3;\r
-    typedef typename l4::is_le is_le4;\r
-    typedef typename l5::is_le is_le5;\r
-    \r
-\r
-    typedef typename aux::lambda_or<\r
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value\r
-        , is_le5::value\r
-        >::type is_le;\r
-\r
-    typedef aux::le_result5<\r
-          is_le, Tag, F, l1, l2, l3, l4, l5\r
-        > le_result_;\r
-\r
-    typedef typename le_result_::result_ result_;\r
-    typedef typename le_result_::type type;\r
-};\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    , typename Tag\r
-    >\r
-struct lambda<\r
-          bind5< F,T1,T2,T3,T4,T5 >\r
-        , Tag\r
-        , int_<6>\r
-        >\r
-{\r
-    typedef false_ is_le;\r
-    typedef bind5<\r
-          F\r
-        , T1, T2, T3, T4, T5\r
-        > result_;\r
-\r
-    typedef result_ type;\r
-};\r
-\r
-/// special case for 'protect'\r
-template< typename T, typename Tag >\r
-struct lambda< mpl::protect<T>,Tag, int_<1> >\r
-{\r
-    typedef false_ is_le;\r
-    typedef mpl::protect<T> result_;\r
-    typedef result_ type;\r
-};\r
-\r
-/// specializations for the main 'bind' form\r
-\r
-template<\r
-      typename F, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    , typename Tag\r
-    >\r
-struct lambda<\r
-          bind< F,T1,T2,T3,T4,T5 >\r
-        , Tag\r
-        , int_<6>\r
-        >\r
-{\r
-    typedef false_ is_le;\r
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;\r
-    typedef result_ type;\r
-};\r
-\r
-template<\r
-      typename F\r
-    , typename Tag1\r
-    , typename Tag2\r
-    , typename Arity\r
-    >\r
-struct lambda<\r
-          lambda< F,Tag1,Arity >\r
-        , Tag2\r
-        , int_<3>\r
-        >\r
-{\r
-    typedef lambda< F,Tag2 > l1;\r
-    typedef lambda< Tag1,Tag2 > l2;\r
-    typedef typename l1::is_le is_le;\r
-    typedef bind1< quote1<aux::template_arity>, typename l1::result_ > arity_;\r
-    typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3;\r
-    typedef aux::le_result3<is_le, Tag2, mpl::lambda, l1, l2, l3> le_result_;\r
-    typedef typename le_result_::result_ result_;\r
-    typedef typename le_result_::type type;\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2001-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "full_lambda.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+namespace aux {
+
+template<
+      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
+    , bool C5 = false
+    >
+struct lambda_or
+    : true_
+{
+};
+
+template<>
+struct lambda_or< false,false,false,false,false >
+    : false_
+{
+};
+
+} // namespace aux
+
+template<
+      typename T
+    , typename Tag
+    , typename Arity
+    >
+struct lambda
+{
+    typedef false_ is_le;
+    typedef T result_;
+    typedef T type;
+};
+
+template<
+      typename T
+    >
+struct is_lambda_expression
+    : lambda<T>::is_le
+{
+};
+
+template< int N, typename Tag >
+struct lambda< arg<N>,Tag, int_< -1 > >
+{
+    typedef true_ is_le;
+    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
+    typedef mpl::protect<result_> type;
+};
+
+template<
+      typename F
+    , typename Tag
+    >
+struct lambda<
+          bind0<F>
+        , Tag
+        , int_<1>
+        >
+{
+    typedef false_ is_le;
+    typedef bind0<
+          F
+        > result_;
+
+    typedef result_ type;
+};
+
+namespace aux {
+
+template<
+      typename IsLE, typename Tag
+    , template< typename P1 > class F
+    , typename L1
+    >
+struct le_result1
+{
+    typedef F<
+          typename L1::type
+        > result_;
+
+    typedef result_ type;
+};
+
+template<
+      typename Tag
+    , template< typename P1 > class F
+    , typename L1
+    >
+struct le_result1< true_,Tag,F,L1 >
+{
+    typedef bind1<
+          quote1< F,Tag >
+        , typename L1::result_
+        > result_;
+
+    typedef mpl::protect<result_> type;
+};
+
+} // namespace aux
+
+template<
+      template< typename P1 > class F
+    , typename T1
+    , typename Tag
+    >
+struct lambda<
+          F<T1>
+        , Tag
+        , int_<1>
+        >
+{
+    typedef lambda< T1,Tag > l1;
+    typedef typename l1::is_le is_le1;
+    typedef typename aux::lambda_or<
+          is_le1::value
+        >::type is_le;
+
+    typedef aux::le_result1<
+          is_le, Tag, F, l1
+        > le_result_;
+
+    typedef typename le_result_::result_ result_;
+    typedef typename le_result_::type type;
+};
+
+template<
+      typename F, typename T1
+    , typename Tag
+    >
+struct lambda<
+          bind1< F,T1 >
+        , Tag
+        , int_<2>
+        >
+{
+    typedef false_ is_le;
+    typedef bind1<
+          F
+        , T1
+        > result_;
+
+    typedef result_ type;
+};
+
+namespace aux {
+
+template<
+      typename IsLE, typename Tag
+    , template< typename P1, typename P2 > class F
+    , typename L1, typename L2
+    >
+struct le_result2
+{
+    typedef F<
+          typename L1::type, typename L2::type
+        > result_;
+
+    typedef result_ type;
+};
+
+template<
+      typename Tag
+    , template< typename P1, typename P2 > class F
+    , typename L1, typename L2
+    >
+struct le_result2< true_,Tag,F,L1,L2 >
+{
+    typedef bind2<
+          quote2< F,Tag >
+        , typename L1::result_, typename L2::result_
+        > result_;
+
+    typedef mpl::protect<result_> type;
+};
+
+} // namespace aux
+
+template<
+      template< typename P1, typename P2 > class F
+    , typename T1, typename T2
+    , typename Tag
+    >
+struct lambda<
+          F< T1,T2 >
+        , Tag
+        , int_<2>
+        >
+{
+    typedef lambda< T1,Tag > l1;
+    typedef lambda< T2,Tag > l2;
+    
+    typedef typename l1::is_le is_le1;
+    typedef typename l2::is_le is_le2;
+    
+
+    typedef typename aux::lambda_or<
+          is_le1::value, is_le2::value
+        >::type is_le;
+
+    typedef aux::le_result2<
+          is_le, Tag, F, l1, l2
+        > le_result_;
+
+    typedef typename le_result_::result_ result_;
+    typedef typename le_result_::type type;
+};
+
+template<
+      typename F, typename T1, typename T2
+    , typename Tag
+    >
+struct lambda<
+          bind2< F,T1,T2 >
+        , Tag
+        , int_<3>
+        >
+{
+    typedef false_ is_le;
+    typedef bind2<
+          F
+        , T1, T2
+        > result_;
+
+    typedef result_ type;
+};
+
+namespace aux {
+
+template<
+      typename IsLE, typename Tag
+    , template< typename P1, typename P2, typename P3 > class F
+    , typename L1, typename L2, typename L3
+    >
+struct le_result3
+{
+    typedef F<
+          typename L1::type, typename L2::type, typename L3::type
+        > result_;
+
+    typedef result_ type;
+};
+
+template<
+      typename Tag
+    , template< typename P1, typename P2, typename P3 > class F
+    , typename L1, typename L2, typename L3
+    >
+struct le_result3< true_,Tag,F,L1,L2,L3 >
+{
+    typedef bind3<
+          quote3< F,Tag >
+        , typename L1::result_, typename L2::result_, typename L3::result_
+        > result_;
+
+    typedef mpl::protect<result_> type;
+};
+
+} // namespace aux
+
+template<
+      template< typename P1, typename P2, typename P3 > class F
+    , typename T1, typename T2, typename T3
+    , typename Tag
+    >
+struct lambda<
+          F< T1,T2,T3 >
+        , Tag
+        , int_<3>
+        >
+{
+    typedef lambda< T1,Tag > l1;
+    typedef lambda< T2,Tag > l2;
+    typedef lambda< T3,Tag > l3;
+    
+    typedef typename l1::is_le is_le1;
+    typedef typename l2::is_le is_le2;
+    typedef typename l3::is_le is_le3;
+    
+
+    typedef typename aux::lambda_or<
+          is_le1::value, is_le2::value, is_le3::value
+        >::type is_le;
+
+    typedef aux::le_result3<
+          is_le, Tag, F, l1, l2, l3
+        > le_result_;
+
+    typedef typename le_result_::result_ result_;
+    typedef typename le_result_::type type;
+};
+
+template<
+      typename F, typename T1, typename T2, typename T3
+    , typename Tag
+    >
+struct lambda<
+          bind3< F,T1,T2,T3 >
+        , Tag
+        , int_<4>
+        >
+{
+    typedef false_ is_le;
+    typedef bind3<
+          F
+        , T1, T2, T3
+        > result_;
+
+    typedef result_ type;
+};
+
+namespace aux {
+
+template<
+      typename IsLE, typename Tag
+    , template< typename P1, typename P2, typename P3, typename P4 > class F
+    , typename L1, typename L2, typename L3, typename L4
+    >
+struct le_result4
+{
+    typedef F<
+          typename L1::type, typename L2::type, typename L3::type
+        , typename L4::type
+        > result_;
+
+    typedef result_ type;
+};
+
+template<
+      typename Tag
+    , template< typename P1, typename P2, typename P3, typename P4 > class F
+    , typename L1, typename L2, typename L3, typename L4
+    >
+struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
+{
+    typedef bind4<
+          quote4< F,Tag >
+        , typename L1::result_, typename L2::result_, typename L3::result_
+        , typename L4::result_
+        > result_;
+
+    typedef mpl::protect<result_> type;
+};
+
+} // namespace aux
+
+template<
+      template< typename P1, typename P2, typename P3, typename P4 > class F
+    , typename T1, typename T2, typename T3, typename T4
+    , typename Tag
+    >
+struct lambda<
+          F< T1,T2,T3,T4 >
+        , Tag
+        , int_<4>
+        >
+{
+    typedef lambda< T1,Tag > l1;
+    typedef lambda< T2,Tag > l2;
+    typedef lambda< T3,Tag > l3;
+    typedef lambda< T4,Tag > l4;
+    
+    typedef typename l1::is_le is_le1;
+    typedef typename l2::is_le is_le2;
+    typedef typename l3::is_le is_le3;
+    typedef typename l4::is_le is_le4;
+    
+
+    typedef typename aux::lambda_or<
+          is_le1::value, is_le2::value, is_le3::value, is_le4::value
+        >::type is_le;
+
+    typedef aux::le_result4<
+          is_le, Tag, F, l1, l2, l3, l4
+        > le_result_;
+
+    typedef typename le_result_::result_ result_;
+    typedef typename le_result_::type type;
+};
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename Tag
+    >
+struct lambda<
+          bind4< F,T1,T2,T3,T4 >
+        , Tag
+        , int_<5>
+        >
+{
+    typedef false_ is_le;
+    typedef bind4<
+          F
+        , T1, T2, T3, T4
+        > result_;
+
+    typedef result_ type;
+};
+
+namespace aux {
+
+template<
+      typename IsLE, typename Tag
+    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
+    , typename L1, typename L2, typename L3, typename L4, typename L5
+    >
+struct le_result5
+{
+    typedef F<
+          typename L1::type, typename L2::type, typename L3::type
+        , typename L4::type, typename L5::type
+        > result_;
+
+    typedef result_ type;
+};
+
+template<
+      typename Tag
+    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
+    , typename L1, typename L2, typename L3, typename L4, typename L5
+    >
+struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
+{
+    typedef bind5<
+          quote5< F,Tag >
+        , typename L1::result_, typename L2::result_, typename L3::result_
+        , typename L4::result_, typename L5::result_
+        > result_;
+
+    typedef mpl::protect<result_> type;
+};
+
+} // namespace aux
+
+template<
+      template<
+          typename P1, typename P2, typename P3, typename P4
+        , typename P5
+        >
+      class F
+    , typename T1, typename T2, typename T3, typename T4, typename T5
+    , typename Tag
+    >
+struct lambda<
+          F< T1,T2,T3,T4,T5 >
+        , Tag
+        , int_<5>
+        >
+{
+    typedef lambda< T1,Tag > l1;
+    typedef lambda< T2,Tag > l2;
+    typedef lambda< T3,Tag > l3;
+    typedef lambda< T4,Tag > l4;
+    typedef lambda< T5,Tag > l5;
+    
+    typedef typename l1::is_le is_le1;
+    typedef typename l2::is_le is_le2;
+    typedef typename l3::is_le is_le3;
+    typedef typename l4::is_le is_le4;
+    typedef typename l5::is_le is_le5;
+    
+
+    typedef typename aux::lambda_or<
+          is_le1::value, is_le2::value, is_le3::value, is_le4::value
+        , is_le5::value
+        >::type is_le;
+
+    typedef aux::le_result5<
+          is_le, Tag, F, l1, l2, l3, l4, l5
+        > le_result_;
+
+    typedef typename le_result_::result_ result_;
+    typedef typename le_result_::type type;
+};
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    , typename Tag
+    >
+struct lambda<
+          bind5< F,T1,T2,T3,T4,T5 >
+        , Tag
+        , int_<6>
+        >
+{
+    typedef false_ is_le;
+    typedef bind5<
+          F
+        , T1, T2, T3, T4, T5
+        > result_;
+
+    typedef result_ type;
+};
+
+/// special case for 'protect'
+template< typename T, typename Tag >
+struct lambda< mpl::protect<T>,Tag, int_<1> >
+{
+    typedef false_ is_le;
+    typedef mpl::protect<T> result_;
+    typedef result_ type;
+};
+
+/// specializations for the main 'bind' form
+
+template<
+      typename F, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    , typename Tag
+    >
+struct lambda<
+          bind< F,T1,T2,T3,T4,T5 >
+        , Tag
+        , int_<6>
+        >
+{
+    typedef false_ is_le;
+    typedef bind< F,T1,T2,T3,T4,T5 > result_;
+    typedef result_ type;
+};
+
+template<
+      typename F
+    , typename Tag1
+    , typename Tag2
+    , typename Arity
+    >
+struct lambda<
+          lambda< F,Tag1,Arity >
+        , Tag2
+        , int_<3>
+        >
+{
+    typedef lambda< F,Tag2 > l1;
+    typedef lambda< Tag1,Tag2 > l2;
+    typedef typename l1::is_le is_le;
+    typedef bind1< quote1<aux::template_arity>, typename l1::result_ > arity_;
+    typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3;
+    typedef aux::le_result3<is_le, Tag2, mpl::lambda, l1, l2, l3> le_result_;
+    typedef typename le_result_::result_ result_;
+    typedef typename le_result_::type type;
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
+
+}}
+
index a9153e98667909c5890adc3cdde6a4a6d08ba0e4..3d1c3dcead484c8ce7f6bb9812853de006ce83bb 100644 (file)
@@ -1,94 +1,94 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "greater.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct greater_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct greater_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct greater_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct greater_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct greater_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    >\r
-struct greater\r
-\r
-    : greater_impl<\r
-          typename greater_tag<N1>::type\r
-        , typename greater_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<>\r
-struct greater_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N1, typename N2 > struct apply\r
-\r
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "greater.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct greater_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct greater_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct greater_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct greater_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct greater_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    >
+struct greater
+
+    : greater_impl<
+          typename greater_tag<N1>::type
+        , typename greater_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
+
+}}
+
+namespace boost { namespace mpl {
+
+template<>
+struct greater_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N1, typename N2 > struct apply
+
+        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+    {
+    };
+};
+
+}}
index 05d42d646c8af430fe8a1c84202c108362c41766..fb011866e77804060fb6e8cf1597d69c618c13ae 100644 (file)
@@ -1,94 +1,94 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "greater_equal.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct greater_equal_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct greater_equal_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct greater_equal_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct greater_equal_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct greater_equal_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    >\r
-struct greater_equal\r
-\r
-    : greater_equal_impl<\r
-          typename greater_equal_tag<N1>::type\r
-        , typename greater_equal_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<>\r
-struct greater_equal_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N1, typename N2 > struct apply\r
-\r
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "greater_equal.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct greater_equal_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct greater_equal_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct greater_equal_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct greater_equal_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct greater_equal_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    >
+struct greater_equal
+
+    : greater_equal_impl<
+          typename greater_equal_tag<N1>::type
+        , typename greater_equal_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
+
+}}
+
+namespace boost { namespace mpl {
+
+template<>
+struct greater_equal_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N1, typename N2 > struct apply
+
+        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+    {
+    };
+};
+
+}}
index 38fde94982b52f543881e9d7e08a974e5022f199..6adcc0142e39fff1e4e38e183fba8d65b9a5f6c9 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2001-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "inherit.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(T1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)\r
-    >\r
-struct inherit2\r
-    : T1, T2\r
-{\r
-    typedef inherit2 type;\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))\r
-};\r
-\r
-template< typename T1 >\r
-struct inherit2< T1,empty_base >\r
-{\r
-    typedef T1 type;\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))\r
-};\r
-\r
-template< typename T2 >\r
-struct inherit2< empty_base,T2 >\r
-{\r
-    typedef T2 type;\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))\r
-};\r
-\r
-template<>\r
-struct inherit2< empty_base,empty_base >\r
-{\r
-    typedef empty_base type;\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)\r
-\r
-template<\r
-      typename T1 = na, typename T2 = na, typename T3 = na\r
-    >\r
-struct inherit3\r
-    : inherit2<\r
-          typename inherit2<\r
-              T1, T2\r
-            >::type\r
-        , T3\r
-        >\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          3\r
-        , inherit3\r
-        , ( T1, T2, T3)\r
-        )\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)\r
-\r
-template<\r
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na\r
-    >\r
-struct inherit4\r
-    : inherit2<\r
-          typename inherit3<\r
-              T1, T2, T3\r
-            >::type\r
-        , T4\r
-        >\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          4\r
-        , inherit4\r
-        , ( T1, T2, T3, T4)\r
-        )\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)\r
-\r
-template<\r
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na\r
-    , typename T5 = na\r
-    >\r
-struct inherit5\r
-    : inherit2<\r
-          typename inherit4<\r
-              T1, T2, T3, T4\r
-            >::type\r
-        , T5\r
-        >\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          5\r
-        , inherit5\r
-        , ( T1, T2, T3, T4, T5)\r
-        )\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)\r
-\r
-/// primary template\r
-\r
-template<\r
-      typename T1 = empty_base, typename T2 = empty_base\r
-    , typename T3 = empty_base, typename T4 = empty_base\r
-    , typename T5 = empty_base\r
-    >\r
-struct inherit\r
-    : inherit5< T1,T2,T3,T4,T5 >\r
-{\r
-};\r
-\r
-template<>\r
-struct inherit< na,na,na,na,na >\r
-{\r
-    template<\r
-\r
-          typename T1, typename T2, typename T3, typename T4, typename T5\r
-\r
-        >\r
-    struct apply\r
-        : inherit< T1,T2,T3,T4,T5 >\r
-    {\r
-    };\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)\r
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)\r
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2001-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "inherit.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(T1)
+    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+    >
+struct inherit2
+    : T1, T2
+{
+    typedef inherit2 type;
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
+};
+
+template< typename T1 >
+struct inherit2< T1,empty_base >
+{
+    typedef T1 type;
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
+};
+
+template< typename T2 >
+struct inherit2< empty_base,T2 >
+{
+    typedef T2 type;
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
+};
+
+template<>
+struct inherit2< empty_base,empty_base >
+{
+    typedef empty_base type;
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
+};
+
+BOOST_MPL_AUX_NA_SPEC(2, inherit2)
+
+template<
+      typename T1 = na, typename T2 = na, typename T3 = na
+    >
+struct inherit3
+    : inherit2<
+          typename inherit2<
+              T1, T2
+            >::type
+        , T3
+        >
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          3
+        , inherit3
+        , ( T1, T2, T3)
+        )
+};
+
+BOOST_MPL_AUX_NA_SPEC(3, inherit3)
+
+template<
+      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
+    >
+struct inherit4
+    : inherit2<
+          typename inherit3<
+              T1, T2, T3
+            >::type
+        , T4
+        >
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          4
+        , inherit4
+        , ( T1, T2, T3, T4)
+        )
+};
+
+BOOST_MPL_AUX_NA_SPEC(4, inherit4)
+
+template<
+      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
+    , typename T5 = na
+    >
+struct inherit5
+    : inherit2<
+          typename inherit4<
+              T1, T2, T3, T4
+            >::type
+        , T5
+        >
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          5
+        , inherit5
+        , ( T1, T2, T3, T4, T5)
+        )
+};
+
+BOOST_MPL_AUX_NA_SPEC(5, inherit5)
+
+/// primary template
+
+template<
+      typename T1 = empty_base, typename T2 = empty_base
+    , typename T3 = empty_base, typename T4 = empty_base
+    , typename T5 = empty_base
+    >
+struct inherit
+    : inherit5< T1,T2,T3,T4,T5 >
+{
+};
+
+template<>
+struct inherit< na,na,na,na,na >
+{
+    template<
+
+          typename T1, typename T2, typename T3, typename T4, typename T5
+
+        >
+    struct apply
+        : inherit< T1,T2,T3,T4,T5 >
+    {
+    };
+};
+
+BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
+BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
+BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
+}}
+
index b93d59dab0a226b6a264de4893062649df13a91d..b767e95862486cb43c8cfef4719fb39eff92b15a 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2001-2004\r
-// Copyright David Abrahams 2001-2002\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "iter_fold_if_impl.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl { namespace aux {\r
-\r
-template< typename Iterator, typename State >\r
-struct iter_fold_if_null_step\r
-{\r
-    typedef State state;\r
-    typedef Iterator iterator;\r
-};\r
-\r
-template< bool >\r
-struct iter_fold_if_step_impl\r
-{\r
-    template<\r
-          typename Iterator\r
-        , typename State\r
-        , typename StateOp\r
-        , typename IteratorOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef typename apply2< StateOp,State,Iterator >::type state;\r
-        typedef typename IteratorOp::type iterator;\r
-    };\r
-};\r
-\r
-template<>\r
-struct iter_fold_if_step_impl<false>\r
-{\r
-    template<\r
-          typename Iterator\r
-        , typename State\r
-        , typename StateOp\r
-        , typename IteratorOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef State state;\r
-        typedef Iterator iterator;\r
-    };\r
-};\r
-\r
-template<\r
-      typename Iterator\r
-    , typename State\r
-    , typename ForwardOp\r
-    , typename Predicate\r
-    >\r
-struct iter_fold_if_forward_step\r
-{\r
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;\r
-    typedef typename iter_fold_if_step_impl<\r
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value\r
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;\r
-\r
-    typedef typename impl_::state state;\r
-    typedef typename impl_::iterator iterator;\r
-};\r
-\r
-template<\r
-      typename Iterator\r
-    , typename State\r
-    , typename BackwardOp\r
-    , typename Predicate\r
-    >\r
-struct iter_fold_if_backward_step\r
-{\r
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;\r
-    typedef typename iter_fold_if_step_impl<\r
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value\r
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;\r
-\r
-    typedef typename impl_::state state;\r
-    typedef typename impl_::iterator iterator;\r
-};\r
-\r
-template<\r
-      typename Iterator\r
-    , typename State\r
-    , typename ForwardOp\r
-    , typename ForwardPredicate\r
-    , typename BackwardOp\r
-    , typename BackwardPredicate\r
-    >\r
-struct iter_fold_if_impl\r
-{\r
- private:\r
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;\r
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;\r
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;\r
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;\r
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;\r
-    \r
-\r
-    typedef typename if_<\r
-          typename forward_step4::not_last\r
-        , iter_fold_if_impl<\r
-              typename forward_step4::iterator\r
-            , typename forward_step4::state\r
-            , ForwardOp\r
-            , ForwardPredicate\r
-            , BackwardOp\r
-            , BackwardPredicate\r
-            >\r
-        , iter_fold_if_null_step<\r
-              typename forward_step4::iterator\r
-            , typename forward_step4::state\r
-            >\r
-        >::type backward_step4;\r
-\r
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;\r
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;\r
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;\r
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;\r
-    \r
-\r
- public:\r
-    typedef typename backward_step0::state state;\r
-    typedef typename backward_step4::iterator iterator;\r
-};\r
-\r
-}}}\r
+
+// Copyright Aleksey Gurtovoy 2001-2004
+// Copyright David Abrahams 2001-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)
+//
+
+// *Preprocessed* version of the main "iter_fold_if_impl.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl { namespace aux {
+
+template< typename Iterator, typename State >
+struct iter_fold_if_null_step
+{
+    typedef State state;
+    typedef Iterator iterator;
+};
+
+template< bool >
+struct iter_fold_if_step_impl
+{
+    template<
+          typename Iterator
+        , typename State
+        , typename StateOp
+        , typename IteratorOp
+        >
+    struct result_
+    {
+        typedef typename apply2< StateOp,State,Iterator >::type state;
+        typedef typename IteratorOp::type iterator;
+    };
+};
+
+template<>
+struct iter_fold_if_step_impl<false>
+{
+    template<
+          typename Iterator
+        , typename State
+        , typename StateOp
+        , typename IteratorOp
+        >
+    struct result_
+    {
+        typedef State state;
+        typedef Iterator iterator;
+    };
+};
+
+template<
+      typename Iterator
+    , typename State
+    , typename ForwardOp
+    , typename Predicate
+    >
+struct iter_fold_if_forward_step
+{
+    typedef typename apply2< Predicate,State,Iterator >::type not_last;
+    typedef typename iter_fold_if_step_impl<
+          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
+
+    typedef typename impl_::state state;
+    typedef typename impl_::iterator iterator;
+};
+
+template<
+      typename Iterator
+    , typename State
+    , typename BackwardOp
+    , typename Predicate
+    >
+struct iter_fold_if_backward_step
+{
+    typedef typename apply2< Predicate,State,Iterator >::type not_last;
+    typedef typename iter_fold_if_step_impl<
+          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
+        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
+
+    typedef typename impl_::state state;
+    typedef typename impl_::iterator iterator;
+};
+
+template<
+      typename Iterator
+    , typename State
+    , typename ForwardOp
+    , typename ForwardPredicate
+    , typename BackwardOp
+    , typename BackwardPredicate
+    >
+struct iter_fold_if_impl
+{
+ private:
+    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
+    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
+    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
+    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
+    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
+    
+
+    typedef typename if_<
+          typename forward_step4::not_last
+        , iter_fold_if_impl<
+              typename forward_step4::iterator
+            , typename forward_step4::state
+            , ForwardOp
+            , ForwardPredicate
+            , BackwardOp
+            , BackwardPredicate
+            >
+        , iter_fold_if_null_step<
+              typename forward_step4::iterator
+            , typename forward_step4::state
+            >
+        >::type backward_step4;
+
+    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
+    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
+    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
+    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
+    
+
+ public:
+    typedef typename backward_step0::state state;
+    typedef typename backward_step4::iterator iterator;
+};
+
+}}}
index e6bc9b8e6cd6b4a4f38d9f65dcedf2eafa3a7145..1dd216c8aa7cc602ede9a50349e69a924853fff4 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "iter_fold_impl.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl { namespace aux {\r
-\r
-/// forward declaration\r
-\r
-template<\r
-      int N\r
-    , typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct iter_fold_impl;\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >\r
-{\r
-    typedef First iter0;\r
-    typedef State state0;\r
-    typedef state0 state;\r
-    typedef iter0 iterator;\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >\r
-{\r
-    typedef First iter0;\r
-    typedef State state0;\r
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;\r
-    typedef typename mpl::next<iter0>::type iter1;\r
-    \r
-\r
-    typedef state1 state;\r
-    typedef iter1 iterator;\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >\r
-{\r
-    typedef First iter0;\r
-    typedef State state0;\r
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;\r
-    typedef typename mpl::next<iter0>::type iter1;\r
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;\r
-    typedef typename mpl::next<iter1>::type iter2;\r
-    \r
-\r
-    typedef state2 state;\r
-    typedef iter2 iterator;\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >\r
-{\r
-    typedef First iter0;\r
-    typedef State state0;\r
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;\r
-    typedef typename mpl::next<iter0>::type iter1;\r
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;\r
-    typedef typename mpl::next<iter1>::type iter2;\r
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;\r
-    typedef typename mpl::next<iter2>::type iter3;\r
-    \r
-\r
-    typedef state3 state;\r
-    typedef iter3 iterator;\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >\r
-{\r
-    typedef First iter0;\r
-    typedef State state0;\r
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;\r
-    typedef typename mpl::next<iter0>::type iter1;\r
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;\r
-    typedef typename mpl::next<iter1>::type iter2;\r
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;\r
-    typedef typename mpl::next<iter2>::type iter3;\r
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;\r
-    typedef typename mpl::next<iter3>::type iter4;\r
-    \r
-\r
-    typedef state4 state;\r
-    typedef iter4 iterator;\r
-};\r
-\r
-template<\r
-      int N\r
-    , typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct iter_fold_impl\r
-{\r
-    typedef iter_fold_impl<\r
-          4\r
-        , First\r
-        , Last\r
-        , State\r
-        , ForwardOp\r
-        > chunk_;\r
-\r
-    typedef iter_fold_impl<\r
-          ( (N - 4) < 0 ? 0 : N - 4 )\r
-        , typename chunk_::iterator\r
-        , Last\r
-        , typename chunk_::state\r
-        , ForwardOp\r
-        > res_;\r
-\r
-    typedef typename res_::state state;\r
-    typedef typename res_::iterator iterator;\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >\r
-    : iter_fold_impl<\r
-          -1\r
-        , typename mpl::next<First>::type\r
-        , Last\r
-        , typename apply2< ForwardOp,State,First >::type\r
-        , ForwardOp\r
-        >\r
-{\r
-};\r
-\r
-template<\r
-      typename Last\r
-    , typename State\r
-    , typename ForwardOp\r
-    >\r
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >\r
-{\r
-    typedef State state;\r
-    typedef Last iterator;\r
-};\r
-\r
-}}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "iter_fold_impl.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl { namespace aux {
+
+/// forward declaration
+
+template<
+      int N
+    , typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct iter_fold_impl;
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct iter_fold_impl< 0,First,Last,State,ForwardOp >
+{
+    typedef First iter0;
+    typedef State state0;
+    typedef state0 state;
+    typedef iter0 iterator;
+};
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct iter_fold_impl< 1,First,Last,State,ForwardOp >
+{
+    typedef First iter0;
+    typedef State state0;
+    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
+    typedef typename mpl::next<iter0>::type iter1;
+    
+
+    typedef state1 state;
+    typedef iter1 iterator;
+};
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct iter_fold_impl< 2,First,Last,State,ForwardOp >
+{
+    typedef First iter0;
+    typedef State state0;
+    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
+    typedef typename mpl::next<iter0>::type iter1;
+    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
+    typedef typename mpl::next<iter1>::type iter2;
+    
+
+    typedef state2 state;
+    typedef iter2 iterator;
+};
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct iter_fold_impl< 3,First,Last,State,ForwardOp >
+{
+    typedef First iter0;
+    typedef State state0;
+    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
+    typedef typename mpl::next<iter0>::type iter1;
+    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
+    typedef typename mpl::next<iter1>::type iter2;
+    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
+    typedef typename mpl::next<iter2>::type iter3;
+    
+
+    typedef state3 state;
+    typedef iter3 iterator;
+};
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct iter_fold_impl< 4,First,Last,State,ForwardOp >
+{
+    typedef First iter0;
+    typedef State state0;
+    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
+    typedef typename mpl::next<iter0>::type iter1;
+    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
+    typedef typename mpl::next<iter1>::type iter2;
+    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
+    typedef typename mpl::next<iter2>::type iter3;
+    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
+    typedef typename mpl::next<iter3>::type iter4;
+    
+
+    typedef state4 state;
+    typedef iter4 iterator;
+};
+
+template<
+      int N
+    , typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct iter_fold_impl
+{
+    typedef iter_fold_impl<
+          4
+        , First
+        , Last
+        , State
+        , ForwardOp
+        > chunk_;
+
+    typedef iter_fold_impl<
+          ( (N - 4) < 0 ? 0 : N - 4 )
+        , typename chunk_::iterator
+        , Last
+        , typename chunk_::state
+        , ForwardOp
+        > res_;
+
+    typedef typename res_::state state;
+    typedef typename res_::iterator iterator;
+};
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct iter_fold_impl< -1,First,Last,State,ForwardOp >
+    : iter_fold_impl<
+          -1
+        , typename mpl::next<First>::type
+        , Last
+        , typename apply2< ForwardOp,State,First >::type
+        , ForwardOp
+        >
+{
+};
+
+template<
+      typename Last
+    , typename State
+    , typename ForwardOp
+    >
+struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
+{
+    typedef State state;
+    typedef Last iterator;
+};
+
+}}}
index 25957661690aad1105c5f9dccd1293a2cc192877..75b30ce32f8c40f83690adf02b57259c82b9c931 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "lambda_no_ctps.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-namespace aux {\r
-\r
-template<\r
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false\r
-    , bool C5 = false\r
-    >\r
-struct lambda_or\r
-    : true_\r
-{\r
-};\r
-\r
-template<>\r
-struct lambda_or< false,false,false,false,false >\r
-    : false_\r
-{\r
-};\r
-\r
-template< typename Arity > struct lambda_impl\r
-{\r
-    template< typename T, typename Tag, typename Protect > struct result_\r
-    {\r
-        typedef T type;\r
-        typedef is_placeholder<T> is_le;\r
-    };\r
-};\r
-\r
-template<> struct lambda_impl< int_<1> >\r
-{\r
-    template< typename F, typename Tag, typename Protect > struct result_\r
-    {\r
-        typedef lambda< typename F::arg1, Tag, false_ > l1;\r
-        typedef typename l1::is_le is_le1;\r
-        typedef aux::lambda_or<\r
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value\r
-            > is_le;\r
-\r
-        typedef bind1<\r
-              typename F::rebind\r
-            , typename l1::type\r
-            > bind_;\r
-\r
-        typedef typename if_<\r
-              is_le\r
-            , if_< Protect, mpl::protect<bind_>, bind_ >\r
-            , identity<F>\r
-            >::type type_;\r
-\r
-        typedef typename type_::type type;\r
-    };\r
-};\r
-\r
-template<> struct lambda_impl< int_<2> >\r
-{\r
-    template< typename F, typename Tag, typename Protect > struct result_\r
-    {\r
-        typedef lambda< typename F::arg1, Tag, false_ > l1;\r
-        typedef lambda< typename F::arg2, Tag, false_ > l2;\r
-        \r
-        typedef typename l1::is_le is_le1;\r
-        typedef typename l2::is_le is_le2;\r
-        \r
-\r
-        typedef aux::lambda_or<\r
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value\r
-            > is_le;\r
-\r
-        typedef bind2<\r
-              typename F::rebind\r
-            , typename l1::type, typename l2::type\r
-            > bind_;\r
-\r
-        typedef typename if_<\r
-              is_le\r
-            , if_< Protect, mpl::protect<bind_>, bind_ >\r
-            , identity<F>\r
-            >::type type_;\r
-\r
-        typedef typename type_::type type;\r
-    };\r
-};\r
-\r
-template<> struct lambda_impl< int_<3> >\r
-{\r
-    template< typename F, typename Tag, typename Protect > struct result_\r
-    {\r
-        typedef lambda< typename F::arg1, Tag, false_ > l1;\r
-        typedef lambda< typename F::arg2, Tag, false_ > l2;\r
-        typedef lambda< typename F::arg3, Tag, false_ > l3;\r
-        \r
-        typedef typename l1::is_le is_le1;\r
-        typedef typename l2::is_le is_le2;\r
-        typedef typename l3::is_le is_le3;\r
-        \r
-\r
-        typedef aux::lambda_or<\r
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value\r
-            > is_le;\r
-\r
-        typedef bind3<\r
-              typename F::rebind\r
-            , typename l1::type, typename l2::type, typename l3::type\r
-            > bind_;\r
-\r
-        typedef typename if_<\r
-              is_le\r
-            , if_< Protect, mpl::protect<bind_>, bind_ >\r
-            , identity<F>\r
-            >::type type_;\r
-\r
-        typedef typename type_::type type;\r
-    };\r
-};\r
-\r
-template<> struct lambda_impl< int_<4> >\r
-{\r
-    template< typename F, typename Tag, typename Protect > struct result_\r
-    {\r
-        typedef lambda< typename F::arg1, Tag, false_ > l1;\r
-        typedef lambda< typename F::arg2, Tag, false_ > l2;\r
-        typedef lambda< typename F::arg3, Tag, false_ > l3;\r
-        typedef lambda< typename F::arg4, Tag, false_ > l4;\r
-        \r
-        typedef typename l1::is_le is_le1;\r
-        typedef typename l2::is_le is_le2;\r
-        typedef typename l3::is_le is_le3;\r
-        typedef typename l4::is_le is_le4;\r
-        \r
-\r
-        typedef aux::lambda_or<\r
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value\r
-            > is_le;\r
-\r
-        typedef bind4<\r
-              typename F::rebind\r
-            , typename l1::type, typename l2::type, typename l3::type\r
-            , typename l4::type\r
-            > bind_;\r
-\r
-        typedef typename if_<\r
-              is_le\r
-            , if_< Protect, mpl::protect<bind_>, bind_ >\r
-            , identity<F>\r
-            >::type type_;\r
-\r
-        typedef typename type_::type type;\r
-    };\r
-};\r
-\r
-template<> struct lambda_impl< int_<5> >\r
-{\r
-    template< typename F, typename Tag, typename Protect > struct result_\r
-    {\r
-        typedef lambda< typename F::arg1, Tag, false_ > l1;\r
-        typedef lambda< typename F::arg2, Tag, false_ > l2;\r
-        typedef lambda< typename F::arg3, Tag, false_ > l3;\r
-        typedef lambda< typename F::arg4, Tag, false_ > l4;\r
-        typedef lambda< typename F::arg5, Tag, false_ > l5;\r
-        \r
-        typedef typename l1::is_le is_le1;\r
-        typedef typename l2::is_le is_le2;\r
-        typedef typename l3::is_le is_le3;\r
-        typedef typename l4::is_le is_le4;\r
-        typedef typename l5::is_le is_le5;\r
-        \r
-\r
-        typedef aux::lambda_or<\r
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value\r
-            > is_le;\r
-\r
-        typedef bind5<\r
-              typename F::rebind\r
-            , typename l1::type, typename l2::type, typename l3::type\r
-            , typename l4::type, typename l5::type\r
-            > bind_;\r
-\r
-        typedef typename if_<\r
-              is_le\r
-            , if_< Protect, mpl::protect<bind_>, bind_ >\r
-            , identity<F>\r
-            >::type type_;\r
-\r
-        typedef typename type_::type type;\r
-    };\r
-};\r
-\r
-} // namespace aux\r
-\r
-template<\r
-      typename T\r
-    , typename Tag\r
-    , typename Protect\r
-    >\r
-struct lambda\r
-{\r
-    /// Metafunction forwarding confuses MSVC 6.x\r
-    typedef typename aux::template_arity<T>::type arity_;\r
-    typedef typename aux::lambda_impl<arity_>\r
-        ::template result_< T,Tag,Protect > l_;\r
-\r
-    typedef typename l_::type type;\r
-    typedef typename l_::is_le is_le;\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)\r
-\r
-template<\r
-      typename T\r
-    >\r
-struct is_lambda_expression\r
-    : lambda<T>::is_le\r
-{\r
-};\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "lambda_no_ctps.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+namespace aux {
+
+template<
+      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
+    , bool C5 = false
+    >
+struct lambda_or
+    : true_
+{
+};
+
+template<>
+struct lambda_or< false,false,false,false,false >
+    : false_
+{
+};
+
+template< typename Arity > struct lambda_impl
+{
+    template< typename T, typename Tag, typename Protect > struct result_
+    {
+        typedef T type;
+        typedef is_placeholder<T> is_le;
+    };
+};
+
+template<> struct lambda_impl< int_<1> >
+{
+    template< typename F, typename Tag, typename Protect > struct result_
+    {
+        typedef lambda< typename F::arg1, Tag, false_ > l1;
+        typedef typename l1::is_le is_le1;
+        typedef aux::lambda_or<
+              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
+            > is_le;
+
+        typedef bind1<
+              typename F::rebind
+            , typename l1::type
+            > bind_;
+
+        typedef typename if_<
+              is_le
+            , if_< Protect, mpl::protect<bind_>, bind_ >
+            , identity<F>
+            >::type type_;
+
+        typedef typename type_::type type;
+    };
+};
+
+template<> struct lambda_impl< int_<2> >
+{
+    template< typename F, typename Tag, typename Protect > struct result_
+    {
+        typedef lambda< typename F::arg1, Tag, false_ > l1;
+        typedef lambda< typename F::arg2, Tag, false_ > l2;
+        
+        typedef typename l1::is_le is_le1;
+        typedef typename l2::is_le is_le2;
+        
+
+        typedef aux::lambda_or<
+              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
+            > is_le;
+
+        typedef bind2<
+              typename F::rebind
+            , typename l1::type, typename l2::type
+            > bind_;
+
+        typedef typename if_<
+              is_le
+            , if_< Protect, mpl::protect<bind_>, bind_ >
+            , identity<F>
+            >::type type_;
+
+        typedef typename type_::type type;
+    };
+};
+
+template<> struct lambda_impl< int_<3> >
+{
+    template< typename F, typename Tag, typename Protect > struct result_
+    {
+        typedef lambda< typename F::arg1, Tag, false_ > l1;
+        typedef lambda< typename F::arg2, Tag, false_ > l2;
+        typedef lambda< typename F::arg3, Tag, false_ > l3;
+        
+        typedef typename l1::is_le is_le1;
+        typedef typename l2::is_le is_le2;
+        typedef typename l3::is_le is_le3;
+        
+
+        typedef aux::lambda_or<
+              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
+            > is_le;
+
+        typedef bind3<
+              typename F::rebind
+            , typename l1::type, typename l2::type, typename l3::type
+            > bind_;
+
+        typedef typename if_<
+              is_le
+            , if_< Protect, mpl::protect<bind_>, bind_ >
+            , identity<F>
+            >::type type_;
+
+        typedef typename type_::type type;
+    };
+};
+
+template<> struct lambda_impl< int_<4> >
+{
+    template< typename F, typename Tag, typename Protect > struct result_
+    {
+        typedef lambda< typename F::arg1, Tag, false_ > l1;
+        typedef lambda< typename F::arg2, Tag, false_ > l2;
+        typedef lambda< typename F::arg3, Tag, false_ > l3;
+        typedef lambda< typename F::arg4, Tag, false_ > l4;
+        
+        typedef typename l1::is_le is_le1;
+        typedef typename l2::is_le is_le2;
+        typedef typename l3::is_le is_le3;
+        typedef typename l4::is_le is_le4;
+        
+
+        typedef aux::lambda_or<
+              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
+            > is_le;
+
+        typedef bind4<
+              typename F::rebind
+            , typename l1::type, typename l2::type, typename l3::type
+            , typename l4::type
+            > bind_;
+
+        typedef typename if_<
+              is_le
+            , if_< Protect, mpl::protect<bind_>, bind_ >
+            , identity<F>
+            >::type type_;
+
+        typedef typename type_::type type;
+    };
+};
+
+template<> struct lambda_impl< int_<5> >
+{
+    template< typename F, typename Tag, typename Protect > struct result_
+    {
+        typedef lambda< typename F::arg1, Tag, false_ > l1;
+        typedef lambda< typename F::arg2, Tag, false_ > l2;
+        typedef lambda< typename F::arg3, Tag, false_ > l3;
+        typedef lambda< typename F::arg4, Tag, false_ > l4;
+        typedef lambda< typename F::arg5, Tag, false_ > l5;
+        
+        typedef typename l1::is_le is_le1;
+        typedef typename l2::is_le is_le2;
+        typedef typename l3::is_le is_le3;
+        typedef typename l4::is_le is_le4;
+        typedef typename l5::is_le is_le5;
+        
+
+        typedef aux::lambda_or<
+              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
+            > is_le;
+
+        typedef bind5<
+              typename F::rebind
+            , typename l1::type, typename l2::type, typename l3::type
+            , typename l4::type, typename l5::type
+            > bind_;
+
+        typedef typename if_<
+              is_le
+            , if_< Protect, mpl::protect<bind_>, bind_ >
+            , identity<F>
+            >::type type_;
+
+        typedef typename type_::type type;
+    };
+};
+
+} // namespace aux
+
+template<
+      typename T
+    , typename Tag
+    , typename Protect
+    >
+struct lambda
+{
+    /// Metafunction forwarding confuses MSVC 6.x
+    typedef typename aux::template_arity<T>::type arity_;
+    typedef typename aux::lambda_impl<arity_>
+        ::template result_< T,Tag,Protect > l_;
+
+    typedef typename l_::type type;
+    typedef typename l_::is_le is_le;
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
+};
+
+BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
+
+template<
+      typename T
+    >
+struct is_lambda_expression
+    : lambda<T>::is_le
+{
+};
+
+}}
+
index b72f53455d0197a11fc966364e6243a63543ba04..0b6ce1d4bf0b8260e07ee95950562b6f96bd23de 100644 (file)
@@ -1,94 +1,94 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "less.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct less_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct less_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct less_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct less_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct less_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    >\r
-struct less\r
-\r
-    : less_impl<\r
-          typename less_tag<N1>::type\r
-        , typename less_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<>\r
-struct less_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N1, typename N2 > struct apply\r
-\r
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "less.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct less_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct less_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct less_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct less_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct less_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    >
+struct less
+
+    : less_impl<
+          typename less_tag<N1>::type
+        , typename less_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
+
+}}
+
+namespace boost { namespace mpl {
+
+template<>
+struct less_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N1, typename N2 > struct apply
+
+        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
+    {
+    };
+};
+
+}}
index a9362e2bd4172dee8c24ede31b05b02f975b8356..0010e084514944e0b4a5d7f87ae13111a25fb4db 100644 (file)
@@ -1,94 +1,94 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "less_equal.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct less_equal_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct less_equal_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct less_equal_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct less_equal_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct less_equal_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    >\r
-struct less_equal\r
-\r
-    : less_equal_impl<\r
-          typename less_equal_tag<N1>::type\r
-        , typename less_equal_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<>\r
-struct less_equal_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N1, typename N2 > struct apply\r
-\r
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "less_equal.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct less_equal_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct less_equal_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct less_equal_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct less_equal_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct less_equal_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    >
+struct less_equal
+
+    : less_equal_impl<
+          typename less_equal_tag<N1>::type
+        , typename less_equal_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
+
+}}
+
+namespace boost { namespace mpl {
+
+template<>
+struct less_equal_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N1, typename N2 > struct apply
+
+        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+    {
+    };
+};
+
+}}
index 3340e91b9509cf604014e7256ed40c1564dd19b6..cbd58acd863f3a9102692afcc9584aaae1cc1757 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "list.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na\r
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na\r
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na\r
-    , typename T12 = na, typename T13 = na, typename T14 = na\r
-    , typename T15 = na, typename T16 = na, typename T17 = na\r
-    , typename T18 = na, typename T19 = na\r
-    >\r
-struct list;\r
-\r
-template<\r
-     \r
-    >\r
-struct list<\r
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : list0<  >\r
-{\r
-    typedef list0<  >::type type;\r
-};\r
-\r
-template<\r
-      typename T0\r
-    >\r
-struct list<\r
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : list1<T0>\r
-{\r
-    typedef typename list1<T0>::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1\r
-    >\r
-struct list<\r
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : list2< T0,T1 >\r
-{\r
-    typedef typename list2< T0,T1 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2\r
-    >\r
-struct list<\r
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : list3< T0,T1,T2 >\r
-{\r
-    typedef typename list3< T0,T1,T2 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : list4< T0,T1,T2,T3 >\r
-{\r
-    typedef typename list4< T0,T1,T2,T3 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : list5< T0,T1,T2,T3,T4 >\r
-{\r
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : list6< T0,T1,T2,T3,T4,T5 >\r
-{\r
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : list7< T0,T1,T2,T3,T4,T5,T6 >\r
-{\r
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >\r
-{\r
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >\r
-{\r
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >\r
-{\r
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >\r
-{\r
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na\r
-        , na, na, na, na\r
-        >\r
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >\r
-{\r
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na\r
-        , na, na, na, na\r
-        >\r
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >\r
-{\r
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na\r
-        , na, na, na, na\r
-        >\r
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >\r
-{\r
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na\r
-        , na, na, na, na\r
-        >\r
-    : list15<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        >\r
-{\r
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, na, na, na, na\r
-        >\r
-    : list16<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15\r
-        >\r
-{\r
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, na, na, na\r
-        >\r
-    : list17<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16\r
-        >\r
-{\r
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, na, na\r
-        >\r
-    : list18<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17\r
-        >\r
-{\r
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17, typename T18\r
-    >\r
-struct list<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18, na\r
-        >\r
-    : list19<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18\r
-        >\r
-{\r
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;\r
-};\r
-\r
-/// primary template (not a specialization!)\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17, typename T18, typename T19\r
-    >\r
-struct list\r
-    : list20<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18, T19\r
-        >\r
-{\r
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;\r
-};\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "list.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
+    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
+    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
+    , typename T12 = na, typename T13 = na, typename T14 = na
+    , typename T15 = na, typename T16 = na, typename T17 = na
+    , typename T18 = na, typename T19 = na
+    >
+struct list;
+
+template<
+     
+    >
+struct list<
+          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : list0<  >
+{
+    typedef list0<  >::type type;
+};
+
+template<
+      typename T0
+    >
+struct list<
+          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : list1<T0>
+{
+    typedef typename list1<T0>::type type;
+};
+
+template<
+      typename T0, typename T1
+    >
+struct list<
+          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : list2< T0,T1 >
+{
+    typedef typename list2< T0,T1 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2
+    >
+struct list<
+          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : list3< T0,T1,T2 >
+{
+    typedef typename list3< T0,T1,T2 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3
+    >
+struct list<
+          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : list4< T0,T1,T2,T3 >
+{
+    typedef typename list4< T0,T1,T2,T3 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    >
+struct list<
+          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : list5< T0,T1,T2,T3,T4 >
+{
+    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct list<
+          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : list6< T0,T1,T2,T3,T4,T5 >
+{
+    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6
+    >
+struct list<
+          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : list7< T0,T1,T2,T3,T4,T5,T6 >
+{
+    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7
+    >
+struct list<
+          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
+{
+    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8
+    >
+struct list<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
+{
+    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    >
+struct list<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
+{
+    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10
+    >
+struct list<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
+        , na, na, na
+        >
+    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
+{
+    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11
+    >
+struct list<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
+        , na, na, na, na
+        >
+    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
+{
+    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12
+    >
+struct list<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
+        , na, na, na, na
+        >
+    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
+{
+    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13
+    >
+struct list<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
+        , na, na, na, na
+        >
+    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
+{
+    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    >
+struct list<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
+        , na, na, na, na
+        >
+    : list15<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        >
+{
+    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15
+    >
+struct list<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, na, na, na, na
+        >
+    : list16<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15
+        >
+{
+    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16
+    >
+struct list<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, na, na, na
+        >
+    : list17<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16
+        >
+{
+    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17
+    >
+struct list<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, na, na
+        >
+    : list18<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17
+        >
+{
+    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18
+    >
+struct list<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18, na
+        >
+    : list19<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18
+        >
+{
+    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
+};
+
+/// primary template (not a specialization!)
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    >
+struct list
+    : list20<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18, T19
+        >
+{
+    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
+};
+
+}}
+
index 1fc8a10d8ba3964bdec7fce23f9528bd32e05f58..495c3f7f19d5e8698138ffa6b5c4ae40fcc2cf8d 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "list_c.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX\r
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX\r
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX\r
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX\r
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX\r
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX\r
-    , long C18 = LONG_MAX, long C19 = LONG_MAX\r
-    >\r
-struct list_c;\r
-\r
-template<\r
-      typename T\r
-    >\r
-struct list_c<\r
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list0_c<T>\r
-{\r
-    typedef typename list0_c<T>::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0\r
-    >\r
-struct list_c<\r
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list1_c< T,C0 >\r
-{\r
-    typedef typename list1_c< T,C0 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1\r
-    >\r
-struct list_c<\r
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list2_c< T,C0,C1 >\r
-{\r
-    typedef typename list2_c< T,C0,C1 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list3_c< T,C0,C1,C2 >\r
-{\r
-    typedef typename list3_c< T,C0,C1,C2 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list4_c< T,C0,C1,C2,C3 >\r
-{\r
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list5_c< T,C0,C1,C2,C3,C4 >\r
-{\r
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >\r
-{\r
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >\r
-{\r
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX\r
-        >\r
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >\r
-{\r
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX\r
-        >\r
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >\r
-{\r
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX\r
-        >\r
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >\r
-{\r
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >\r
-{\r
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >\r
-{\r
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >\r
-{\r
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list14_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13\r
-        >\r
-{\r
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list15_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        >\r
-{\r
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list16_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15\r
-        >\r
-{\r
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15, long C16\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : list17_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16\r
-        >\r
-{\r
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15, long C16, long C17\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, C17, LONG_MAX, LONG_MAX\r
-        >\r
-    : list18_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, C17\r
-        >\r
-{\r
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15, long C16, long C17, long C18\r
-    >\r
-struct list_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, C17, C18, LONG_MAX\r
-        >\r
-    : list19_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, C17, C18\r
-        >\r
-{\r
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;\r
-};\r
-\r
-/// primary template (not a specialization!)\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
-    >\r
-struct list_c\r
-    : list20_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, C17, C18, C19\r
-        >\r
-{\r
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;\r
-};\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "list_c.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
+    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
+    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
+    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
+    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
+    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
+    , long C18 = LONG_MAX, long C19 = LONG_MAX
+    >
+struct list_c;
+
+template<
+      typename T
+    >
+struct list_c<
+          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list0_c<T>
+{
+    typedef typename list0_c<T>::type type;
+};
+
+template<
+      typename T, long C0
+    >
+struct list_c<
+          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list1_c< T,C0 >
+{
+    typedef typename list1_c< T,C0 >::type type;
+};
+
+template<
+      typename T, long C0, long C1
+    >
+struct list_c<
+          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list2_c< T,C0,C1 >
+{
+    typedef typename list2_c< T,C0,C1 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2
+    >
+struct list_c<
+          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list3_c< T,C0,C1,C2 >
+{
+    typedef typename list3_c< T,C0,C1,C2 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3
+    >
+struct list_c<
+          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list4_c< T,C0,C1,C2,C3 >
+{
+    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list5_c< T,C0,C1,C2,C3,C4 >
+{
+    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list6_c< T,C0,C1,C2,C3,C4,C5 >
+{
+    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
+{
+    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX
+        >
+    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
+{
+    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX
+        >
+    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
+{
+    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX
+        >
+    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
+{
+    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
+{
+    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
+{
+    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
+{
+    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list14_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
+        >
+{
+    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list15_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        >
+{
+    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list16_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15
+        >
+{
+    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15, long C16
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : list17_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16
+        >
+{
+    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15, long C16, long C17
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, C17, LONG_MAX, LONG_MAX
+        >
+    : list18_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, C17
+        >
+{
+    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15, long C16, long C17, long C18
+    >
+struct list_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, C17, C18, LONG_MAX
+        >
+    : list19_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, C17, C18
+        >
+{
+    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
+};
+
+/// primary template (not a specialization!)
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
+    >
+struct list_c
+    : list20_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, C17, C18, C19
+        >
+{
+    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
+};
+
+}}
+
index fd678b40578a2c9a73f5a1c91e8ffc6bceb3cec6..80ef156e4957b06f5da9d5323e03561068c06ca4 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "map.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na\r
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na\r
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na\r
-    , typename T12 = na, typename T13 = na, typename T14 = na\r
-    , typename T15 = na, typename T16 = na, typename T17 = na\r
-    , typename T18 = na, typename T19 = na\r
-    >\r
-struct map;\r
-\r
-template<\r
-     \r
-    >\r
-struct map<\r
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : map0<  >\r
-{\r
-    typedef map0<  >::type type;\r
-};\r
-\r
-template<\r
-      typename T0\r
-    >\r
-struct map<\r
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : map1<T0>\r
-{\r
-    typedef typename map1<T0>::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1\r
-    >\r
-struct map<\r
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : map2< T0,T1 >\r
-{\r
-    typedef typename map2< T0,T1 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2\r
-    >\r
-struct map<\r
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : map3< T0,T1,T2 >\r
-{\r
-    typedef typename map3< T0,T1,T2 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : map4< T0,T1,T2,T3 >\r
-{\r
-    typedef typename map4< T0,T1,T2,T3 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : map5< T0,T1,T2,T3,T4 >\r
-{\r
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : map6< T0,T1,T2,T3,T4,T5 >\r
-{\r
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : map7< T0,T1,T2,T3,T4,T5,T6 >\r
-{\r
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >\r
-{\r
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >\r
-{\r
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >\r
-{\r
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >\r
-{\r
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na\r
-        , na, na, na, na\r
-        >\r
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >\r
-{\r
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na\r
-        , na, na, na, na\r
-        >\r
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >\r
-{\r
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na\r
-        , na, na, na, na\r
-        >\r
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >\r
-{\r
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na\r
-        , na, na, na, na\r
-        >\r
-    : map15<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        >\r
-{\r
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, na, na, na, na\r
-        >\r
-    : map16<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15\r
-        >\r
-{\r
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, na, na, na\r
-        >\r
-    : map17<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16\r
-        >\r
-{\r
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, na, na\r
-        >\r
-    : map18<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17\r
-        >\r
-{\r
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17, typename T18\r
-    >\r
-struct map<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18, na\r
-        >\r
-    : map19<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18\r
-        >\r
-{\r
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;\r
-};\r
-\r
-/// primary template (not a specialization!)\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17, typename T18, typename T19\r
-    >\r
-struct map\r
-    : map20<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18, T19\r
-        >\r
-{\r
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;\r
-};\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "map.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
+    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
+    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
+    , typename T12 = na, typename T13 = na, typename T14 = na
+    , typename T15 = na, typename T16 = na, typename T17 = na
+    , typename T18 = na, typename T19 = na
+    >
+struct map;
+
+template<
+     
+    >
+struct map<
+          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : map0<  >
+{
+    typedef map0<  >::type type;
+};
+
+template<
+      typename T0
+    >
+struct map<
+          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : map1<T0>
+{
+    typedef typename map1<T0>::type type;
+};
+
+template<
+      typename T0, typename T1
+    >
+struct map<
+          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : map2< T0,T1 >
+{
+    typedef typename map2< T0,T1 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2
+    >
+struct map<
+          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : map3< T0,T1,T2 >
+{
+    typedef typename map3< T0,T1,T2 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3
+    >
+struct map<
+          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : map4< T0,T1,T2,T3 >
+{
+    typedef typename map4< T0,T1,T2,T3 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    >
+struct map<
+          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : map5< T0,T1,T2,T3,T4 >
+{
+    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct map<
+          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : map6< T0,T1,T2,T3,T4,T5 >
+{
+    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6
+    >
+struct map<
+          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : map7< T0,T1,T2,T3,T4,T5,T6 >
+{
+    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7
+    >
+struct map<
+          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
+{
+    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8
+    >
+struct map<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
+{
+    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    >
+struct map<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
+{
+    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10
+    >
+struct map<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
+        , na, na, na
+        >
+    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
+{
+    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11
+    >
+struct map<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
+        , na, na, na, na
+        >
+    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
+{
+    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12
+    >
+struct map<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
+        , na, na, na, na
+        >
+    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
+{
+    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13
+    >
+struct map<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
+        , na, na, na, na
+        >
+    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
+{
+    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    >
+struct map<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
+        , na, na, na, na
+        >
+    : map15<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        >
+{
+    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15
+    >
+struct map<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, na, na, na, na
+        >
+    : map16<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15
+        >
+{
+    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16
+    >
+struct map<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, na, na, na
+        >
+    : map17<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16
+        >
+{
+    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17
+    >
+struct map<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, na, na
+        >
+    : map18<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17
+        >
+{
+    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18
+    >
+struct map<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18, na
+        >
+    : map19<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18
+        >
+{
+    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
+};
+
+/// primary template (not a specialization!)
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    >
+struct map
+    : map20<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18, T19
+        >
+{
+    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
+};
+
+}}
+
index c8f70d2559d95712e88d18cfd215b0501d85ac57..cfddc15b78755ed62e6168531ce47bc77f2cade1 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "minus.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct minus_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct minus_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct minus_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct minus_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct minus_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    , typename N3 = na, typename N4 = na, typename N5 = na\r
-    >\r
-struct minus\r
-    : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          5\r
-        , minus\r
-        , ( N1, N2, N3, N4, N5 )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2, typename N3, typename N4\r
-    >\r
-struct minus< N1,N2,N3,N4,na >\r
-\r
-    : minus< minus< minus< N1,N2 >, N3>, N4>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , minus\r
-        , ( N1, N2, N3, N4, na )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2, typename N3\r
-    >\r
-struct minus< N1,N2,N3,na,na >\r
-\r
-    : minus< minus< N1,N2 >, N3>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , minus\r
-        , ( N1, N2, N3, na, na )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2\r
-    >\r
-struct minus< N1,N2,na,na,na >\r
-    : minus_impl<\r
-          typename minus_tag<N1>::type\r
-        , typename minus_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , minus\r
-        , ( N1, N2, na, na, na )\r
-        )\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-template<>\r
-struct minus_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N1, typename N2 > struct apply\r
-\r
-        : integral_c<\r
-              typename aux::largest_int<\r
-                  typename N1::value_type\r
-                , typename N2::value_type\r
-                >::type\r
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
-                )\r
-            >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "minus.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct minus_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct minus_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct minus_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct minus_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct minus_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    , typename N3 = na, typename N4 = na, typename N5 = na
+    >
+struct minus
+    : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          5
+        , minus
+        , ( N1, N2, N3, N4, N5 )
+        )
+};
+
+template<
+      typename N1, typename N2, typename N3, typename N4
+    >
+struct minus< N1,N2,N3,N4,na >
+
+    : minus< minus< minus< N1,N2 >, N3>, N4>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , minus
+        , ( N1, N2, N3, N4, na )
+        )
+};
+
+template<
+      typename N1, typename N2, typename N3
+    >
+struct minus< N1,N2,N3,na,na >
+
+    : minus< minus< N1,N2 >, N3>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , minus
+        , ( N1, N2, N3, na, na )
+        )
+};
+
+template<
+      typename N1, typename N2
+    >
+struct minus< N1,N2,na,na,na >
+    : minus_impl<
+          typename minus_tag<N1>::type
+        , typename minus_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , minus
+        , ( N1, N2, na, na, na )
+        )
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
+
+}}
+
+namespace boost { namespace mpl {
+template<>
+struct minus_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N1, typename N2 > struct apply
+
+        : integral_c<
+              typename aux::largest_int<
+                  typename N1::value_type
+                , typename N2::value_type
+                >::type
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
+                )
+            >
+    {
+    };
+};
+
+}}
index 1d30682be19af391c772699e8db1f6a91cc0e541..eb5eff07e295b6a53f77af69c694d1f9e26a4a30 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "modulus.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct modulus_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct modulus_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct modulus_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct modulus_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct modulus_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    >\r
-struct modulus\r
-\r
-    : modulus_impl<\r
-          typename modulus_tag<N1>::type\r
-        , typename modulus_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-template<>\r
-struct modulus_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N1, typename N2 > struct apply\r
-\r
-        : integral_c<\r
-              typename aux::largest_int<\r
-                  typename N1::value_type\r
-                , typename N2::value_type\r
-                >::type\r
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
-                )\r
-            >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "modulus.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct modulus_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct modulus_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct modulus_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct modulus_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct modulus_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    >
+struct modulus
+
+    : modulus_impl<
+          typename modulus_tag<N1>::type
+        , typename modulus_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
+
+}}
+
+namespace boost { namespace mpl {
+template<>
+struct modulus_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N1, typename N2 > struct apply
+
+        : integral_c<
+              typename aux::largest_int<
+                  typename N1::value_type
+                , typename N2::value_type
+                >::type
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
+                )
+            >
+    {
+    };
+};
+
+}}
index 76a415274a489640345b8036817e8851668e8fe9..68356eee4d8560224926e569d1d1a6eb01be0fa9 100644 (file)
@@ -1,94 +1,94 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "not_equal_to.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct not_equal_to_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct not_equal_to_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct not_equal_to_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct not_equal_to_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct not_equal_to_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    >\r
-struct not_equal_to\r
-\r
-    : not_equal_to_impl<\r
-          typename not_equal_to_tag<N1>::type\r
-        , typename not_equal_to_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<>\r
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N1, typename N2 > struct apply\r
-\r
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "not_equal_to.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct not_equal_to_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct not_equal_to_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct not_equal_to_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct not_equal_to_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct not_equal_to_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    >
+struct not_equal_to
+
+    : not_equal_to_impl<
+          typename not_equal_to_tag<N1>::type
+        , typename not_equal_to_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
+
+}}
+
+namespace boost { namespace mpl {
+
+template<>
+struct not_equal_to_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N1, typename N2 > struct apply
+
+        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
+    {
+    };
+};
+
+}}
index 0a62060c3bfbf8770f1a9ddc1d3a84174b8e9dd9..ff7ce9fd5879e67ca2ed38f8907e03b1867c513d 100644 (file)
@@ -1,69 +1,69 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "or.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-namespace aux {\r
-\r
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >\r
-struct or_impl\r
-    : true_\r
-{\r
-};\r
-\r
-template< typename T1, typename T2, typename T3, typename T4 >\r
-struct or_impl< false,T1,T2,T3,T4 >\r
-    : or_impl<\r
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value\r
-        , T2, T3, T4\r
-        , false_\r
-        >\r
-{\r
-};\r
-\r
-template<>\r
-struct or_impl<\r
-          false\r
-        , false_, false_, false_, false_\r
-        >\r
-    : false_\r
-{\r
-};\r
-\r
-} // namespace aux\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(T1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)\r
-    , typename T3 = false_, typename T4 = false_, typename T5 = false_\r
-    >\r
-struct or_\r
-\r
-    : aux::or_impl<\r
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value\r
-        , T2, T3, T4, T5\r
-        >\r
-\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          5\r
-        , or_\r
-        , ( T1, T2, T3, T4, T5)\r
-        )\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(\r
-      2\r
-    , 5\r
-    , or_\r
-    )\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "or.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+namespace aux {
+
+template< bool C_, typename T1, typename T2, typename T3, typename T4 >
+struct or_impl
+    : true_
+{
+};
+
+template< typename T1, typename T2, typename T3, typename T4 >
+struct or_impl< false,T1,T2,T3,T4 >
+    : or_impl<
+          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+        , T2, T3, T4
+        , false_
+        >
+{
+};
+
+template<>
+struct or_impl<
+          false
+        , false_, false_, false_, false_
+        >
+    : false_
+{
+};
+
+} // namespace aux
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(T1)
+    , typename BOOST_MPL_AUX_NA_PARAM(T2)
+    , typename T3 = false_, typename T4 = false_, typename T5 = false_
+    >
+struct or_
+
+    : aux::or_impl<
+          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
+        , T2, T3, T4, T5
+        >
+
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          5
+        , or_
+        , ( T1, T2, T3, T4, T5)
+        )
+};
+
+BOOST_MPL_AUX_NA_SPEC2(
+      2
+    , 5
+    , or_
+    )
+
+}}
index ea973c8d4e31cef5b6e0669c41d779756c82aaa9..b306bbbcb9c2eb24c51be47cb649e379487b7489 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2001-2004\r
-// Copyright Peter Dimov 2001-2003\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "placeholders.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
-typedef arg< -1 > _;\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
-namespace boost { namespace mpl {\r
-\r
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)\r
-\r
-namespace placeholders {\r
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;\r
-}\r
-\r
-}}\r
-\r
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' \r
-/// specialization\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
-typedef arg<1> _1;\r
-\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
-namespace boost { namespace mpl {\r
-\r
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)\r
-\r
-namespace placeholders {\r
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;\r
-}\r
-\r
-}}\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
-typedef arg<2> _2;\r
-\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
-namespace boost { namespace mpl {\r
-\r
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)\r
-\r
-namespace placeholders {\r
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;\r
-}\r
-\r
-}}\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
-typedef arg<3> _3;\r
-\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
-namespace boost { namespace mpl {\r
-\r
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)\r
-\r
-namespace placeholders {\r
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;\r
-}\r
-\r
-}}\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
-typedef arg<4> _4;\r
-\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
-namespace boost { namespace mpl {\r
-\r
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)\r
-\r
-namespace placeholders {\r
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;\r
-}\r
-\r
-}}\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
-typedef arg<5> _5;\r
-\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
-namespace boost { namespace mpl {\r
-\r
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)\r
-\r
-namespace placeholders {\r
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;\r
-}\r
-\r
-}}\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
-typedef arg<6> _6;\r
-\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
-namespace boost { namespace mpl {\r
-\r
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)\r
-\r
-namespace placeholders {\r
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;\r
-}\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2001-2004
+// Copyright Peter Dimov 2001-2003
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// *Preprocessed* version of the main "placeholders.hpp" header
+// -- DO NOT modify by hand!
+
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+typedef arg< -1 > _;
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+namespace boost { namespace mpl {
+
+BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
+
+namespace placeholders {
+using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
+}
+
+}}
+
+/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
+/// specialization
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+typedef arg<1> _1;
+
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+namespace boost { namespace mpl {
+
+BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
+
+namespace placeholders {
+using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
+}
+
+}}
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+typedef arg<2> _2;
+
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+namespace boost { namespace mpl {
+
+BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
+
+namespace placeholders {
+using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
+}
+
+}}
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+typedef arg<3> _3;
+
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+namespace boost { namespace mpl {
+
+BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
+
+namespace placeholders {
+using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
+}
+
+}}
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+typedef arg<4> _4;
+
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+namespace boost { namespace mpl {
+
+BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
+
+namespace placeholders {
+using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
+}
+
+}}
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+typedef arg<5> _5;
+
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+namespace boost { namespace mpl {
+
+BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
+
+namespace placeholders {
+using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
+}
+
+}}
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+typedef arg<6> _6;
+
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+namespace boost { namespace mpl {
+
+BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
+
+namespace placeholders {
+using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
+}
+
+}}
index 6a9a4a01f2f4ec53b91815441b5ffb78c0893c55..82539abc4c8e357d35a1e85784b46ef3c6a6881a 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "plus.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct plus_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct plus_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct plus_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct plus_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct plus_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    , typename N3 = na, typename N4 = na, typename N5 = na\r
-    >\r
-struct plus\r
-    : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          5\r
-        , plus\r
-        , ( N1, N2, N3, N4, N5 )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2, typename N3, typename N4\r
-    >\r
-struct plus< N1,N2,N3,N4,na >\r
-\r
-    : plus< plus< plus< N1,N2 >, N3>, N4>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , plus\r
-        , ( N1, N2, N3, N4, na )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2, typename N3\r
-    >\r
-struct plus< N1,N2,N3,na,na >\r
-\r
-    : plus< plus< N1,N2 >, N3>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , plus\r
-        , ( N1, N2, N3, na, na )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2\r
-    >\r
-struct plus< N1,N2,na,na,na >\r
-    : plus_impl<\r
-          typename plus_tag<N1>::type\r
-        , typename plus_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , plus\r
-        , ( N1, N2, na, na, na )\r
-        )\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-template<>\r
-struct plus_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N1, typename N2 > struct apply\r
-\r
-        : integral_c<\r
-              typename aux::largest_int<\r
-                  typename N1::value_type\r
-                , typename N2::value_type\r
-                >::type\r
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
-                )\r
-            >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "plus.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct plus_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct plus_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct plus_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct plus_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct plus_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    , typename N3 = na, typename N4 = na, typename N5 = na
+    >
+struct plus
+    : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          5
+        , plus
+        , ( N1, N2, N3, N4, N5 )
+        )
+};
+
+template<
+      typename N1, typename N2, typename N3, typename N4
+    >
+struct plus< N1,N2,N3,N4,na >
+
+    : plus< plus< plus< N1,N2 >, N3>, N4>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , plus
+        , ( N1, N2, N3, N4, na )
+        )
+};
+
+template<
+      typename N1, typename N2, typename N3
+    >
+struct plus< N1,N2,N3,na,na >
+
+    : plus< plus< N1,N2 >, N3>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , plus
+        , ( N1, N2, N3, na, na )
+        )
+};
+
+template<
+      typename N1, typename N2
+    >
+struct plus< N1,N2,na,na,na >
+    : plus_impl<
+          typename plus_tag<N1>::type
+        , typename plus_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , plus
+        , ( N1, N2, na, na, na )
+        )
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
+
+}}
+
+namespace boost { namespace mpl {
+template<>
+struct plus_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N1, typename N2 > struct apply
+
+        : integral_c<
+              typename aux::largest_int<
+                  typename N1::value_type
+                , typename N2::value_type
+                >::type
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
+                )
+            >
+    {
+    };
+};
+
+}}
index 8eaab71ed1ea2a4ebfd2f292ece646ffc610256a..7f9d18bc306a4cbb9c71a6a1acf6ecf97ae56623 100644 (file)
@@ -1,11 +1,11 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2008\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "quote.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2008
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "quote.hpp" header
+// -- DO NOT modify by hand!
+
index e453bcade71c0fa8666996b72f31715ab4949548..372f0d260ae7993c0ed7e8add707af1875487d75 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "reverse_fold_impl.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl { namespace aux {\r
-\r
-/// forward declaration\r
-\r
-template<\r
-      long N\r
-    , typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename BackwardOp\r
-    , typename ForwardOp\r
-    >\r
-struct reverse_fold_impl;\r
-\r
-template< long N >\r
-struct reverse_fold_chunk;\r
-\r
-template<> struct reverse_fold_chunk<0>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef fwd_state0 bkwd_state0;\r
-        typedef bkwd_state0 state;\r
-        typedef iter0 iterator;\r
-    };\r
-};\r
-\r
-template<> struct reverse_fold_chunk<1>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        \r
-\r
-        typedef fwd_state1 bkwd_state1;\r
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
-        typedef bkwd_state0 state;\r
-        typedef iter1 iterator;\r
-    };\r
-};\r
-\r
-template<> struct reverse_fold_chunk<2>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;\r
-        typedef typename mpl::next<iter1>::type iter2;\r
-        \r
-\r
-        typedef fwd_state2 bkwd_state2;\r
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;\r
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
-        \r
-\r
-        typedef bkwd_state0 state;\r
-        typedef iter2 iterator;\r
-    };\r
-};\r
-\r
-template<> struct reverse_fold_chunk<3>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;\r
-        typedef typename mpl::next<iter1>::type iter2;\r
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;\r
-        typedef typename mpl::next<iter2>::type iter3;\r
-        \r
-\r
-        typedef fwd_state3 bkwd_state3;\r
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;\r
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;\r
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
-        \r
-\r
-        typedef bkwd_state0 state;\r
-        typedef iter3 iterator;\r
-    };\r
-};\r
-\r
-template<> struct reverse_fold_chunk<4>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;\r
-        typedef typename mpl::next<iter1>::type iter2;\r
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;\r
-        typedef typename mpl::next<iter2>::type iter3;\r
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;\r
-        typedef typename mpl::next<iter3>::type iter4;\r
-        \r
-\r
-        typedef fwd_state4 bkwd_state4;\r
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;\r
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;\r
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;\r
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
-        \r
-\r
-        typedef bkwd_state0 state;\r
-        typedef iter4 iterator;\r
-    };\r
-};\r
-\r
-template< long N >\r
-struct reverse_fold_chunk\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;\r
-        typedef typename mpl::next<iter1>::type iter2;\r
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;\r
-        typedef typename mpl::next<iter2>::type iter3;\r
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;\r
-        typedef typename mpl::next<iter3>::type iter4;\r
-        \r
-\r
-        typedef reverse_fold_impl<\r
-              ( (N - 4) < 0 ? 0 : N - 4 )\r
-            , iter4\r
-            , Last\r
-            , fwd_state4\r
-            , BackwardOp\r
-            , ForwardOp\r
-            > nested_chunk;\r
-\r
-        typedef typename nested_chunk::state bkwd_state4;\r
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;\r
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;\r
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;\r
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
-        \r
-\r
-        typedef bkwd_state0 state;\r
-        typedef typename nested_chunk::iterator iterator;\r
-    };\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename BackwardOp\r
-    , typename ForwardOp\r
-    >\r
-struct reverse_fold_step;\r
-\r
-template<\r
-      typename Last\r
-    , typename State\r
-    >\r
-struct reverse_fold_null_step\r
-{\r
-    typedef Last iterator;\r
-    typedef State state;\r
-};\r
-\r
-template<>\r
-struct reverse_fold_chunk< -1 >\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef typename if_<\r
-              typename is_same< First,Last >::type\r
-            , reverse_fold_null_step< Last,State >\r
-            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >\r
-            >::type res_;\r
-\r
-        typedef typename res_::state state;\r
-        typedef typename res_::iterator iterator;\r
-    };\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename BackwardOp\r
-    , typename ForwardOp\r
-    >\r
-struct reverse_fold_step\r
-{\r
-    typedef reverse_fold_chunk< -1 >::template result_<\r
-          typename mpl::next<First>::type\r
-        , Last\r
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type\r
-        , BackwardOp\r
-        , ForwardOp\r
-        > nested_step;\r
-\r
-    typedef typename apply2<\r
-          BackwardOp\r
-        , typename nested_step::state\r
-        , typename deref<First>::type\r
-        >::type state;\r
-\r
-    typedef typename nested_step::iterator iterator;\r
-};\r
-\r
-template<\r
-      long N\r
-    , typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename BackwardOp\r
-    , typename ForwardOp\r
-    >\r
-struct reverse_fold_impl\r
-    : reverse_fold_chunk<N>\r
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >\r
-{\r
-};\r
-\r
-}}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "reverse_fold_impl.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl { namespace aux {
+
+/// forward declaration
+
+template<
+      long N
+    , typename First
+    , typename Last
+    , typename State
+    , typename BackwardOp
+    , typename ForwardOp
+    >
+struct reverse_fold_impl;
+
+template< long N >
+struct reverse_fold_chunk;
+
+template<> struct reverse_fold_chunk<0>
+{
+    template<
+          typename First
+        , typename Last
+        , typename State
+        , typename BackwardOp
+        , typename ForwardOp
+        >
+    struct result_
+    {
+        typedef First iter0;
+        typedef State fwd_state0;
+        typedef fwd_state0 bkwd_state0;
+        typedef bkwd_state0 state;
+        typedef iter0 iterator;
+    };
+};
+
+template<> struct reverse_fold_chunk<1>
+{
+    template<
+          typename First
+        , typename Last
+        , typename State
+        , typename BackwardOp
+        , typename ForwardOp
+        >
+    struct result_
+    {
+        typedef First iter0;
+        typedef State fwd_state0;
+        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
+        typedef typename mpl::next<iter0>::type iter1;
+        
+
+        typedef fwd_state1 bkwd_state1;
+        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
+        typedef bkwd_state0 state;
+        typedef iter1 iterator;
+    };
+};
+
+template<> struct reverse_fold_chunk<2>
+{
+    template<
+          typename First
+        , typename Last
+        , typename State
+        , typename BackwardOp
+        , typename ForwardOp
+        >
+    struct result_
+    {
+        typedef First iter0;
+        typedef State fwd_state0;
+        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
+        typedef typename mpl::next<iter0>::type iter1;
+        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
+        typedef typename mpl::next<iter1>::type iter2;
+        
+
+        typedef fwd_state2 bkwd_state2;
+        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
+        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
+        
+
+        typedef bkwd_state0 state;
+        typedef iter2 iterator;
+    };
+};
+
+template<> struct reverse_fold_chunk<3>
+{
+    template<
+          typename First
+        , typename Last
+        , typename State
+        , typename BackwardOp
+        , typename ForwardOp
+        >
+    struct result_
+    {
+        typedef First iter0;
+        typedef State fwd_state0;
+        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
+        typedef typename mpl::next<iter0>::type iter1;
+        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
+        typedef typename mpl::next<iter1>::type iter2;
+        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
+        typedef typename mpl::next<iter2>::type iter3;
+        
+
+        typedef fwd_state3 bkwd_state3;
+        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
+        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
+        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
+        
+
+        typedef bkwd_state0 state;
+        typedef iter3 iterator;
+    };
+};
+
+template<> struct reverse_fold_chunk<4>
+{
+    template<
+          typename First
+        , typename Last
+        , typename State
+        , typename BackwardOp
+        , typename ForwardOp
+        >
+    struct result_
+    {
+        typedef First iter0;
+        typedef State fwd_state0;
+        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
+        typedef typename mpl::next<iter0>::type iter1;
+        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
+        typedef typename mpl::next<iter1>::type iter2;
+        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
+        typedef typename mpl::next<iter2>::type iter3;
+        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
+        typedef typename mpl::next<iter3>::type iter4;
+        
+
+        typedef fwd_state4 bkwd_state4;
+        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
+        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
+        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
+        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
+        
+
+        typedef bkwd_state0 state;
+        typedef iter4 iterator;
+    };
+};
+
+template< long N >
+struct reverse_fold_chunk
+{
+    template<
+          typename First
+        , typename Last
+        , typename State
+        , typename BackwardOp
+        , typename ForwardOp
+        >
+    struct result_
+    {
+        typedef First iter0;
+        typedef State fwd_state0;
+        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
+        typedef typename mpl::next<iter0>::type iter1;
+        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
+        typedef typename mpl::next<iter1>::type iter2;
+        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
+        typedef typename mpl::next<iter2>::type iter3;
+        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
+        typedef typename mpl::next<iter3>::type iter4;
+        
+
+        typedef reverse_fold_impl<
+              ( (N - 4) < 0 ? 0 : N - 4 )
+            , iter4
+            , Last
+            , fwd_state4
+            , BackwardOp
+            , ForwardOp
+            > nested_chunk;
+
+        typedef typename nested_chunk::state bkwd_state4;
+        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
+        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
+        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
+        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
+        
+
+        typedef bkwd_state0 state;
+        typedef typename nested_chunk::iterator iterator;
+    };
+};
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename BackwardOp
+    , typename ForwardOp
+    >
+struct reverse_fold_step;
+
+template<
+      typename Last
+    , typename State
+    >
+struct reverse_fold_null_step
+{
+    typedef Last iterator;
+    typedef State state;
+};
+
+template<>
+struct reverse_fold_chunk< -1 >
+{
+    template<
+          typename First
+        , typename Last
+        , typename State
+        , typename BackwardOp
+        , typename ForwardOp
+        >
+    struct result_
+    {
+        typedef typename if_<
+              typename is_same< First,Last >::type
+            , reverse_fold_null_step< Last,State >
+            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >
+            >::type res_;
+
+        typedef typename res_::state state;
+        typedef typename res_::iterator iterator;
+    };
+};
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename BackwardOp
+    , typename ForwardOp
+    >
+struct reverse_fold_step
+{
+    typedef reverse_fold_chunk< -1 >::template result_<
+          typename mpl::next<First>::type
+        , Last
+        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
+        , BackwardOp
+        , ForwardOp
+        > nested_step;
+
+    typedef typename apply2<
+          BackwardOp
+        , typename nested_step::state
+        , typename deref<First>::type
+        >::type state;
+
+    typedef typename nested_step::iterator iterator;
+};
+
+template<
+      long N
+    , typename First
+    , typename Last
+    , typename State
+    , typename BackwardOp
+    , typename ForwardOp
+    >
+struct reverse_fold_impl
+    : reverse_fold_chunk<N>
+        ::template result_< First,Last,State,BackwardOp,ForwardOp >
+{
+};
+
+}}}
index 454ed8ee0979de4fb7939fc7b4fe550391e0361d..44aadf7a6d20975d0faa6877b987747a8542c375 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "reverse_iter_fold_impl.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl { namespace aux {\r
-\r
-/// forward declaration\r
-\r
-template<\r
-      long N\r
-    , typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename BackwardOp\r
-    , typename ForwardOp\r
-    >\r
-struct reverse_iter_fold_impl;\r
-\r
-template< long N >\r
-struct reverse_iter_fold_chunk;\r
-\r
-template<> struct reverse_iter_fold_chunk<0>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef fwd_state0 bkwd_state0;\r
-        typedef bkwd_state0 state;\r
-        typedef iter0 iterator;\r
-    };\r
-};\r
-\r
-template<> struct reverse_iter_fold_chunk<1>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        \r
-\r
-        typedef fwd_state1 bkwd_state1;\r
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;\r
-        typedef bkwd_state0 state;\r
-        typedef iter1 iterator;\r
-    };\r
-};\r
-\r
-template<> struct reverse_iter_fold_chunk<2>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;\r
-        typedef typename mpl::next<iter1>::type iter2;\r
-        \r
-\r
-        typedef fwd_state2 bkwd_state2;\r
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;\r
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;\r
-        \r
-\r
-        typedef bkwd_state0 state;\r
-        typedef iter2 iterator;\r
-    };\r
-};\r
-\r
-template<> struct reverse_iter_fold_chunk<3>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;\r
-        typedef typename mpl::next<iter1>::type iter2;\r
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;\r
-        typedef typename mpl::next<iter2>::type iter3;\r
-        \r
-\r
-        typedef fwd_state3 bkwd_state3;\r
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;\r
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;\r
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;\r
-        \r
-\r
-        typedef bkwd_state0 state;\r
-        typedef iter3 iterator;\r
-    };\r
-};\r
-\r
-template<> struct reverse_iter_fold_chunk<4>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;\r
-        typedef typename mpl::next<iter1>::type iter2;\r
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;\r
-        typedef typename mpl::next<iter2>::type iter3;\r
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;\r
-        typedef typename mpl::next<iter3>::type iter4;\r
-        \r
-\r
-        typedef fwd_state4 bkwd_state4;\r
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;\r
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;\r
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;\r
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;\r
-        \r
-\r
-        typedef bkwd_state0 state;\r
-        typedef iter4 iterator;\r
-    };\r
-};\r
-\r
-template< long N >\r
-struct reverse_iter_fold_chunk\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;\r
-        typedef typename mpl::next<iter1>::type iter2;\r
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;\r
-        typedef typename mpl::next<iter2>::type iter3;\r
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;\r
-        typedef typename mpl::next<iter3>::type iter4;\r
-        \r
-\r
-        typedef reverse_iter_fold_impl<\r
-              ( (N - 4) < 0 ? 0 : N - 4 )\r
-            , iter4\r
-            , Last\r
-            , fwd_state4\r
-            , BackwardOp\r
-            , ForwardOp\r
-            > nested_chunk;\r
-\r
-        typedef typename nested_chunk::state bkwd_state4;\r
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;\r
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;\r
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;\r
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;\r
-        \r
-\r
-        typedef bkwd_state0 state;\r
-        typedef typename nested_chunk::iterator iterator;\r
-    };\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename BackwardOp\r
-    , typename ForwardOp\r
-    >\r
-struct reverse_iter_fold_step;\r
-\r
-template<\r
-      typename Last\r
-    , typename State\r
-    >\r
-struct reverse_iter_fold_null_step\r
-{\r
-    typedef Last iterator;\r
-    typedef State state;\r
-};\r
-\r
-template<>\r
-struct reverse_iter_fold_chunk< -1 >\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef typename if_<\r
-              typename is_same< First,Last >::type\r
-            , reverse_iter_fold_null_step< Last,State >\r
-            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >\r
-            >::type res_;\r
-\r
-        typedef typename res_::state state;\r
-        typedef typename res_::iterator iterator;\r
-    };\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename BackwardOp\r
-    , typename ForwardOp\r
-    >\r
-struct reverse_iter_fold_step\r
-{\r
-    typedef reverse_iter_fold_chunk< -1 >::template result_<\r
-          typename mpl::next<First>::type\r
-        , Last\r
-        , typename apply2< ForwardOp,State,First >::type\r
-        , BackwardOp\r
-        , ForwardOp\r
-        > nested_step;\r
-\r
-    typedef typename apply2<\r
-          BackwardOp\r
-        , typename nested_step::state\r
-        , First\r
-        >::type state;\r
-\r
-    typedef typename nested_step::iterator iterator;\r
-};\r
-\r
-template<\r
-      long N\r
-    , typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename BackwardOp\r
-    , typename ForwardOp\r
-    >\r
-struct reverse_iter_fold_impl\r
-    : reverse_iter_fold_chunk<N>\r
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >\r
-{\r
-};\r
-\r
-}}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "reverse_iter_fold_impl.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl { namespace aux {
+
+/// forward declaration
+
+template<
+      long N
+    , typename First
+    , typename Last
+    , typename State
+    , typename BackwardOp
+    , typename ForwardOp
+    >
+struct reverse_iter_fold_impl;
+
+template< long N >
+struct reverse_iter_fold_chunk;
+
+template<> struct reverse_iter_fold_chunk<0>
+{
+    template<
+          typename First
+        , typename Last
+        , typename State
+        , typename BackwardOp
+        , typename ForwardOp
+        >
+    struct result_
+    {
+        typedef First iter0;
+        typedef State fwd_state0;
+        typedef fwd_state0 bkwd_state0;
+        typedef bkwd_state0 state;
+        typedef iter0 iterator;
+    };
+};
+
+template<> struct reverse_iter_fold_chunk<1>
+{
+    template<
+          typename First
+        , typename Last
+        , typename State
+        , typename BackwardOp
+        , typename ForwardOp
+        >
+    struct result_
+    {
+        typedef First iter0;
+        typedef State fwd_state0;
+        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
+        typedef typename mpl::next<iter0>::type iter1;
+        
+
+        typedef fwd_state1 bkwd_state1;
+        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
+        typedef bkwd_state0 state;
+        typedef iter1 iterator;
+    };
+};
+
+template<> struct reverse_iter_fold_chunk<2>
+{
+    template<
+          typename First
+        , typename Last
+        , typename State
+        , typename BackwardOp
+        , typename ForwardOp
+        >
+    struct result_
+    {
+        typedef First iter0;
+        typedef State fwd_state0;
+        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
+        typedef typename mpl::next<iter0>::type iter1;
+        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
+        typedef typename mpl::next<iter1>::type iter2;
+        
+
+        typedef fwd_state2 bkwd_state2;
+        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
+        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
+        
+
+        typedef bkwd_state0 state;
+        typedef iter2 iterator;
+    };
+};
+
+template<> struct reverse_iter_fold_chunk<3>
+{
+    template<
+          typename First
+        , typename Last
+        , typename State
+        , typename BackwardOp
+        , typename ForwardOp
+        >
+    struct result_
+    {
+        typedef First iter0;
+        typedef State fwd_state0;
+        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
+        typedef typename mpl::next<iter0>::type iter1;
+        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
+        typedef typename mpl::next<iter1>::type iter2;
+        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
+        typedef typename mpl::next<iter2>::type iter3;
+        
+
+        typedef fwd_state3 bkwd_state3;
+        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
+        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
+        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
+        
+
+        typedef bkwd_state0 state;
+        typedef iter3 iterator;
+    };
+};
+
+template<> struct reverse_iter_fold_chunk<4>
+{
+    template<
+          typename First
+        , typename Last
+        , typename State
+        , typename BackwardOp
+        , typename ForwardOp
+        >
+    struct result_
+    {
+        typedef First iter0;
+        typedef State fwd_state0;
+        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
+        typedef typename mpl::next<iter0>::type iter1;
+        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
+        typedef typename mpl::next<iter1>::type iter2;
+        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
+        typedef typename mpl::next<iter2>::type iter3;
+        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
+        typedef typename mpl::next<iter3>::type iter4;
+        
+
+        typedef fwd_state4 bkwd_state4;
+        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
+        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
+        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
+        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
+        
+
+        typedef bkwd_state0 state;
+        typedef iter4 iterator;
+    };
+};
+
+template< long N >
+struct reverse_iter_fold_chunk
+{
+    template<
+          typename First
+        , typename Last
+        , typename State
+        , typename BackwardOp
+        , typename ForwardOp
+        >
+    struct result_
+    {
+        typedef First iter0;
+        typedef State fwd_state0;
+        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
+        typedef typename mpl::next<iter0>::type iter1;
+        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
+        typedef typename mpl::next<iter1>::type iter2;
+        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
+        typedef typename mpl::next<iter2>::type iter3;
+        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
+        typedef typename mpl::next<iter3>::type iter4;
+        
+
+        typedef reverse_iter_fold_impl<
+              ( (N - 4) < 0 ? 0 : N - 4 )
+            , iter4
+            , Last
+            , fwd_state4
+            , BackwardOp
+            , ForwardOp
+            > nested_chunk;
+
+        typedef typename nested_chunk::state bkwd_state4;
+        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
+        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
+        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
+        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
+        
+
+        typedef bkwd_state0 state;
+        typedef typename nested_chunk::iterator iterator;
+    };
+};
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename BackwardOp
+    , typename ForwardOp
+    >
+struct reverse_iter_fold_step;
+
+template<
+      typename Last
+    , typename State
+    >
+struct reverse_iter_fold_null_step
+{
+    typedef Last iterator;
+    typedef State state;
+};
+
+template<>
+struct reverse_iter_fold_chunk< -1 >
+{
+    template<
+          typename First
+        , typename Last
+        , typename State
+        , typename BackwardOp
+        , typename ForwardOp
+        >
+    struct result_
+    {
+        typedef typename if_<
+              typename is_same< First,Last >::type
+            , reverse_iter_fold_null_step< Last,State >
+            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >
+            >::type res_;
+
+        typedef typename res_::state state;
+        typedef typename res_::iterator iterator;
+    };
+};
+
+template<
+      typename First
+    , typename Last
+    , typename State
+    , typename BackwardOp
+    , typename ForwardOp
+    >
+struct reverse_iter_fold_step
+{
+    typedef reverse_iter_fold_chunk< -1 >::template result_<
+          typename mpl::next<First>::type
+        , Last
+        , typename apply2< ForwardOp,State,First >::type
+        , BackwardOp
+        , ForwardOp
+        > nested_step;
+
+    typedef typename apply2<
+          BackwardOp
+        , typename nested_step::state
+        , First
+        >::type state;
+
+    typedef typename nested_step::iterator iterator;
+};
+
+template<
+      long N
+    , typename First
+    , typename Last
+    , typename State
+    , typename BackwardOp
+    , typename ForwardOp
+    >
+struct reverse_iter_fold_impl
+    : reverse_iter_fold_chunk<N>
+        ::template result_< First,Last,State,BackwardOp,ForwardOp >
+{
+};
+
+}}}
index 089ce0b74b4da55c5b1d155827a1830057ae373b..ace3a4f07cbfbc6acb92059dc44f65380f1c5bb6 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "set.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na\r
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na\r
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na\r
-    , typename T12 = na, typename T13 = na, typename T14 = na\r
-    , typename T15 = na, typename T16 = na, typename T17 = na\r
-    , typename T18 = na, typename T19 = na\r
-    >\r
-struct set;\r
-\r
-template<\r
-     \r
-    >\r
-struct set<\r
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set0<  >\r
-{\r
-    typedef set0<  >::type type;\r
-};\r
-\r
-template<\r
-      typename T0\r
-    >\r
-struct set<\r
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set1<T0>\r
-{\r
-    typedef typename set1<T0>::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1\r
-    >\r
-struct set<\r
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set2< T0,T1 >\r
-{\r
-    typedef typename set2< T0,T1 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2\r
-    >\r
-struct set<\r
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set3< T0,T1,T2 >\r
-{\r
-    typedef typename set3< T0,T1,T2 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set4< T0,T1,T2,T3 >\r
-{\r
-    typedef typename set4< T0,T1,T2,T3 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set5< T0,T1,T2,T3,T4 >\r
-{\r
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set6< T0,T1,T2,T3,T4,T5 >\r
-{\r
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set7< T0,T1,T2,T3,T4,T5,T6 >\r
-{\r
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >\r
-{\r
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >\r
-{\r
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >\r
-{\r
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >\r
-{\r
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na\r
-        , na, na, na, na\r
-        >\r
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >\r
-{\r
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na\r
-        , na, na, na, na\r
-        >\r
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >\r
-{\r
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na\r
-        , na, na, na, na\r
-        >\r
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >\r
-{\r
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na\r
-        , na, na, na, na\r
-        >\r
-    : set15<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        >\r
-{\r
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, na, na, na, na\r
-        >\r
-    : set16<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15\r
-        >\r
-{\r
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, na, na, na\r
-        >\r
-    : set17<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16\r
-        >\r
-{\r
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, na, na\r
-        >\r
-    : set18<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17\r
-        >\r
-{\r
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17, typename T18\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18, na\r
-        >\r
-    : set19<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18\r
-        >\r
-{\r
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;\r
-};\r
-\r
-/// primary template (not a specialization!)\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17, typename T18, typename T19\r
-    >\r
-struct set\r
-    : set20<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18, T19\r
-        >\r
-{\r
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;\r
-};\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "set.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
+    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
+    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
+    , typename T12 = na, typename T13 = na, typename T14 = na
+    , typename T15 = na, typename T16 = na, typename T17 = na
+    , typename T18 = na, typename T19 = na
+    >
+struct set;
+
+template<
+     
+    >
+struct set<
+          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set0<  >
+{
+    typedef set0<  >::type type;
+};
+
+template<
+      typename T0
+    >
+struct set<
+          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set1<T0>
+{
+    typedef typename set1<T0>::type type;
+};
+
+template<
+      typename T0, typename T1
+    >
+struct set<
+          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set2< T0,T1 >
+{
+    typedef typename set2< T0,T1 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2
+    >
+struct set<
+          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set3< T0,T1,T2 >
+{
+    typedef typename set3< T0,T1,T2 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3
+    >
+struct set<
+          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set4< T0,T1,T2,T3 >
+{
+    typedef typename set4< T0,T1,T2,T3 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    >
+struct set<
+          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set5< T0,T1,T2,T3,T4 >
+{
+    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set6< T0,T1,T2,T3,T4,T5 >
+{
+    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set7< T0,T1,T2,T3,T4,T5,T6 >
+{
+    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
+{
+    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
+{
+    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
+{
+    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
+{
+    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
+        , na, na, na, na
+        >
+    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
+{
+    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
+        , na, na, na, na
+        >
+    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
+{
+    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
+        , na, na, na, na
+        >
+    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
+{
+    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
+        , na, na, na, na
+        >
+    : set15<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        >
+{
+    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, na, na, na, na
+        >
+    : set16<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15
+        >
+{
+    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, na, na, na
+        >
+    : set17<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16
+        >
+{
+    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, na, na
+        >
+    : set18<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17
+        >
+{
+    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18, na
+        >
+    : set19<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18
+        >
+{
+    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
+};
+
+/// primary template (not a specialization!)
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    >
+struct set
+    : set20<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18, T19
+        >
+{
+    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
+};
+
+}}
+
index 63519044cace5ad7e297a4f90845cbdd4a32374e..4e6993ce2728b12428dc31ef79b8f88623a92768 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "set_c.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX\r
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX\r
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX\r
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX\r
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX\r
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX\r
-    , long C18 = LONG_MAX, long C19 = LONG_MAX\r
-    >\r
-struct set_c;\r
-\r
-template<\r
-      typename T\r
-    >\r
-struct set_c<\r
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set0_c<T>\r
-{\r
-    typedef typename set0_c<T>::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0\r
-    >\r
-struct set_c<\r
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set1_c< T,C0 >\r
-{\r
-    typedef typename set1_c< T,C0 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1\r
-    >\r
-struct set_c<\r
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set2_c< T,C0,C1 >\r
-{\r
-    typedef typename set2_c< T,C0,C1 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set3_c< T,C0,C1,C2 >\r
-{\r
-    typedef typename set3_c< T,C0,C1,C2 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set4_c< T,C0,C1,C2,C3 >\r
-{\r
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set5_c< T,C0,C1,C2,C3,C4 >\r
-{\r
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >\r
-{\r
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >\r
-{\r
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX\r
-        >\r
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >\r
-{\r
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX\r
-        >\r
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >\r
-{\r
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX\r
-        >\r
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >\r
-{\r
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >\r
-{\r
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >\r
-{\r
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >\r
-{\r
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set14_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13\r
-        >\r
-{\r
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set15_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        >\r
-{\r
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set16_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15\r
-        >\r
-{\r
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15, long C16\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : set17_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16\r
-        >\r
-{\r
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15, long C16, long C17\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, C17, LONG_MAX, LONG_MAX\r
-        >\r
-    : set18_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, C17\r
-        >\r
-{\r
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15, long C16, long C17, long C18\r
-    >\r
-struct set_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, C17, C18, LONG_MAX\r
-        >\r
-    : set19_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, C17, C18\r
-        >\r
-{\r
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;\r
-};\r
-\r
-/// primary template (not a specialization!)\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
-    >\r
-struct set_c\r
-    : set20_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, C17, C18, C19\r
-        >\r
-{\r
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;\r
-};\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "set_c.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
+    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
+    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
+    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
+    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
+    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
+    , long C18 = LONG_MAX, long C19 = LONG_MAX
+    >
+struct set_c;
+
+template<
+      typename T
+    >
+struct set_c<
+          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set0_c<T>
+{
+    typedef typename set0_c<T>::type type;
+};
+
+template<
+      typename T, long C0
+    >
+struct set_c<
+          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set1_c< T,C0 >
+{
+    typedef typename set1_c< T,C0 >::type type;
+};
+
+template<
+      typename T, long C0, long C1
+    >
+struct set_c<
+          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set2_c< T,C0,C1 >
+{
+    typedef typename set2_c< T,C0,C1 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2
+    >
+struct set_c<
+          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set3_c< T,C0,C1,C2 >
+{
+    typedef typename set3_c< T,C0,C1,C2 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3
+    >
+struct set_c<
+          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set4_c< T,C0,C1,C2,C3 >
+{
+    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set5_c< T,C0,C1,C2,C3,C4 >
+{
+    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set6_c< T,C0,C1,C2,C3,C4,C5 >
+{
+    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
+{
+    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX
+        >
+    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
+{
+    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX
+        >
+    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
+{
+    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX
+        >
+    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
+{
+    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
+{
+    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
+{
+    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
+{
+    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set14_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
+        >
+{
+    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set15_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        >
+{
+    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set16_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15
+        >
+{
+    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15, long C16
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : set17_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16
+        >
+{
+    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15, long C16, long C17
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, C17, LONG_MAX, LONG_MAX
+        >
+    : set18_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, C17
+        >
+{
+    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15, long C16, long C17, long C18
+    >
+struct set_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, C17, C18, LONG_MAX
+        >
+    : set19_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, C17, C18
+        >
+{
+    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
+};
+
+/// primary template (not a specialization!)
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
+    >
+struct set_c
+    : set20_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, C17, C18, C19
+        >
+{
+    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
+};
+
+}}
+
index 6f99bd9c23bb2884682857973ff8241630c20357..6d19e94ed3412131a33642d381263d576f48b6e3 100644 (file)
@@ -1,99 +1,99 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-// Copyright Jaap Suter 2003\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "shift_left.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct shift_left_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct shift_left_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct shift_left_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct shift_left_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct shift_left_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    >\r
-struct shift_left\r
-\r
-    : shift_left_impl<\r
-          typename shift_left_tag<N1>::type\r
-        , typename shift_left_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-template<>\r
-struct shift_left_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N, typename S > struct apply\r
-\r
-        : integral_c<\r
-              typename N::value_type\r
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value\r
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value\r
-                )\r
-            >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+// Copyright Jaap Suter 2003
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// *Preprocessed* version of the main "shift_left.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct shift_left_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct shift_left_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct shift_left_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct shift_left_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct shift_left_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    >
+struct shift_left
+
+    : shift_left_impl<
+          typename shift_left_tag<N1>::type
+        , typename shift_left_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
+
+}}
+
+namespace boost { namespace mpl {
+template<>
+struct shift_left_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N, typename S > struct apply
+
+        : integral_c<
+              typename N::value_type
+            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
+                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
+                )
+            >
+    {
+    };
+};
+
+}}
index 64d80fd243b404e39b10032069d46867badee4d0..dd31d97cec98a97e61f8c38d152739baabfc9278 100644 (file)
@@ -1,99 +1,99 @@
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-// Copyright Jaap Suter 2003\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "shift_right.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct shift_right_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct shift_right_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct shift_right_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct shift_right_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct shift_right_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    >\r
-struct shift_right\r
-\r
-    : shift_right_impl<\r
-          typename shift_right_tag<N1>::type\r
-        , typename shift_right_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-template<>\r
-struct shift_right_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N, typename S > struct apply\r
-\r
-        : integral_c<\r
-              typename N::value_type\r
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value\r
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value\r
-                )\r
-            >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+// Copyright Jaap Suter 2003
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// *Preprocessed* version of the main "shift_right.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct shift_right_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct shift_right_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct shift_right_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct shift_right_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct shift_right_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    >
+struct shift_right
+
+    : shift_right_impl<
+          typename shift_right_tag<N1>::type
+        , typename shift_right_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
+
+}}
+
+namespace boost { namespace mpl {
+template<>
+struct shift_right_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N, typename S > struct apply
+
+        : integral_c<
+              typename N::value_type
+            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
+                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
+                )
+            >
+    {
+    };
+};
+
+}}
index a0b058ff7cde29152dd7091dd1f7364af73f871e..b24a0a7e7fb2a593aa895362db816b46c1e991e0 100644 (file)
@@ -1,40 +1,40 @@
-\r
-// Copyright Aleksey Gurtovoy 2001-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "template_arity.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl { namespace aux {\r
-\r
-template< bool >\r
-struct template_arity_impl\r
-{\r
-    template< typename F > struct result_\r
-        : mpl::int_< -1 >\r
-    {\r
-    };\r
-};\r
-\r
-template<>\r
-struct template_arity_impl<true>\r
-{\r
-    template< typename F > struct result_\r
-        : F::arity\r
-    {\r
-    };\r
-};\r
-\r
-template< typename F >\r
-struct template_arity\r
-    : template_arity_impl< ::boost::mpl::aux::has_rebind<F>::value >\r
-        ::template result_<F>\r
-{\r
-};\r
-\r
-}}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2001-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "template_arity.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl { namespace aux {
+
+template< bool >
+struct template_arity_impl
+{
+    template< typename F > struct result_
+        : mpl::int_< -1 >
+    {
+    };
+};
+
+template<>
+struct template_arity_impl<true>
+{
+    template< typename F > struct result_
+        : F::arity
+    {
+    };
+};
+
+template< typename F >
+struct template_arity
+    : template_arity_impl< ::boost::mpl::aux::has_rebind<F>::value >
+        ::template result_<F>
+{
+};
+
+}}}
+
index 69a885a871b08e065c8733ca4012b2edb788ebed..ab100f1cb3f3c7bb7aa227172af4f6b61a402630 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "times.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename Tag1\r
-    , typename Tag2\r
-    >\r
-struct times_impl\r
-    : if_c<\r
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
-            )\r
-\r
-        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
-        >::type\r
-{\r
-};\r
-\r
-/// for Digital Mars C++/compilers with no CTPS/TTP support\r
-template<> struct times_impl< na,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct times_impl< na,Tag >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename Tag > struct times_impl< Tag,na >\r
-{\r
-    template< typename U1, typename U2 > struct apply\r
-    {\r
-        typedef apply type;\r
-        BOOST_STATIC_CONSTANT(int, value  = 0);\r
-    };\r
-};\r
-\r
-template< typename T > struct times_tag\r
-{\r
-    typedef typename T::tag type;\r
-};\r
-\r
-template<\r
-      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
-    , typename N3 = na, typename N4 = na, typename N5 = na\r
-    >\r
-struct times\r
-    : times< times< times< times< N1,N2 >, N3>, N4>, N5>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
-          5\r
-        , times\r
-        , ( N1, N2, N3, N4, N5 )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2, typename N3, typename N4\r
-    >\r
-struct times< N1,N2,N3,N4,na >\r
-\r
-    : times< times< times< N1,N2 >, N3>, N4>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , times\r
-        , ( N1, N2, N3, N4, na )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2, typename N3\r
-    >\r
-struct times< N1,N2,N3,na,na >\r
-\r
-    : times< times< N1,N2 >, N3>\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , times\r
-        , ( N1, N2, N3, na, na )\r
-        )\r
-};\r
-\r
-template<\r
-      typename N1, typename N2\r
-    >\r
-struct times< N1,N2,na,na,na >\r
-    : times_impl<\r
-          typename times_tag<N1>::type\r
-        , typename times_tag<N2>::type\r
-        >::template apply< N1,N2 >::type\r
-{\r
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
-          5\r
-        , times\r
-        , ( N1, N2, na, na, na )\r
-        )\r
-\r
-};\r
-\r
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)\r
-\r
-}}\r
-\r
-namespace boost { namespace mpl {\r
-template<>\r
-struct times_impl< integral_c_tag,integral_c_tag >\r
-{\r
-    template< typename N1, typename N2 > struct apply\r
-\r
-        : integral_c<\r
-              typename aux::largest_int<\r
-                  typename N1::value_type\r
-                , typename N2::value_type\r
-                >::type\r
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
-                )\r
-            >\r
-    {\r
-    };\r
-};\r
-\r
-}}\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "times.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename Tag1
+    , typename Tag2
+    >
+struct times_impl
+    : if_c<
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
+            )
+
+        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
+        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
+        >::type
+{
+};
+
+/// for Digital Mars C++/compilers with no CTPS/TTP support
+template<> struct times_impl< na,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct times_impl< na,Tag >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename Tag > struct times_impl< Tag,na >
+{
+    template< typename U1, typename U2 > struct apply
+    {
+        typedef apply type;
+        BOOST_STATIC_CONSTANT(int, value  = 0);
+    };
+};
+
+template< typename T > struct times_tag
+{
+    typedef typename T::tag type;
+};
+
+template<
+      typename BOOST_MPL_AUX_NA_PARAM(N1)
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)
+    , typename N3 = na, typename N4 = na, typename N5 = na
+    >
+struct times
+    : times< times< times< times< N1,N2 >, N3>, N4>, N5>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(
+          5
+        , times
+        , ( N1, N2, N3, N4, N5 )
+        )
+};
+
+template<
+      typename N1, typename N2, typename N3, typename N4
+    >
+struct times< N1,N2,N3,N4,na >
+
+    : times< times< times< N1,N2 >, N3>, N4>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , times
+        , ( N1, N2, N3, N4, na )
+        )
+};
+
+template<
+      typename N1, typename N2, typename N3
+    >
+struct times< N1,N2,N3,na,na >
+
+    : times< times< N1,N2 >, N3>
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , times
+        , ( N1, N2, N3, na, na )
+        )
+};
+
+template<
+      typename N1, typename N2
+    >
+struct times< N1,N2,na,na,na >
+    : times_impl<
+          typename times_tag<N1>::type
+        , typename times_tag<N2>::type
+        >::template apply< N1,N2 >::type
+{
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
+          5
+        , times
+        , ( N1, N2, na, na, na )
+        )
+
+};
+
+BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
+
+}}
+
+namespace boost { namespace mpl {
+template<>
+struct times_impl< integral_c_tag,integral_c_tag >
+{
+    template< typename N1, typename N2 > struct apply
+
+        : integral_c<
+              typename aux::largest_int<
+                  typename N1::value_type
+                , typename N2::value_type
+                >::type
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
+                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
+                )
+            >
+    {
+    };
+};
+
+}}
index cedd428bcf5b9a0e04dd29a3dceb21ef749de878..f391dc1ab84acda94b549ae2172a05e97289787d 100644 (file)
@@ -1,97 +1,97 @@
-\r
-// Copyright Aleksey Gurtovoy 2002-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "unpack_args.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-namespace aux {\r
-\r
-template< int size, typename F, typename Args >\r
-struct unpack_args_impl;\r
-\r
-template< typename F, typename Args >\r
-struct unpack_args_impl< 0,F,Args >\r
-    : apply0<\r
-          F\r
-        >\r
-{\r
-};\r
-\r
-template< typename F, typename Args >\r
-struct unpack_args_impl< 1,F,Args >\r
-    : apply1<\r
-          F\r
-        , typename at_c< Args,0 >::type\r
-        >\r
-{\r
-};\r
-\r
-template< typename F, typename Args >\r
-struct unpack_args_impl< 2,F,Args >\r
-    : apply2<\r
-          F\r
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
-        >\r
-{\r
-};\r
-\r
-template< typename F, typename Args >\r
-struct unpack_args_impl< 3,F,Args >\r
-    : apply3<\r
-          F\r
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
-        , typename at_c< Args,2 >::type\r
-        >\r
-{\r
-};\r
-\r
-template< typename F, typename Args >\r
-struct unpack_args_impl< 4,F,Args >\r
-    : apply4<\r
-          F\r
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type\r
-        >\r
-{\r
-};\r
-\r
-template< typename F, typename Args >\r
-struct unpack_args_impl< 5,F,Args >\r
-    : apply5<\r
-          F\r
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type\r
-        , typename at_c< Args,4 >::type\r
-        >\r
-{\r
-};\r
-\r
-}\r
-\r
-template<\r
-      typename F\r
-    >\r
-struct unpack_args\r
-{\r
-    template< typename Args > struct apply\r
-    {\r
-        typedef typename aux::unpack_args_impl<\r
-              size<Args>::value\r
-            , F\r
-            , Args\r
-            >::type type;\r
-\r
-    };\r
-};\r
-\r
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2002-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "unpack_args.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+namespace aux {
+
+template< int size, typename F, typename Args >
+struct unpack_args_impl;
+
+template< typename F, typename Args >
+struct unpack_args_impl< 0,F,Args >
+    : apply0<
+          F
+        >
+{
+};
+
+template< typename F, typename Args >
+struct unpack_args_impl< 1,F,Args >
+    : apply1<
+          F
+        , typename at_c< Args,0 >::type
+        >
+{
+};
+
+template< typename F, typename Args >
+struct unpack_args_impl< 2,F,Args >
+    : apply2<
+          F
+        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
+        >
+{
+};
+
+template< typename F, typename Args >
+struct unpack_args_impl< 3,F,Args >
+    : apply3<
+          F
+        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
+        , typename at_c< Args,2 >::type
+        >
+{
+};
+
+template< typename F, typename Args >
+struct unpack_args_impl< 4,F,Args >
+    : apply4<
+          F
+        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
+        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
+        >
+{
+};
+
+template< typename F, typename Args >
+struct unpack_args_impl< 5,F,Args >
+    : apply5<
+          F
+        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
+        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
+        , typename at_c< Args,4 >::type
+        >
+{
+};
+
+}
+
+template<
+      typename F
+    >
+struct unpack_args
+{
+    template< typename Args > struct apply
+    {
+        typedef typename aux::unpack_args_impl<
+              size<Args>::value
+            , F
+            , Args
+            >::type type;
+
+    };
+};
+
+BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
+
+}}
+
index e1f3c6295d9b881c8c1589ed4e30515a5e7ed709..803e217850a068fa3a6665dabd8996e0ec198b82 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "vector.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na\r
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na\r
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na\r
-    , typename T12 = na, typename T13 = na, typename T14 = na\r
-    , typename T15 = na, typename T16 = na, typename T17 = na\r
-    , typename T18 = na, typename T19 = na\r
-    >\r
-struct vector;\r
-\r
-template<\r
-     \r
-    >\r
-struct vector<\r
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector0<  >\r
-{\r
-    typedef vector0<  >::type type;\r
-};\r
-\r
-template<\r
-      typename T0\r
-    >\r
-struct vector<\r
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector1<T0>\r
-{\r
-    typedef typename vector1<T0>::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1\r
-    >\r
-struct vector<\r
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector2< T0,T1 >\r
-{\r
-    typedef typename vector2< T0,T1 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2\r
-    >\r
-struct vector<\r
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector3< T0,T1,T2 >\r
-{\r
-    typedef typename vector3< T0,T1,T2 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector4< T0,T1,T2,T3 >\r
-{\r
-    typedef typename vector4< T0,T1,T2,T3 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector5< T0,T1,T2,T3,T4 >\r
-{\r
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector6< T0,T1,T2,T3,T4,T5 >\r
-{\r
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >\r
-{\r
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >\r
-{\r
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >\r
-{\r
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >\r
-{\r
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >\r
-{\r
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na\r
-        , na, na, na, na\r
-        >\r
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >\r
-{\r
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na\r
-        , na, na, na, na\r
-        >\r
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >\r
-{\r
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na\r
-        , na, na, na, na\r
-        >\r
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >\r
-{\r
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na\r
-        , na, na, na, na\r
-        >\r
-    : vector15<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        >\r
-{\r
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, na, na, na, na\r
-        >\r
-    : vector16<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15\r
-        >\r
-{\r
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, na, na, na\r
-        >\r
-    : vector17<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16\r
-        >\r
-{\r
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, na, na\r
-        >\r
-    : vector18<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17\r
-        >\r
-{\r
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17, typename T18\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18, na\r
-        >\r
-    : vector19<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18\r
-        >\r
-{\r
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;\r
-};\r
-\r
-/// primary template (not a specialization!)\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17, typename T18, typename T19\r
-    >\r
-struct vector\r
-    : vector20<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18, T19\r
-        >\r
-{\r
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;\r
-};\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "vector.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
+    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
+    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
+    , typename T12 = na, typename T13 = na, typename T14 = na
+    , typename T15 = na, typename T16 = na, typename T17 = na
+    , typename T18 = na, typename T19 = na
+    >
+struct vector;
+
+template<
+     
+    >
+struct vector<
+          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector0<  >
+{
+    typedef vector0<  >::type type;
+};
+
+template<
+      typename T0
+    >
+struct vector<
+          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector1<T0>
+{
+    typedef typename vector1<T0>::type type;
+};
+
+template<
+      typename T0, typename T1
+    >
+struct vector<
+          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector2< T0,T1 >
+{
+    typedef typename vector2< T0,T1 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2
+    >
+struct vector<
+          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector3< T0,T1,T2 >
+{
+    typedef typename vector3< T0,T1,T2 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3
+    >
+struct vector<
+          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector4< T0,T1,T2,T3 >
+{
+    typedef typename vector4< T0,T1,T2,T3 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    >
+struct vector<
+          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector5< T0,T1,T2,T3,T4 >
+{
+    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector6< T0,T1,T2,T3,T4,T5 >
+{
+    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector7< T0,T1,T2,T3,T4,T5,T6 >
+{
+    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
+{
+    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
+{
+    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
+{
+    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
+{
+    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
+        , na, na, na, na
+        >
+    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
+{
+    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
+        , na, na, na, na
+        >
+    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
+{
+    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
+        , na, na, na, na
+        >
+    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
+{
+    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
+        , na, na, na, na
+        >
+    : vector15<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        >
+{
+    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, na, na, na, na
+        >
+    : vector16<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15
+        >
+{
+    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, na, na, na
+        >
+    : vector17<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16
+        >
+{
+    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, na, na
+        >
+    : vector18<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17
+        >
+{
+    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18, na
+        >
+    : vector19<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18
+        >
+{
+    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
+};
+
+/// primary template (not a specialization!)
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    >
+struct vector
+    : vector20<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18, T19
+        >
+{
+    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
+};
+
+}}
+
index d568ac98eaf4e9ca08a16372488bceb25f653c6d..643b7fd636729083884335d3c17cb5cc9a7b8d2d 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2008\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "vector_c.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX\r
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX\r
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX\r
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX\r
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX\r
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX\r
-    , long C18 = LONG_MAX, long C19 = LONG_MAX\r
-    >\r
-struct vector_c;\r
-\r
-template<\r
-      typename T\r
-    >\r
-struct vector_c<\r
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector0_c<T>\r
-{\r
-    typedef typename vector0_c<T>::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0\r
-    >\r
-struct vector_c<\r
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector1_c< T, T(C0) >\r
-{\r
-    typedef typename vector1_c< T, T(C0) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector2_c< T, T(C0), T(C1) >\r
-{\r
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector3_c< T, T(C0), T(C1), T(C2) >\r
-{\r
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >\r
-{\r
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >\r
-{\r
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >\r
-{\r
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >\r
-{\r
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX\r
-        >\r
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >\r
-{\r
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX\r
-        >\r
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >\r
-{\r
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        , LONG_MAX\r
-        >\r
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >\r
-{\r
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >\r
-{\r
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >\r
-{\r
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >\r
-{\r
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >\r
-{\r
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >\r
-{\r
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >\r
-{\r
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15, long C16\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >\r
-{\r
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15, long C16, long C17\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, C17, LONG_MAX, LONG_MAX\r
-        >\r
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >\r
-{\r
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;\r
-};\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15, long C16, long C17, long C18\r
-    >\r
-struct vector_c<\r
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
-        , C15, C16, C17, C18, LONG_MAX\r
-        >\r
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >\r
-{\r
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;\r
-};\r
-\r
-/// primary template (not a specialization!)\r
-\r
-template<\r
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
-    >\r
-struct vector_c\r
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >\r
-{\r
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;\r
-};\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2008
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "vector_c.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
+    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
+    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
+    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
+    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
+    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
+    , long C18 = LONG_MAX, long C19 = LONG_MAX
+    >
+struct vector_c;
+
+template<
+      typename T
+    >
+struct vector_c<
+          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector0_c<T>
+{
+    typedef typename vector0_c<T>::type type;
+};
+
+template<
+      typename T, long C0
+    >
+struct vector_c<
+          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector1_c< T, T(C0) >
+{
+    typedef typename vector1_c< T, T(C0) >::type type;
+};
+
+template<
+      typename T, long C0, long C1
+    >
+struct vector_c<
+          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector2_c< T, T(C0), T(C1) >
+{
+    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2
+    >
+struct vector_c<
+          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector3_c< T, T(C0), T(C1), T(C2) >
+{
+    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
+{
+    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
+{
+    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
+{
+    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
+{
+    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX
+        >
+    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
+{
+    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX
+        >
+    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
+{
+    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        , LONG_MAX
+        >
+    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
+{
+    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
+{
+    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
+{
+    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
+{
+    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
+{
+    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
+{
+    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
+{
+    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15, long C16
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
+        >
+    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
+{
+    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15, long C16, long C17
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, C17, LONG_MAX, LONG_MAX
+        >
+    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
+{
+    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
+};
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15, long C16, long C17, long C18
+    >
+struct vector_c<
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
+        , C15, C16, C17, C18, LONG_MAX
+        >
+    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
+{
+    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
+};
+
+/// primary template (not a specialization!)
+
+template<
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
+    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
+    >
+struct vector_c
+    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
+{
+    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
+};
+
+}}
+
index 366ec0560413203d025b2108ea702bc80c228b56..08828c247a3090caffe81024e494503e6d1c4d77 100755 (executable)
@@ -1,22 +1,22 @@
-\r
-#ifndef BOOST_MPL_CHAR_HPP_INCLUDED\r
-#define BOOST_MPL_CHAR_HPP_INCLUDED\r
-\r
-// Copyright Eric Niebler 2008\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// See http://www.boost.org/libs/mpl for documentation.\r
-\r
-// $Source$\r
-// $Date: 2008-06-14 08:41:37 -0700 (Sat, 16 Jun 2008) $\r
-// $Revision: 24874 $\r
-\r
-#include <boost/mpl/char_fwd.hpp>\r
-\r
-#define AUX_WRAPPER_VALUE_TYPE char\r
-#include <boost/mpl/aux_/integral_wrapper.hpp>\r
-\r
-#endif // BOOST_MPL_CHAR_HPP_INCLUDED\r
+
+#ifndef BOOST_MPL_CHAR_HPP_INCLUDED
+#define BOOST_MPL_CHAR_HPP_INCLUDED
+
+// Copyright Eric Niebler 2008
+//
+// 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/mpl for documentation.
+
+// $Source$
+// $Date: 2008-06-14 08:41:37 -0700 (Sat, 16 Jun 2008) $
+// $Revision: 24874 $
+
+#include <boost/mpl/char_fwd.hpp>
+
+#define AUX_WRAPPER_VALUE_TYPE char
+#include <boost/mpl/aux_/integral_wrapper.hpp>
+
+#endif // BOOST_MPL_CHAR_HPP_INCLUDED
index 65d741c3a5aaf1e9714324c330ac8efead29a67f..442d0a161929d5954644587eb89e45e945d0a479 100755 (executable)
@@ -1,27 +1,27 @@
-\r
-#ifndef BOOST_MPL_CHAR_FWD_HPP_INCLUDED\r
-#define BOOST_MPL_CHAR_FWD_HPP_INCLUDED\r
-\r
-// Copyright Eric Niebler 2008\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// See http://www.boost.org/libs/mpl for documentation.\r
-\r
-// $Source$\r
-// $Date: 2008-06-14 08:41:37 -0700 (Sat, 16 Jun 2008) $\r
-// $Revision: 24874 $\r
-\r
-#include <boost/mpl/aux_/adl_barrier.hpp>\r
-#include <boost/mpl/aux_/nttp_decl.hpp>\r
-\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
-\r
-template< BOOST_MPL_AUX_NTTP_DECL(char, N) > struct char_;\r
-\r
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
-BOOST_MPL_AUX_ADL_BARRIER_DECL(char_)\r
-\r
-#endif // BOOST_MPL_CHAR_FWD_HPP_INCLUDED\r
+
+#ifndef BOOST_MPL_CHAR_FWD_HPP_INCLUDED
+#define BOOST_MPL_CHAR_FWD_HPP_INCLUDED
+
+// Copyright Eric Niebler 2008
+//
+// 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/mpl for documentation.
+
+// $Source$
+// $Date: 2008-06-14 08:41:37 -0700 (Sat, 16 Jun 2008) $
+// $Revision: 24874 $
+
+#include <boost/mpl/aux_/adl_barrier.hpp>
+#include <boost/mpl/aux_/nttp_decl.hpp>
+
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
+
+template< BOOST_MPL_AUX_NTTP_DECL(char, N) > struct char_;
+
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
+BOOST_MPL_AUX_ADL_BARRIER_DECL(char_)
+
+#endif // BOOST_MPL_CHAR_FWD_HPP_INCLUDED
index c51c0ef7940e4502eb67fd63a8f8d65213390742..eb85aa389fb9a7c426a56dc816d1d3d8d3b94f1b 100644 (file)
@@ -1,21 +1,21 @@
-\r
-#ifndef BOOST_MPL_LIMITS_STRING_HPP_INCLUDED\r
-#define BOOST_MPL_LIMITS_STRING_HPP_INCLUDED\r
-\r
-// Copyright Eric Niebler 2009\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// See http://www.boost.org/libs/mpl for documentation.\r
-\r
-// $Id: string.hpp 49239 2009-04-01 09:10:26Z eric_niebler $\r
-// $Date: 2009-04-01 02:10:26 -0700 (Wed, 1 Apr 2009) $\r
-// $Revision: 49239 $\r
-\r
-#if !defined(BOOST_MPL_LIMIT_STRING_SIZE)\r
-#   define BOOST_MPL_LIMIT_STRING_SIZE 32\r
-#endif\r
-\r
-#endif // BOOST_MPL_LIMITS_STRING_HPP_INCLUDED\r
+
+#ifndef BOOST_MPL_LIMITS_STRING_HPP_INCLUDED
+#define BOOST_MPL_LIMITS_STRING_HPP_INCLUDED
+
+// Copyright Eric Niebler 2009
+//
+// 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/mpl for documentation.
+
+// $Id: string.hpp 49239 2009-04-01 09:10:26Z eric_niebler $
+// $Date: 2009-04-01 02:10:26 -0700 (Wed, 1 Apr 2009) $
+// $Revision: 49239 $
+
+#if !defined(BOOST_MPL_LIMIT_STRING_SIZE)
+#   define BOOST_MPL_LIMIT_STRING_SIZE 32
+#endif
+
+#endif // BOOST_MPL_LIMITS_STRING_HPP_INCLUDED
index f3b161372fcab4ccb3c43c002701ab6343ece48b..6a9481aaabe386ed3f3b16bb7553bc890fb5a242 100755 (executable)
-\r
-#ifndef BOOST_MPL_STRING_HPP_INCLUDED\r
-#define BOOST_MPL_STRING_HPP_INCLUDED\r
-\r
-// Copyright Eric Niebler 2009\r
-//\r
-// Distributed under the Boost Software License, Version 1.0.\r
-// (See accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// See http://www.boost.org/libs/mpl for documentation.\r
-\r
-// $Id: string.hpp 49239 2009-04-01 09:10:26Z eric_niebler $\r
-// $Date: 2009-04-01 02:10:26 -0700 (Wed, 1 Apr 2009) $\r
-// $Revision: 49239 $\r
-//\r
-// Thanks to:\r
-//   Dmitry Goncharov for porting this to the Sun compiler\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/detail/workaround.hpp>\r
-#include <boost/detail/endian.hpp>\r
-#include <boost/mpl/limits/string.hpp>\r
-#include <boost/mpl/if.hpp>\r
-#include <boost/mpl/char.hpp>\r
-#include <boost/mpl/copy.hpp>\r
-#include <boost/mpl/size.hpp>\r
-#include <boost/mpl/empty.hpp>\r
-#include <boost/mpl/assert.hpp>\r
-#include <boost/mpl/size_t.hpp>\r
-#include <boost/mpl/begin_end.hpp>\r
-#include <boost/mpl/joint_view.hpp>\r
-#include <boost/mpl/insert_range.hpp>\r
-#include <boost/mpl/back_inserter.hpp>\r
-#include <boost/mpl/front_inserter.hpp>\r
-#include <boost/mpl/iterator_range.hpp>\r
-#include <boost/preprocessor/arithmetic/dec.hpp>\r
-#include <boost/preprocessor/arithmetic/add.hpp>\r
-#include <boost/preprocessor/arithmetic/div.hpp>\r
-#include <boost/preprocessor/punctuation/comma_if.hpp>\r
-#include <boost/preprocessor/repetition/repeat.hpp>\r
-#include <boost/preprocessor/repetition/enum_params.hpp>\r
-#include <boost/preprocessor/repetition/repeat_from_to.hpp>\r
-#include <boost/preprocessor/repetition/enum_shifted_params.hpp>\r
-#include <boost/preprocessor/repetition/enum_trailing_params.hpp>\r
-#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>\r
-\r
-#include <iterator> // for bidirectional_iterator_tag\r
-#include <climits>\r
-\r
-namespace boost { namespace mpl\r
-{\r
-    #define BOOST_MPL_STRING_MAX_PARAMS                                                             \\r
-      BOOST_PP_DIV(BOOST_PP_ADD(BOOST_MPL_LIMIT_STRING_SIZE, 3), 4)\r
-\r
-    // Low-level bit-twiddling is done by macros. Any implementation-defined behavior of\r
-    // multi-character literals should be localized to these macros.\r
-\r
-    #define BOOST_MPL_MULTICHAR_LENGTH(c)                                                           \\r
-      (std::size_t)((c<CHAR_MIN) ? 4 : ((c>0xffffff)+(c>0xffff)+(c>0xff)+1))\r
-\r
-    #if defined(BOOST_LITTLE_ENDIAN) && defined(__SUNPRO_CC)\r
-\r
-        #define BOOST_MPL_MULTICHAR_AT(c,i)                                                         \\r
-          (char)(0xff&((unsigned)(c)>>(8*(std::size_t)(i))))\r
-\r
-        #define BOOST_MPL_MULTICHAR_PUSH_BACK(c,i)                                                  \\r
-          ((((unsigned char)(i))<<(BOOST_MPL_MULTICHAR_LENGTH(c)*8))|(unsigned)(c))\r
-\r
-        #define BOOST_MPL_MULTICHAR_PUSH_FRONT(c,i)                                                 \\r
-          (((unsigned)(c)<<8)|(unsigned char)(i))\r
-\r
-        #define BOOST_MPL_MULTICHAR_POP_BACK(c)                                                     \\r
-          (((1<<((BOOST_MPL_MULTICHAR_LENGTH(c)-1)*8))-1)&(unsigned)(c))\r
-\r
-        #define BOOST_MPL_MULTICHAR_POP_FRONT(c)                                                    \\r
-          ((unsigned)(c)>>8)\r
-\r
-    #else\r
-\r
-        #define BOOST_MPL_MULTICHAR_AT(c,i)                                                         \\r
-          (char)(0xff&((unsigned)(c)>>(8*(BOOST_MPL_MULTICHAR_LENGTH(c)-(std::size_t)(i)-1))))\r
-\r
-        #define BOOST_MPL_MULTICHAR_PUSH_BACK(c,i)                                                  \\r
-          (((unsigned)(c)<<8)|(unsigned char)(i))\r
-\r
-        #define BOOST_MPL_MULTICHAR_PUSH_FRONT(c,i)                                                 \\r
-          ((((unsigned char)(i))<<(BOOST_MPL_MULTICHAR_LENGTH(c)*8))|(unsigned)(c))\r
-\r
-        #define BOOST_MPL_MULTICHAR_POP_BACK(c)                                                     \\r
-          ((unsigned)(c)>>8)\r
-\r
-        #define BOOST_MPL_MULTICHAR_POP_FRONT(c)                                                    \\r
-          (((1<<((BOOST_MPL_MULTICHAR_LENGTH(c)-1)*8))-1)&(unsigned)(c))\r
-\r
-    #endif\r
-\r
-    struct string_tag;\r
-    struct string_iterator_tag;\r
-\r
-    template<BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(BOOST_MPL_STRING_MAX_PARAMS, int C, 0)>\r
-    struct string;\r
-\r
-    template<typename Sequence, int I, int J>\r
-    struct string_iterator;\r
-\r
-    template<typename Sequence>\r
-    struct sequence_tag;\r
-\r
-    template<typename Tag>\r
-    struct size_impl;\r
-\r
-    template<>\r
-    struct size_impl<mpl::string_tag>\r
-    {\r
-        template<typename Sequence>\r
-        struct apply;\r
-\r
-        #define M0(z, n, data)                                                                      \\r
-        + BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C,n))\r
-\r
-        #define M1(z, n, data)                                                                      \\r
-        template<BOOST_PP_ENUM_PARAMS_Z(z, n, int C)>                                               \\r
-        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, n, C)> >                                 \\r
-          : mpl::size_t<(0 BOOST_PP_REPEAT_ ## z(n, M0, ~))>                                        \\r
-        {};\r
-\r
-        BOOST_PP_REPEAT_FROM_TO(1, BOOST_PP_INC(BOOST_MPL_STRING_MAX_PARAMS), M1, ~)\r
-        #undef M0\r
-        #undef M1\r
-    };\r
-\r
-    template<>\r
-    struct size_impl<mpl::string_tag>::apply<mpl::string<> >\r
-      : mpl::size_t<0>\r
-    {};\r
-\r
-    template<typename Tag>\r
-    struct begin_impl;\r
-\r
-    template<>\r
-    struct begin_impl<mpl::string_tag>\r
-    {\r
-        template<typename Sequence>\r
-        struct apply\r
-        {\r
-            typedef mpl::string_iterator<Sequence, 0, 0> type;\r
-        };\r
-    };\r
-\r
-    template<typename Tag>\r
-    struct end_impl;\r
-\r
-    template<>\r
-    struct end_impl<mpl::string_tag>\r
-    {\r
-        template<typename Sequence>\r
-        struct apply;\r
-\r
-        #define M0(z,n,data)                                                                        \\r
-        template<BOOST_PP_ENUM_PARAMS_Z(z, n, int C)>                                               \\r
-        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, n, C)> >                                 \\r
-        {                                                                                           \\r
-            typedef mpl::string_iterator<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, n, C)>, n, 0> type;  \\r
-        };\r
-\r
-        BOOST_PP_REPEAT_FROM_TO(1, BOOST_PP_INC(BOOST_MPL_STRING_MAX_PARAMS), M0, ~)\r
-        #undef M0\r
-    };\r
-\r
-    template<>\r
-    struct end_impl<mpl::string_tag>::apply<mpl::string<> >\r
-    {\r
-        typedef mpl::string_iterator<mpl::string<>, 0, 0> type;\r
-    };\r
-\r
-    template<typename Tag>\r
-    struct push_back_impl;\r
-\r
-    template<>\r
-    struct push_back_impl<mpl::string_tag>\r
-    {\r
-        template<typename Sequence, typename Value, bool B = (4==BOOST_MPL_MULTICHAR_LENGTH(Sequence::back_))>\r
-        struct apply\r
-        {\r
-            BOOST_MPL_ASSERT_MSG(\r
-                (BOOST_MPL_LIMIT_STRING_SIZE != mpl::size<Sequence>::type::value)\r
-              , PUSH_BACK_FAILED_MPL_STRING_IS_FULL\r
-              , (Sequence)\r
-            );\r
-            // If the above assertion didn't fire, then the string is sparse.\r
-            // Repack the string and retry the push_back\r
-            typedef\r
-                typename mpl::push_back<\r
-                    typename mpl::copy<\r
-                        Sequence\r
-                      , mpl::back_inserter<mpl::string<> >\r
-                    >::type\r
-                  , Value\r
-                >::type\r
-            type;\r
-        };\r
-\r
-        template<typename Value>\r
-        struct apply<mpl::string<>, Value, false>\r
-        {\r
-            typedef mpl::string<(char)Value::value> type;\r
-        };\r
-\r
-        #define M0(z,n,data)                                                                        \\r
-        template<BOOST_PP_ENUM_PARAMS_Z(z, n, int C), typename Value>                               \\r
-        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, n, C)>, Value, false>                    \\r
-        {                                                                                           \\r
-            typedef                                                                                 \\r
-                mpl::string<                                                                        \\r
-                    BOOST_PP_ENUM_PARAMS_Z(z, BOOST_PP_DEC(n), C)                                   \\r
-                    BOOST_PP_COMMA_IF(BOOST_PP_DEC(n))                                              \\r
-                    ((unsigned)BOOST_PP_CAT(C,BOOST_PP_DEC(n))>0xffffff)                            \\r
-                    ?BOOST_PP_CAT(C,BOOST_PP_DEC(n))                                                \\r
-                    :BOOST_MPL_MULTICHAR_PUSH_BACK(BOOST_PP_CAT(C,BOOST_PP_DEC(n)), Value::value)   \\r
-                  , ((unsigned)BOOST_PP_CAT(C,BOOST_PP_DEC(n))>0xffffff)                            \\r
-                    ?(char)Value::value                                                             \\r
-                    :0                                                                              \\r
-                >                                                                                   \\r
-            type;                                                                                   \\r
-        };\r
-\r
-        BOOST_PP_REPEAT_FROM_TO(1, BOOST_MPL_STRING_MAX_PARAMS, M0, ~)\r
-        #undef M0\r
-\r
-        template<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, int C), typename Value>\r
-        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)>, Value, false>\r
-        {\r
-            typedef\r
-                mpl::string<\r
-                    BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(BOOST_MPL_STRING_MAX_PARAMS), C)\r
-                  , BOOST_MPL_MULTICHAR_PUSH_BACK(BOOST_PP_CAT(C,BOOST_PP_DEC(BOOST_MPL_STRING_MAX_PARAMS)), Value::value)\r
-                >\r
-            type;\r
-        };\r
-    };\r
-\r
-    template<typename Tag>\r
-    struct pop_back_impl;\r
-\r
-    template<>\r
-    struct pop_back_impl<mpl::string_tag>\r
-    {\r
-        template<typename Sequence>\r
-        struct apply;\r
-\r
-        #define M0(z,n,data)                                                                        \\r
-        template<BOOST_PP_ENUM_PARAMS_Z(z, n, int C)>                                               \\r
-        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, n, C)> >                                 \\r
-        {                                                                                           \\r
-            BOOST_MPL_ASSERT_MSG((C0 != 0), POP_BACK_FAILED_MPL_STRING_IS_EMPTY, (mpl::string<>));  \\r
-            typedef                                                                                 \\r
-                mpl::string<                                                                        \\r
-                    BOOST_PP_ENUM_PARAMS_Z(z, BOOST_PP_DEC(n), C)                                   \\r
-                    BOOST_PP_COMMA_IF(BOOST_PP_DEC(n))                                              \\r
-                    BOOST_MPL_MULTICHAR_POP_BACK(BOOST_PP_CAT(C,BOOST_PP_DEC(n)))                   \\r
-                >                                                                                   \\r
-            type;                                                                                   \\r
-        };\r
-\r
-        BOOST_PP_REPEAT_FROM_TO(1, BOOST_PP_INC(BOOST_MPL_STRING_MAX_PARAMS), M0, ~)\r
-        #undef M0\r
-    };\r
-\r
-    template<typename Tag>\r
-    struct push_front_impl;\r
-\r
-    template<>\r
-    struct push_front_impl<mpl::string_tag>\r
-    {\r
-        template<typename Sequence, typename Value, bool B = (4==BOOST_MPL_MULTICHAR_LENGTH(Sequence::front_))>\r
-        struct apply\r
-        {\r
-            BOOST_MPL_ASSERT_MSG(\r
-                (BOOST_MPL_LIMIT_STRING_SIZE != mpl::size<Sequence>::type::value)\r
-              , PUSH_FRONT_FAILED_MPL_STRING_IS_FULL\r
-              , (Sequence)\r
-            );\r
-            // If the above assertion didn't fire, then the string is sparse.\r
-            // Repack the string and retry the push_front.\r
-            typedef\r
-                typename mpl::push_front<\r
-                    typename mpl::reverse_copy<\r
-                        Sequence\r
-                      , mpl::front_inserter<string<> >\r
-                    >::type\r
-                  , Value\r
-                >::type\r
-            type;\r
-        };\r
-\r
-        #if !BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))\r
-        template<typename Value>\r
-        struct apply<mpl::string<>, Value, false>\r
-        {\r
-            typedef mpl::string<(char)Value::value> type;\r
-        };\r
-        #endif\r
-\r
-        #define M0(z,n,data)                                                                        \\r
-        template<BOOST_PP_ENUM_PARAMS_Z(z, n, int C), typename Value>                               \\r
-        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, n, C)>, Value, true>                     \\r
-        {                                                                                           \\r
-            typedef                                                                                 \\r
-                mpl::string<                                                                        \\r
-                    (char)Value::value                                                              \\r
-                    BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, C)                                        \\r
-                >                                                                                   \\r
-            type;                                                                                   \\r
-        };\r
-\r
-        BOOST_PP_REPEAT_FROM_TO(1, BOOST_MPL_STRING_MAX_PARAMS, M0, ~)\r
-        #undef M0\r
-\r
-        template<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, int C), typename Value>\r
-        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)>, Value, false>\r
-        {\r
-            typedef\r
-                mpl::string<\r
-                    BOOST_MPL_MULTICHAR_PUSH_FRONT(C0, Value::value)\r
-                  , BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)\r
-                >\r
-            type0;\r
-\r
-            #if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))\r
-            typedef\r
-                typename mpl::if_<\r
-                    mpl::empty<mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)> >\r
-                  , mpl::string<(char)Value::value>\r
-                  , type0\r
-                >::type\r
-            type;\r
-            #else\r
-            typedef type0 type;\r
-            #endif\r
-        };\r
-    };\r
-\r
-    template<typename Tag>\r
-    struct pop_front_impl;\r
-\r
-    template<>\r
-    struct pop_front_impl<mpl::string_tag>\r
-    {\r
-        template<typename Sequence, bool B = (1==BOOST_MPL_MULTICHAR_LENGTH(Sequence::front_))>\r
-        struct apply;\r
-\r
-        #define M0(z,n,data)                                                                        \\r
-        template<BOOST_PP_ENUM_PARAMS_Z(z, n, int C)>                                               \\r
-        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, n, C)>, true>                            \\r
-        {                                                                                           \\r
-            BOOST_MPL_ASSERT_MSG((C0 != 0), POP_FRONT_FAILED_MPL_STRING_IS_EMPTY, (mpl::string<>)); \\r
-            typedef                                                                                 \\r
-                mpl::string<BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, n, C)>                                \\r
-            type;                                                                                   \\r
-        };\r
-\r
-        BOOST_PP_REPEAT_FROM_TO(1, BOOST_MPL_STRING_MAX_PARAMS, M0, ~)\r
-        #undef M0\r
-\r
-        template<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, int C)>\r
-        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)>, false>\r
-        {\r
-            typedef\r
-                mpl::string<\r
-                    BOOST_MPL_MULTICHAR_POP_FRONT(C0)\r
-                  , BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)\r
-                >\r
-            type;\r
-        };\r
-    };\r
-\r
-    template<typename Tag>\r
-    struct insert_range_impl;\r
-\r
-    template<>\r
-    struct insert_range_impl<mpl::string_tag>\r
-    {\r
-        template<typename Sequence, typename Pos, typename Range>\r
-        struct apply\r
-          : mpl::copy<\r
-                mpl::joint_view<\r
-                    mpl::iterator_range<\r
-                        mpl::string_iterator<Sequence, 0, 0>\r
-                      , Pos\r
-                    >\r
-                  , mpl::joint_view<\r
-                        Range\r
-                      , mpl::iterator_range<\r
-                            Pos\r
-                          , typename mpl::end<Sequence>::type\r
-                        >\r
-                    >\r
-                >\r
-              , mpl::back_inserter<mpl::string<> >\r
-            >\r
-        {};\r
-    };\r
-\r
-    template<typename Tag>\r
-    struct insert_impl;\r
-\r
-    template<>\r
-    struct insert_impl<mpl::string_tag>\r
-    {\r
-        template<typename Sequence, typename Pos, typename Value>\r
-        struct apply\r
-          : mpl::insert_range<Sequence, Pos, mpl::string<(char)Value::value> >\r
-        {};\r
-    };\r
-\r
-    template<typename Tag>\r
-    struct erase_impl;\r
-\r
-    template<>\r
-    struct erase_impl<mpl::string_tag>\r
-    {\r
-        template<typename Sequence, typename First, typename Last>\r
-        struct apply\r
-          : mpl::copy<\r
-                mpl::joint_view<\r
-                    mpl::iterator_range<\r
-                        mpl::string_iterator<Sequence, 0, 0>\r
-                      , First\r
-                    >\r
-                  , mpl::iterator_range<\r
-                        typename mpl::if_na<Last, typename mpl::next<First>::type>::type\r
-                      , typename mpl::end<Sequence>::type\r
-                    >\r
-                >\r
-              , mpl::back_inserter<mpl::string<> >\r
-            >\r
-        {};\r
-    };\r
-\r
-    template<typename Tag>\r
-    struct clear_impl;\r
-\r
-    template<>\r
-    struct clear_impl<mpl::string_tag>\r
-    {\r
-        template<typename>\r
-        struct apply\r
-        {\r
-            typedef mpl::string<> type;\r
-        };\r
-    };\r
-\r
-    #define M0(z, n, data)                                                                            \\r
-    template<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, int C), int J>                         \\r
-    struct string_iterator<mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)>, n, J>   \\r
-    {                                                                                                 \\r
-        enum { eomc_ = (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == J + 1) };                   \\r
-        typedef mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)> string;             \\r
-        typedef std::bidirectional_iterator_tag category;                                             \\r
-        typedef                                                                                       \\r
-            mpl::string_iterator<string, n + eomc_, eomc_ ? 0 : J + 1>                                \\r
-        next;                                                                                         \\r
-        typedef                                                                                       \\r
-            mpl::string_iterator<string, n, J - 1>                                                    \\r
-        prior;                                                                                        \\r
-        typedef mpl::char_<BOOST_MPL_MULTICHAR_AT(BOOST_PP_CAT(C, n), J)> type;                       \\r
-    };                                                                                                \\r
-    template<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, int C)>                                \\r
-    struct string_iterator<mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)>, n, 0>   \\r
-    {                                                                                                 \\r
-        enum { eomc_ = (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == 1) };                       \\r
-        typedef mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)> string;             \\r
-        typedef std::bidirectional_iterator_tag category;                                             \\r
-        typedef                                                                                       \\r
-            mpl::string_iterator<string, n + eomc_, !eomc_>                                           \\r
-        next;                                                                                         \\r
-        typedef                                                                                       \\r
-            mpl::string_iterator<                                                                     \\r
-                string                                                                                \\r
-              , n - 1                                                                                 \\r
-              , BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, BOOST_PP_DEC(n))) - 1                      \\r
-            >                                                                                         \\r
-        prior;                                                                                        \\r
-        typedef mpl::char_<BOOST_MPL_MULTICHAR_AT(BOOST_PP_CAT(C, n), 0)> type;                       \\r
-    };\r
-\r
-    BOOST_PP_REPEAT(BOOST_MPL_STRING_MAX_PARAMS, M0, ~)\r
-    #undef M0\r
-\r
-    template<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, int C)>\r
-    struct string\r
-    {\r
-        /// INTERNAL ONLY\r
-        enum\r
-        {\r
-            front_  = C0\r
-          , back_   = BOOST_PP_CAT(C, BOOST_PP_DEC(BOOST_MPL_STRING_MAX_PARAMS))\r
-        };\r
-\r
-        typedef char        value_type;\r
-        typedef string      type;\r
-        typedef string_tag  tag;\r
-    };\r
-\r
-    namespace aux_\r
-    {\r
-        template<typename It, typename End>\r
-        struct next_unless\r
-          : mpl::next<It>\r
-        {};\r
-\r
-        template<typename End>\r
-        struct next_unless<End, End>\r
-        {\r
-            typedef End type;\r
-        };\r
-\r
-        template<typename It, typename End>\r
-        struct deref_unless\r
-          : mpl::deref<It>\r
-        {};\r
-\r
-        template<typename End>\r
-        struct deref_unless<End, End>\r
-        {\r
-            typedef mpl::char_<'\0'> type;\r
-        };\r
-    }\r
-\r
-    template<typename Sequence>\r
-    struct c_str\r
-    {\r
-        typedef typename mpl::end<Sequence>::type iend;\r
-        typedef typename mpl::begin<Sequence>::type i0;\r
-        #define M0(z, n, data)                                                                      \\r
-        typedef                                                                                     \\r
-            typename mpl::aux_::next_unless<BOOST_PP_CAT(i, n), iend>::type                         \\r
-        BOOST_PP_CAT(i, BOOST_PP_INC(n));\r
-        BOOST_PP_REPEAT(BOOST_MPL_LIMIT_STRING_SIZE, M0, ~)\r
-        #undef M0\r
-\r
-        typedef c_str type;\r
-        static typename Sequence::value_type const value[BOOST_MPL_LIMIT_STRING_SIZE+1];\r
-    };\r
-\r
-    template<typename Sequence>\r
-    typename Sequence::value_type const c_str<Sequence>::value[BOOST_MPL_LIMIT_STRING_SIZE+1] =\r
-    {\r
-        #define M0(z, n, data)                                                                      \\r
-        mpl::aux_::deref_unless<BOOST_PP_CAT(i, n), iend>::type::value,\r
-        BOOST_PP_REPEAT(BOOST_MPL_LIMIT_STRING_SIZE, M0, ~)\r
-        #undef M0\r
-        '\0'\r
-    };\r
-\r
-}} // namespace boost\r
-\r
-#endif // BOOST_MPL_STRING_HPP_INCLUDED\r
+
+#ifndef BOOST_MPL_STRING_HPP_INCLUDED
+#define BOOST_MPL_STRING_HPP_INCLUDED
+
+// Copyright Eric Niebler 2009
+//
+// 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/mpl for documentation.
+
+// $Id: string.hpp 49239 2009-04-01 09:10:26Z eric_niebler $
+// $Date: 2009-04-01 02:10:26 -0700 (Wed, 1 Apr 2009) $
+// $Revision: 49239 $
+//
+// Thanks to:
+//   Dmitry Goncharov for porting this to the Sun compiler
+
+#include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>
+#include <boost/detail/endian.hpp>
+#include <boost/mpl/limits/string.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/char.hpp>
+#include <boost/mpl/copy.hpp>
+#include <boost/mpl/size.hpp>
+#include <boost/mpl/empty.hpp>
+#include <boost/mpl/assert.hpp>
+#include <boost/mpl/size_t.hpp>
+#include <boost/mpl/begin_end.hpp>
+#include <boost/mpl/joint_view.hpp>
+#include <boost/mpl/insert_range.hpp>
+#include <boost/mpl/back_inserter.hpp>
+#include <boost/mpl/front_inserter.hpp>
+#include <boost/mpl/iterator_range.hpp>
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/preprocessor/arithmetic/add.hpp>
+#include <boost/preprocessor/arithmetic/div.hpp>
+#include <boost/preprocessor/punctuation/comma_if.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#include <boost/preprocessor/repetition/enum_shifted_params.hpp>
+#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
+#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
+
+#include <iterator> // for bidirectional_iterator_tag
+#include <climits>
+
+namespace boost { namespace mpl
+{
+    #define BOOST_MPL_STRING_MAX_PARAMS                                                             \
+      BOOST_PP_DIV(BOOST_PP_ADD(BOOST_MPL_LIMIT_STRING_SIZE, 3), 4)
+
+    // Low-level bit-twiddling is done by macros. Any implementation-defined behavior of
+    // multi-character literals should be localized to these macros.
+
+    #define BOOST_MPL_MULTICHAR_LENGTH(c)                                                           \
+      (std::size_t)((c<CHAR_MIN) ? 4 : ((c>0xffffff)+(c>0xffff)+(c>0xff)+1))
+
+    #if defined(BOOST_LITTLE_ENDIAN) && defined(__SUNPRO_CC)
+
+        #define BOOST_MPL_MULTICHAR_AT(c,i)                                                         \
+          (char)(0xff&((unsigned)(c)>>(8*(std::size_t)(i))))
+
+        #define BOOST_MPL_MULTICHAR_PUSH_BACK(c,i)                                                  \
+          ((((unsigned char)(i))<<(BOOST_MPL_MULTICHAR_LENGTH(c)*8))|(unsigned)(c))
+
+        #define BOOST_MPL_MULTICHAR_PUSH_FRONT(c,i)                                                 \
+          (((unsigned)(c)<<8)|(unsigned char)(i))
+
+        #define BOOST_MPL_MULTICHAR_POP_BACK(c)                                                     \
+          (((1<<((BOOST_MPL_MULTICHAR_LENGTH(c)-1)*8))-1)&(unsigned)(c))
+
+        #define BOOST_MPL_MULTICHAR_POP_FRONT(c)                                                    \
+          ((unsigned)(c)>>8)
+
+    #else
+
+        #define BOOST_MPL_MULTICHAR_AT(c,i)                                                         \
+          (char)(0xff&((unsigned)(c)>>(8*(BOOST_MPL_MULTICHAR_LENGTH(c)-(std::size_t)(i)-1))))
+
+        #define BOOST_MPL_MULTICHAR_PUSH_BACK(c,i)                                                  \
+          (((unsigned)(c)<<8)|(unsigned char)(i))
+
+        #define BOOST_MPL_MULTICHAR_PUSH_FRONT(c,i)                                                 \
+          ((((unsigned char)(i))<<(BOOST_MPL_MULTICHAR_LENGTH(c)*8))|(unsigned)(c))
+
+        #define BOOST_MPL_MULTICHAR_POP_BACK(c)                                                     \
+          ((unsigned)(c)>>8)
+
+        #define BOOST_MPL_MULTICHAR_POP_FRONT(c)                                                    \
+          (((1<<((BOOST_MPL_MULTICHAR_LENGTH(c)-1)*8))-1)&(unsigned)(c))
+
+    #endif
+
+    struct string_tag;
+    struct string_iterator_tag;
+
+    template<BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(BOOST_MPL_STRING_MAX_PARAMS, int C, 0)>
+    struct string;
+
+    template<typename Sequence, int I, int J>
+    struct string_iterator;
+
+    template<typename Sequence>
+    struct sequence_tag;
+
+    template<typename Tag>
+    struct size_impl;
+
+    template<>
+    struct size_impl<mpl::string_tag>
+    {
+        template<typename Sequence>
+        struct apply;
+
+        #define M0(z, n, data)                                                                      \
+        + BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C,n))
+
+        #define M1(z, n, data)                                                                      \
+        template<BOOST_PP_ENUM_PARAMS_Z(z, n, int C)>                                               \
+        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, n, C)> >                                 \
+          : mpl::size_t<(0 BOOST_PP_REPEAT_ ## z(n, M0, ~))>                                        \
+        {};
+
+        BOOST_PP_REPEAT_FROM_TO(1, BOOST_PP_INC(BOOST_MPL_STRING_MAX_PARAMS), M1, ~)
+        #undef M0
+        #undef M1
+    };
+
+    template<>
+    struct size_impl<mpl::string_tag>::apply<mpl::string<> >
+      : mpl::size_t<0>
+    {};
+
+    template<typename Tag>
+    struct begin_impl;
+
+    template<>
+    struct begin_impl<mpl::string_tag>
+    {
+        template<typename Sequence>
+        struct apply
+        {
+            typedef mpl::string_iterator<Sequence, 0, 0> type;
+        };
+    };
+
+    template<typename Tag>
+    struct end_impl;
+
+    template<>
+    struct end_impl<mpl::string_tag>
+    {
+        template<typename Sequence>
+        struct apply;
+
+        #define M0(z,n,data)                                                                        \
+        template<BOOST_PP_ENUM_PARAMS_Z(z, n, int C)>                                               \
+        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, n, C)> >                                 \
+        {                                                                                           \
+            typedef mpl::string_iterator<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, n, C)>, n, 0> type;  \
+        };
+
+        BOOST_PP_REPEAT_FROM_TO(1, BOOST_PP_INC(BOOST_MPL_STRING_MAX_PARAMS), M0, ~)
+        #undef M0
+    };
+
+    template<>
+    struct end_impl<mpl::string_tag>::apply<mpl::string<> >
+    {
+        typedef mpl::string_iterator<mpl::string<>, 0, 0> type;
+    };
+
+    template<typename Tag>
+    struct push_back_impl;
+
+    template<>
+    struct push_back_impl<mpl::string_tag>
+    {
+        template<typename Sequence, typename Value, bool B = (4==BOOST_MPL_MULTICHAR_LENGTH(Sequence::back_))>
+        struct apply
+        {
+            BOOST_MPL_ASSERT_MSG(
+                (BOOST_MPL_LIMIT_STRING_SIZE != mpl::size<Sequence>::type::value)
+              , PUSH_BACK_FAILED_MPL_STRING_IS_FULL
+              , (Sequence)
+            );
+            // If the above assertion didn't fire, then the string is sparse.
+            // Repack the string and retry the push_back
+            typedef
+                typename mpl::push_back<
+                    typename mpl::copy<
+                        Sequence
+                      , mpl::back_inserter<mpl::string<> >
+                    >::type
+                  , Value
+                >::type
+            type;
+        };
+
+        template<typename Value>
+        struct apply<mpl::string<>, Value, false>
+        {
+            typedef mpl::string<(char)Value::value> type;
+        };
+
+        #define M0(z,n,data)                                                                        \
+        template<BOOST_PP_ENUM_PARAMS_Z(z, n, int C), typename Value>                               \
+        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, n, C)>, Value, false>                    \
+        {                                                                                           \
+            typedef                                                                                 \
+                mpl::string<                                                                        \
+                    BOOST_PP_ENUM_PARAMS_Z(z, BOOST_PP_DEC(n), C)                                   \
+                    BOOST_PP_COMMA_IF(BOOST_PP_DEC(n))                                              \
+                    ((unsigned)BOOST_PP_CAT(C,BOOST_PP_DEC(n))>0xffffff)                            \
+                    ?BOOST_PP_CAT(C,BOOST_PP_DEC(n))                                                \
+                    :BOOST_MPL_MULTICHAR_PUSH_BACK(BOOST_PP_CAT(C,BOOST_PP_DEC(n)), Value::value)   \
+                  , ((unsigned)BOOST_PP_CAT(C,BOOST_PP_DEC(n))>0xffffff)                            \
+                    ?(char)Value::value                                                             \
+                    :0                                                                              \
+                >                                                                                   \
+            type;                                                                                   \
+        };
+
+        BOOST_PP_REPEAT_FROM_TO(1, BOOST_MPL_STRING_MAX_PARAMS, M0, ~)
+        #undef M0
+
+        template<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, int C), typename Value>
+        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)>, Value, false>
+        {
+            typedef
+                mpl::string<
+                    BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(BOOST_MPL_STRING_MAX_PARAMS), C)
+                  , BOOST_MPL_MULTICHAR_PUSH_BACK(BOOST_PP_CAT(C,BOOST_PP_DEC(BOOST_MPL_STRING_MAX_PARAMS)), Value::value)
+                >
+            type;
+        };
+    };
+
+    template<typename Tag>
+    struct pop_back_impl;
+
+    template<>
+    struct pop_back_impl<mpl::string_tag>
+    {
+        template<typename Sequence>
+        struct apply;
+
+        #define M0(z,n,data)                                                                        \
+        template<BOOST_PP_ENUM_PARAMS_Z(z, n, int C)>                                               \
+        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, n, C)> >                                 \
+        {                                                                                           \
+            BOOST_MPL_ASSERT_MSG((C0 != 0), POP_BACK_FAILED_MPL_STRING_IS_EMPTY, (mpl::string<>));  \
+            typedef                                                                                 \
+                mpl::string<                                                                        \
+                    BOOST_PP_ENUM_PARAMS_Z(z, BOOST_PP_DEC(n), C)                                   \
+                    BOOST_PP_COMMA_IF(BOOST_PP_DEC(n))                                              \
+                    BOOST_MPL_MULTICHAR_POP_BACK(BOOST_PP_CAT(C,BOOST_PP_DEC(n)))                   \
+                >                                                                                   \
+            type;                                                                                   \
+        };
+
+        BOOST_PP_REPEAT_FROM_TO(1, BOOST_PP_INC(BOOST_MPL_STRING_MAX_PARAMS), M0, ~)
+        #undef M0
+    };
+
+    template<typename Tag>
+    struct push_front_impl;
+
+    template<>
+    struct push_front_impl<mpl::string_tag>
+    {
+        template<typename Sequence, typename Value, bool B = (4==BOOST_MPL_MULTICHAR_LENGTH(Sequence::front_))>
+        struct apply
+        {
+            BOOST_MPL_ASSERT_MSG(
+                (BOOST_MPL_LIMIT_STRING_SIZE != mpl::size<Sequence>::type::value)
+              , PUSH_FRONT_FAILED_MPL_STRING_IS_FULL
+              , (Sequence)
+            );
+            // If the above assertion didn't fire, then the string is sparse.
+            // Repack the string and retry the push_front.
+            typedef
+                typename mpl::push_front<
+                    typename mpl::reverse_copy<
+                        Sequence
+                      , mpl::front_inserter<string<> >
+                    >::type
+                  , Value
+                >::type
+            type;
+        };
+
+        #if !BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
+        template<typename Value>
+        struct apply<mpl::string<>, Value, false>
+        {
+            typedef mpl::string<(char)Value::value> type;
+        };
+        #endif
+
+        #define M0(z,n,data)                                                                        \
+        template<BOOST_PP_ENUM_PARAMS_Z(z, n, int C), typename Value>                               \
+        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, n, C)>, Value, true>                     \
+        {                                                                                           \
+            typedef                                                                                 \
+                mpl::string<                                                                        \
+                    (char)Value::value                                                              \
+                    BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, C)                                        \
+                >                                                                                   \
+            type;                                                                                   \
+        };
+
+        BOOST_PP_REPEAT_FROM_TO(1, BOOST_MPL_STRING_MAX_PARAMS, M0, ~)
+        #undef M0
+
+        template<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, int C), typename Value>
+        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)>, Value, false>
+        {
+            typedef
+                mpl::string<
+                    BOOST_MPL_MULTICHAR_PUSH_FRONT(C0, Value::value)
+                  , BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)
+                >
+            type0;
+
+            #if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
+            typedef
+                typename mpl::if_<
+                    mpl::empty<mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)> >
+                  , mpl::string<(char)Value::value>
+                  , type0
+                >::type
+            type;
+            #else
+            typedef type0 type;
+            #endif
+        };
+    };
+
+    template<typename Tag>
+    struct pop_front_impl;
+
+    template<>
+    struct pop_front_impl<mpl::string_tag>
+    {
+        template<typename Sequence, bool B = (1==BOOST_MPL_MULTICHAR_LENGTH(Sequence::front_))>
+        struct apply;
+
+        #define M0(z,n,data)                                                                        \
+        template<BOOST_PP_ENUM_PARAMS_Z(z, n, int C)>                                               \
+        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, n, C)>, true>                            \
+        {                                                                                           \
+            BOOST_MPL_ASSERT_MSG((C0 != 0), POP_FRONT_FAILED_MPL_STRING_IS_EMPTY, (mpl::string<>)); \
+            typedef                                                                                 \
+                mpl::string<BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, n, C)>                                \
+            type;                                                                                   \
+        };
+
+        BOOST_PP_REPEAT_FROM_TO(1, BOOST_MPL_STRING_MAX_PARAMS, M0, ~)
+        #undef M0
+
+        template<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, int C)>
+        struct apply<mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)>, false>
+        {
+            typedef
+                mpl::string<
+                    BOOST_MPL_MULTICHAR_POP_FRONT(C0)
+                  , BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)
+                >
+            type;
+        };
+    };
+
+    template<typename Tag>
+    struct insert_range_impl;
+
+    template<>
+    struct insert_range_impl<mpl::string_tag>
+    {
+        template<typename Sequence, typename Pos, typename Range>
+        struct apply
+          : mpl::copy<
+                mpl::joint_view<
+                    mpl::iterator_range<
+                        mpl::string_iterator<Sequence, 0, 0>
+                      , Pos
+                    >
+                  , mpl::joint_view<
+                        Range
+                      , mpl::iterator_range<
+                            Pos
+                          , typename mpl::end<Sequence>::type
+                        >
+                    >
+                >
+              , mpl::back_inserter<mpl::string<> >
+            >
+        {};
+    };
+
+    template<typename Tag>
+    struct insert_impl;
+
+    template<>
+    struct insert_impl<mpl::string_tag>
+    {
+        template<typename Sequence, typename Pos, typename Value>
+        struct apply
+          : mpl::insert_range<Sequence, Pos, mpl::string<(char)Value::value> >
+        {};
+    };
+
+    template<typename Tag>
+    struct erase_impl;
+
+    template<>
+    struct erase_impl<mpl::string_tag>
+    {
+        template<typename Sequence, typename First, typename Last>
+        struct apply
+          : mpl::copy<
+                mpl::joint_view<
+                    mpl::iterator_range<
+                        mpl::string_iterator<Sequence, 0, 0>
+                      , First
+                    >
+                  , mpl::iterator_range<
+                        typename mpl::if_na<Last, typename mpl::next<First>::type>::type
+                      , typename mpl::end<Sequence>::type
+                    >
+                >
+              , mpl::back_inserter<mpl::string<> >
+            >
+        {};
+    };
+
+    template<typename Tag>
+    struct clear_impl;
+
+    template<>
+    struct clear_impl<mpl::string_tag>
+    {
+        template<typename>
+        struct apply
+        {
+            typedef mpl::string<> type;
+        };
+    };
+
+    #define M0(z, n, data)                                                                            \
+    template<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, int C), int J>                         \
+    struct string_iterator<mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)>, n, J>   \
+    {                                                                                                 \
+        enum { eomc_ = (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == J + 1) };                   \
+        typedef mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)> string;             \
+        typedef std::bidirectional_iterator_tag category;                                             \
+        typedef                                                                                       \
+            mpl::string_iterator<string, n + eomc_, eomc_ ? 0 : J + 1>                                \
+        next;                                                                                         \
+        typedef                                                                                       \
+            mpl::string_iterator<string, n, J - 1>                                                    \
+        prior;                                                                                        \
+        typedef mpl::char_<BOOST_MPL_MULTICHAR_AT(BOOST_PP_CAT(C, n), J)> type;                       \
+    };                                                                                                \
+    template<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, int C)>                                \
+    struct string_iterator<mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)>, n, 0>   \
+    {                                                                                                 \
+        enum { eomc_ = (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == 1) };                       \
+        typedef mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)> string;             \
+        typedef std::bidirectional_iterator_tag category;                                             \
+        typedef                                                                                       \
+            mpl::string_iterator<string, n + eomc_, !eomc_>                                           \
+        next;                                                                                         \
+        typedef                                                                                       \
+            mpl::string_iterator<                                                                     \
+                string                                                                                \
+              , n - 1                                                                                 \
+              , BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, BOOST_PP_DEC(n))) - 1                      \
+            >                                                                                         \
+        prior;                                                                                        \
+        typedef mpl::char_<BOOST_MPL_MULTICHAR_AT(BOOST_PP_CAT(C, n), 0)> type;                       \
+    };
+
+    BOOST_PP_REPEAT(BOOST_MPL_STRING_MAX_PARAMS, M0, ~)
+    #undef M0
+
+    template<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, int C)>
+    struct string
+    {
+        /// INTERNAL ONLY
+        enum
+        {
+            front_  = C0
+          , back_   = BOOST_PP_CAT(C, BOOST_PP_DEC(BOOST_MPL_STRING_MAX_PARAMS))
+        };
+
+        typedef char        value_type;
+        typedef string      type;
+        typedef string_tag  tag;
+    };
+
+    namespace aux_
+    {
+        template<typename It, typename End>
+        struct next_unless
+          : mpl::next<It>
+        {};
+
+        template<typename End>
+        struct next_unless<End, End>
+        {
+            typedef End type;
+        };
+
+        template<typename It, typename End>
+        struct deref_unless
+          : mpl::deref<It>
+        {};
+
+        template<typename End>
+        struct deref_unless<End, End>
+        {
+            typedef mpl::char_<'\0'> type;
+        };
+    }
+
+    template<typename Sequence>
+    struct c_str
+    {
+        typedef typename mpl::end<Sequence>::type iend;
+        typedef typename mpl::begin<Sequence>::type i0;
+        #define M0(z, n, data)                                                                      \
+        typedef                                                                                     \
+            typename mpl::aux_::next_unless<BOOST_PP_CAT(i, n), iend>::type                         \
+        BOOST_PP_CAT(i, BOOST_PP_INC(n));
+        BOOST_PP_REPEAT(BOOST_MPL_LIMIT_STRING_SIZE, M0, ~)
+        #undef M0
+
+        typedef c_str type;
+        static typename Sequence::value_type const value[BOOST_MPL_LIMIT_STRING_SIZE+1];
+    };
+
+    template<typename Sequence>
+    typename Sequence::value_type const c_str<Sequence>::value[BOOST_MPL_LIMIT_STRING_SIZE+1] =
+    {
+        #define M0(z, n, data)                                                                      \
+        mpl::aux_::deref_unless<BOOST_PP_CAT(i, n), iend>::type::value,
+        BOOST_PP_REPEAT(BOOST_MPL_LIMIT_STRING_SIZE, M0, ~)
+        #undef M0
+        '\0'
+    };
+
+}} // namespace boost
+
+#endif // BOOST_MPL_STRING_HPP_INCLUDED
index 7c59737365dda9b936261ac2b683af30b40973ad..ef1ecaf3a066461dc4e887aa2775d3d99bee20fb 100644 (file)
@@ -1,84 +1,84 @@
-// Copyright (C) 2005, Fernando Luis Cacciola Carballal.\r
-//\r
-// Use, modification, and distribution is subject to the Boost Software\r
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// See http://www.boost.org/lib/optional for documentation.\r
-//\r
-// You are welcome to contact the author at:\r
-//  fernando_cacciola@hotmail.com\r
-//\r
-#ifndef BOOST_OPTIONAL_OPTIONAL_IO_FLC_19NOV2002_HPP\r
-#define BOOST_OPTIONAL_OPTIONAL_IO_FLC_19NOV2002_HPP\r
-\r
-#if defined __GNUC__\r
-#  if (__GNUC__ == 2 && __GNUC_MINOR__ <= 97) \r
-#    define BOOST_OPTIONAL_NO_TEMPLATED_STREAMS\r
-#  endif\r
-#endif // __GNUC__\r
-\r
-#if defined BOOST_OPTIONAL_NO_TEMPLATED_STREAMS\r
-#  include <iostream>\r
-#else \r
-#  include <istream>\r
-#  include <ostream>\r
-#endif  \r
-\r
-\r
-#include "boost/optional/optional.hpp"\r
-#include "boost/utility/value_init.hpp"\r
-\r
-namespace boost\r
-{\r
-\r
-#if defined (BOOST_NO_TEMPLATED_STREAMS)\r
-template<class T>\r
-inline std::ostream& operator<<(std::ostream& out, optional<T> const& v)\r
-#else\r
-template<class CharType, class CharTrait, class T>\r
-inline\r
-std::basic_ostream<CharType, CharTrait>&\r
-operator<<(std::basic_ostream<CharType, CharTrait>& out, optional<T> const& v)\r
-#endif\r
-{\r
-  if ( out.good() )\r
-  {\r
-    if ( !v )\r
-         out << "--" ;\r
-    else out << ' ' << *v ;\r
-  }\r
-\r
-  return out;\r
-}\r
-\r
-#if defined (BOOST_NO_TEMPLATED_STREAMS)\r
-template<class T>\r
-inline std::istream& operator>>(std::istream& in, optional<T>& v)\r
-#else\r
-template<class CharType, class CharTrait, class T>\r
-inline\r
-std::basic_istream<CharType, CharTrait>&\r
-operator>>(std::basic_istream<CharType, CharTrait>& in, optional<T>& v)\r
-#endif\r
-{\r
-  if ( in.good() )\r
-  {\r
-    int d = in.get();\r
-    if ( d == ' ' )\r
-    {\r
-      T x ;\r
-      in >> x;\r
-      v = x ;\r
-    }\r
-    else\r
-      v = optional<T>() ;\r
-  }\r
-\r
-  return in;\r
-}\r
-\r
-} // namespace boost\r
-\r
-#endif\r
-\r
+// Copyright (C) 2005, Fernando Luis Cacciola Carballal.
+//
+// Use, modification, and distribution is subject to the Boost Software
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/lib/optional for documentation.
+//
+// You are welcome to contact the author at:
+//  fernando_cacciola@hotmail.com
+//
+#ifndef BOOST_OPTIONAL_OPTIONAL_IO_FLC_19NOV2002_HPP
+#define BOOST_OPTIONAL_OPTIONAL_IO_FLC_19NOV2002_HPP
+
+#if defined __GNUC__
+#  if (__GNUC__ == 2 && __GNUC_MINOR__ <= 97) 
+#    define BOOST_OPTIONAL_NO_TEMPLATED_STREAMS
+#  endif
+#endif // __GNUC__
+
+#if defined BOOST_OPTIONAL_NO_TEMPLATED_STREAMS
+#  include <iostream>
+#else 
+#  include <istream>
+#  include <ostream>
+#endif  
+
+
+#include "boost/optional/optional.hpp"
+#include "boost/utility/value_init.hpp"
+
+namespace boost
+{
+
+#if defined (BOOST_NO_TEMPLATED_STREAMS)
+template<class T>
+inline std::ostream& operator<<(std::ostream& out, optional<T> const& v)
+#else
+template<class CharType, class CharTrait, class T>
+inline
+std::basic_ostream<CharType, CharTrait>&
+operator<<(std::basic_ostream<CharType, CharTrait>& out, optional<T> const& v)
+#endif
+{
+  if ( out.good() )
+  {
+    if ( !v )
+         out << "--" ;
+    else out << ' ' << *v ;
+  }
+
+  return out;
+}
+
+#if defined (BOOST_NO_TEMPLATED_STREAMS)
+template<class T>
+inline std::istream& operator>>(std::istream& in, optional<T>& v)
+#else
+template<class CharType, class CharTrait, class T>
+inline
+std::basic_istream<CharType, CharTrait>&
+operator>>(std::basic_istream<CharType, CharTrait>& in, optional<T>& v)
+#endif
+{
+  if ( in.good() )
+  {
+    int d = in.get();
+    if ( d == ' ' )
+    {
+      T x ;
+      in >> x;
+      v = x ;
+    }
+    else
+      v = optional<T>() ;
+  }
+
+  return in;
+}
+
+} // namespace boost
+
+#endif
+
index 8b4de25fbdc90a821f08e9eb72159e360d4ddf44..106632a3dee617b2007626de2a2782eba6b9b9f9 100644 (file)
@@ -1,61 +1,61 @@
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP\r
-# define BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/inc.hpp>\r
-# include <boost/preprocessor/arithmetic/sub.hpp>\r
-# include <boost/preprocessor/comparison/less_equal.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/control/while.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-# include <boost/preprocessor/tuple/rem.hpp>\r
-#\r
-# /* BOOST_PP_DIV_BASE */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_DIV_BASE(x, y) BOOST_PP_WHILE(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))\r
-# else\r
-#    define BOOST_PP_DIV_BASE(x, y) BOOST_PP_DIV_BASE_I(x, y)\r
-#    define BOOST_PP_DIV_BASE_I(x, y) BOOST_PP_WHILE(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))\r
-# endif\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_DIV_BASE_P(d, rxy) BOOST_PP_DIV_BASE_P_IM(d, BOOST_PP_TUPLE_REM_3 rxy)\r
-#    define BOOST_PP_DIV_BASE_P_IM(d, im) BOOST_PP_DIV_BASE_P_I(d, im)\r
-# else\r
-#    define BOOST_PP_DIV_BASE_P(d, rxy) BOOST_PP_DIV_BASE_P_I(d, BOOST_PP_TUPLE_ELEM(3, 0, rxy), BOOST_PP_TUPLE_ELEM(3, 1, rxy), BOOST_PP_TUPLE_ELEM(3, 2, rxy))\r
-# endif\r
-#\r
-# define BOOST_PP_DIV_BASE_P_I(d, r, x, y) BOOST_PP_LESS_EQUAL_D(d, y, x)\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_DIV_BASE_O(d, rxy) BOOST_PP_DIV_BASE_O_IM(d, BOOST_PP_TUPLE_REM_3 rxy)\r
-#    define BOOST_PP_DIV_BASE_O_IM(d, im) BOOST_PP_DIV_BASE_O_I(d, im)\r
-# else\r
-#    define BOOST_PP_DIV_BASE_O(d, rxy) BOOST_PP_DIV_BASE_O_I(d, BOOST_PP_TUPLE_ELEM(3, 0, rxy), BOOST_PP_TUPLE_ELEM(3, 1, rxy), BOOST_PP_TUPLE_ELEM(3, 2, rxy))\r
-# endif\r
-#\r
-# define BOOST_PP_DIV_BASE_O_I(d, r, x, y) (BOOST_PP_INC(r), BOOST_PP_SUB_D(d, x, y), y)\r
-#\r
-# /* BOOST_PP_DIV_BASE_D */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_DIV_BASE_D(d, x, y) BOOST_PP_WHILE_ ## d(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))\r
-# else\r
-#    define BOOST_PP_DIV_BASE_D(d, x, y) BOOST_PP_DIV_BASE_D_I(d, x, y)\r
-#    define BOOST_PP_DIV_BASE_D_I(d, x, y) BOOST_PP_WHILE_ ## d(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))\r
-# endif\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP
+# define BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP
+#
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/arithmetic/sub.hpp>
+# include <boost/preprocessor/comparison/less_equal.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/control/while.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_DIV_BASE */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_DIV_BASE(x, y) BOOST_PP_WHILE(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))
+# else
+#    define BOOST_PP_DIV_BASE(x, y) BOOST_PP_DIV_BASE_I(x, y)
+#    define BOOST_PP_DIV_BASE_I(x, y) BOOST_PP_WHILE(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))
+# endif
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_DIV_BASE_P(d, rxy) BOOST_PP_DIV_BASE_P_IM(d, BOOST_PP_TUPLE_REM_3 rxy)
+#    define BOOST_PP_DIV_BASE_P_IM(d, im) BOOST_PP_DIV_BASE_P_I(d, im)
+# else
+#    define BOOST_PP_DIV_BASE_P(d, rxy) BOOST_PP_DIV_BASE_P_I(d, BOOST_PP_TUPLE_ELEM(3, 0, rxy), BOOST_PP_TUPLE_ELEM(3, 1, rxy), BOOST_PP_TUPLE_ELEM(3, 2, rxy))
+# endif
+#
+# define BOOST_PP_DIV_BASE_P_I(d, r, x, y) BOOST_PP_LESS_EQUAL_D(d, y, x)
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_DIV_BASE_O(d, rxy) BOOST_PP_DIV_BASE_O_IM(d, BOOST_PP_TUPLE_REM_3 rxy)
+#    define BOOST_PP_DIV_BASE_O_IM(d, im) BOOST_PP_DIV_BASE_O_I(d, im)
+# else
+#    define BOOST_PP_DIV_BASE_O(d, rxy) BOOST_PP_DIV_BASE_O_I(d, BOOST_PP_TUPLE_ELEM(3, 0, rxy), BOOST_PP_TUPLE_ELEM(3, 1, rxy), BOOST_PP_TUPLE_ELEM(3, 2, rxy))
+# endif
+#
+# define BOOST_PP_DIV_BASE_O_I(d, r, x, y) (BOOST_PP_INC(r), BOOST_PP_SUB_D(d, x, y), y)
+#
+# /* BOOST_PP_DIV_BASE_D */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_DIV_BASE_D(d, x, y) BOOST_PP_WHILE_ ## d(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))
+# else
+#    define BOOST_PP_DIV_BASE_D(d, x, y) BOOST_PP_DIV_BASE_D_I(d, x, y)
+#    define BOOST_PP_DIV_BASE_D_I(d, x, y) BOOST_PP_WHILE_ ## d(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))
+# endif
+#
+# endif
index 289db40f2dd4ba40cbff032211bb91185518e19d..b8fe5b8f8a8c46cf7e6be421401ea3bfc212f817 100644 (file)
@@ -1,55 +1,55 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_ARRAY_INSERT_HPP\r
-# define BOOST_PREPROCESSOR_ARRAY_INSERT_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/inc.hpp>\r
-# include <boost/preprocessor/array/elem.hpp>\r
-# include <boost/preprocessor/array/push_back.hpp>\r
-# include <boost/preprocessor/array/size.hpp>\r
-# include <boost/preprocessor/comparison/not_equal.hpp>\r
-# include <boost/preprocessor/control/deduce_d.hpp>\r
-# include <boost/preprocessor/control/iif.hpp>\r
-# include <boost/preprocessor/control/while.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-#\r
-# /* BOOST_PP_ARRAY_INSERT */\r
-#\r
-# define BOOST_PP_ARRAY_INSERT(array, i, elem) BOOST_PP_ARRAY_INSERT_I(BOOST_PP_DEDUCE_D(), array, i, elem)\r
-# define BOOST_PP_ARRAY_INSERT_I(d, array, i, elem) BOOST_PP_ARRAY_INSERT_D(d, array, i, elem)\r
-#\r
-# /* BOOST_PP_ARRAY_INSERT_D */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ARRAY_INSERT_D(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_INSERT_P, BOOST_PP_ARRAY_INSERT_O, (0, i, elem, (0, ()), array)))\r
-# else\r
-#    define BOOST_PP_ARRAY_INSERT_D(d, array, i, elem) BOOST_PP_ARRAY_INSERT_D_I(d, array, i, elem)\r
-#    define BOOST_PP_ARRAY_INSERT_D_I(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_INSERT_P, BOOST_PP_ARRAY_INSERT_O, (0, i, elem, (0, ()), array)))\r
-# endif\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_ARRAY_INSERT_P(d, state) BOOST_PP_ARRAY_INSERT_P_I state\r
-# else\r
-#    define BOOST_PP_ARRAY_INSERT_P(d, state) BOOST_PP_ARRAY_INSERT_P_I(nil, nil, nil, BOOST_PP_TUPLE_ELEM(5, 3, state), BOOST_PP_TUPLE_ELEM(5, 4, state))\r
-# endif\r
-#\r
-# define BOOST_PP_ARRAY_INSERT_P_I(_i, _ii, _iii, res, arr) BOOST_PP_NOT_EQUAL(BOOST_PP_ARRAY_SIZE(res), BOOST_PP_INC(BOOST_PP_ARRAY_SIZE(arr)))\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_ARRAY_INSERT_O(d, state) BOOST_PP_ARRAY_INSERT_O_I state\r
-# else\r
-#    define BOOST_PP_ARRAY_INSERT_O(d, state) BOOST_PP_ARRAY_INSERT_O_I(BOOST_PP_TUPLE_ELEM(5, 0, state), BOOST_PP_TUPLE_ELEM(5, 1, state), BOOST_PP_TUPLE_ELEM(5, 2, state), BOOST_PP_TUPLE_ELEM(5, 3, state), BOOST_PP_TUPLE_ELEM(5, 4, state))\r
-# endif\r
-#\r
-# define BOOST_PP_ARRAY_INSERT_O_I(n, i, elem, res, arr) (BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(BOOST_PP_ARRAY_SIZE(res), i), BOOST_PP_INC(n), n), i, elem, BOOST_PP_ARRAY_PUSH_BACK(res, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(BOOST_PP_ARRAY_SIZE(res), i), BOOST_PP_ARRAY_ELEM(n, arr), elem)), arr)\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_ARRAY_INSERT_HPP
+# define BOOST_PREPROCESSOR_ARRAY_INSERT_HPP
+#
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/array/elem.hpp>
+# include <boost/preprocessor/array/push_back.hpp>
+# include <boost/preprocessor/array/size.hpp>
+# include <boost/preprocessor/comparison/not_equal.hpp>
+# include <boost/preprocessor/control/deduce_d.hpp>
+# include <boost/preprocessor/control/iif.hpp>
+# include <boost/preprocessor/control/while.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+#
+# /* BOOST_PP_ARRAY_INSERT */
+#
+# define BOOST_PP_ARRAY_INSERT(array, i, elem) BOOST_PP_ARRAY_INSERT_I(BOOST_PP_DEDUCE_D(), array, i, elem)
+# define BOOST_PP_ARRAY_INSERT_I(d, array, i, elem) BOOST_PP_ARRAY_INSERT_D(d, array, i, elem)
+#
+# /* BOOST_PP_ARRAY_INSERT_D */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ARRAY_INSERT_D(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_INSERT_P, BOOST_PP_ARRAY_INSERT_O, (0, i, elem, (0, ()), array)))
+# else
+#    define BOOST_PP_ARRAY_INSERT_D(d, array, i, elem) BOOST_PP_ARRAY_INSERT_D_I(d, array, i, elem)
+#    define BOOST_PP_ARRAY_INSERT_D_I(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_INSERT_P, BOOST_PP_ARRAY_INSERT_O, (0, i, elem, (0, ()), array)))
+# endif
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_ARRAY_INSERT_P(d, state) BOOST_PP_ARRAY_INSERT_P_I state
+# else
+#    define BOOST_PP_ARRAY_INSERT_P(d, state) BOOST_PP_ARRAY_INSERT_P_I(nil, nil, nil, BOOST_PP_TUPLE_ELEM(5, 3, state), BOOST_PP_TUPLE_ELEM(5, 4, state))
+# endif
+#
+# define BOOST_PP_ARRAY_INSERT_P_I(_i, _ii, _iii, res, arr) BOOST_PP_NOT_EQUAL(BOOST_PP_ARRAY_SIZE(res), BOOST_PP_INC(BOOST_PP_ARRAY_SIZE(arr)))
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_ARRAY_INSERT_O(d, state) BOOST_PP_ARRAY_INSERT_O_I state
+# else
+#    define BOOST_PP_ARRAY_INSERT_O(d, state) BOOST_PP_ARRAY_INSERT_O_I(BOOST_PP_TUPLE_ELEM(5, 0, state), BOOST_PP_TUPLE_ELEM(5, 1, state), BOOST_PP_TUPLE_ELEM(5, 2, state), BOOST_PP_TUPLE_ELEM(5, 3, state), BOOST_PP_TUPLE_ELEM(5, 4, state))
+# endif
+#
+# define BOOST_PP_ARRAY_INSERT_O_I(n, i, elem, res, arr) (BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(BOOST_PP_ARRAY_SIZE(res), i), BOOST_PP_INC(n), n), i, elem, BOOST_PP_ARRAY_PUSH_BACK(res, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(BOOST_PP_ARRAY_SIZE(res), i), BOOST_PP_ARRAY_ELEM(n, arr), elem)), arr)
+#
+# endif
index 81cd1e055385a469acc0164adb8e94bd0b581ba5..29d2a45b7560548354776ec06abf977f627aa53d 100644 (file)
@@ -1,37 +1,37 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_ARRAY_POP_BACK_HPP\r
-# define BOOST_PREPROCESSOR_ARRAY_POP_BACK_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/dec.hpp>\r
-# include <boost/preprocessor/array/elem.hpp>\r
-# include <boost/preprocessor/array/size.hpp>\r
-# include <boost/preprocessor/repetition/enum.hpp>\r
-# include <boost/preprocessor/repetition/deduce_z.hpp>\r
-#\r
-# /* BOOST_PP_ARRAY_POP_BACK */\r
-#\r
-# define BOOST_PP_ARRAY_POP_BACK(array) BOOST_PP_ARRAY_POP_BACK_Z(BOOST_PP_DEDUCE_Z(), array)\r
-#\r
-# /* BOOST_PP_ARRAY_POP_BACK_Z */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ARRAY_POP_BACK_Z(z, array) BOOST_PP_ARRAY_POP_BACK_I(z, BOOST_PP_ARRAY_SIZE(array), array)\r
-# else\r
-#    define BOOST_PP_ARRAY_POP_BACK_Z(z, array) BOOST_PP_ARRAY_POP_BACK_Z_D(z, array)\r
-#    define BOOST_PP_ARRAY_POP_BACK_Z_D(z, array) BOOST_PP_ARRAY_POP_BACK_I(z, BOOST_PP_ARRAY_SIZE(array), array)\r
-# endif\r
-#\r
-# define BOOST_PP_ARRAY_POP_BACK_I(z, size, array) (BOOST_PP_DEC(size), (BOOST_PP_ENUM_ ## z(BOOST_PP_DEC(size), BOOST_PP_ARRAY_POP_BACK_M, array)))\r
-# define BOOST_PP_ARRAY_POP_BACK_M(z, n, data) BOOST_PP_ARRAY_ELEM(n, data)\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_ARRAY_POP_BACK_HPP
+# define BOOST_PREPROCESSOR_ARRAY_POP_BACK_HPP
+#
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/array/elem.hpp>
+# include <boost/preprocessor/array/size.hpp>
+# include <boost/preprocessor/repetition/enum.hpp>
+# include <boost/preprocessor/repetition/deduce_z.hpp>
+#
+# /* BOOST_PP_ARRAY_POP_BACK */
+#
+# define BOOST_PP_ARRAY_POP_BACK(array) BOOST_PP_ARRAY_POP_BACK_Z(BOOST_PP_DEDUCE_Z(), array)
+#
+# /* BOOST_PP_ARRAY_POP_BACK_Z */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ARRAY_POP_BACK_Z(z, array) BOOST_PP_ARRAY_POP_BACK_I(z, BOOST_PP_ARRAY_SIZE(array), array)
+# else
+#    define BOOST_PP_ARRAY_POP_BACK_Z(z, array) BOOST_PP_ARRAY_POP_BACK_Z_D(z, array)
+#    define BOOST_PP_ARRAY_POP_BACK_Z_D(z, array) BOOST_PP_ARRAY_POP_BACK_I(z, BOOST_PP_ARRAY_SIZE(array), array)
+# endif
+#
+# define BOOST_PP_ARRAY_POP_BACK_I(z, size, array) (BOOST_PP_DEC(size), (BOOST_PP_ENUM_ ## z(BOOST_PP_DEC(size), BOOST_PP_ARRAY_POP_BACK_M, array)))
+# define BOOST_PP_ARRAY_POP_BACK_M(z, n, data) BOOST_PP_ARRAY_ELEM(n, data)
+#
+# endif
index 2c38ce65112959c0f6c71db265e9ff1634d91b1c..7d9069c5aae26dbd44f6084fa7177c0ad8628bd1 100644 (file)
@@ -1,38 +1,38 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_ARRAY_POP_FRONT_HPP\r
-# define BOOST_PREPROCESSOR_ARRAY_POP_FRONT_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/dec.hpp>\r
-# include <boost/preprocessor/arithmetic/inc.hpp>\r
-# include <boost/preprocessor/array/elem.hpp>\r
-# include <boost/preprocessor/array/size.hpp>\r
-# include <boost/preprocessor/repetition/enum.hpp>\r
-# include <boost/preprocessor/repetition/deduce_z.hpp>\r
-#\r
-# /* BOOST_PP_ARRAY_POP_FRONT */\r
-#\r
-# define BOOST_PP_ARRAY_POP_FRONT(array) BOOST_PP_ARRAY_POP_FRONT_Z(BOOST_PP_DEDUCE_Z(), array)\r
-#\r
-# /* BOOST_PP_ARRAY_POP_FRONT_Z */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ARRAY_POP_FRONT_Z(z, array) BOOST_PP_ARRAY_POP_FRONT_I(z, BOOST_PP_ARRAY_SIZE(array), array)\r
-# else\r
-#    define BOOST_PP_ARRAY_POP_FRONT_Z(z, array) BOOST_PP_ARRAY_POP_FRONT_Z_D(z, array)\r
-#    define BOOST_PP_ARRAY_POP_FRONT_Z_D(z, array) BOOST_PP_ARRAY_POP_FRONT_I(z, BOOST_PP_ARRAY_SIZE(array), array)\r
-# endif\r
-#\r
-# define BOOST_PP_ARRAY_POP_FRONT_I(z, size, array) (BOOST_PP_DEC(size), (BOOST_PP_ENUM_ ## z(BOOST_PP_DEC(size), BOOST_PP_ARRAY_POP_FRONT_M, array)))\r
-# define BOOST_PP_ARRAY_POP_FRONT_M(z, n, data) BOOST_PP_ARRAY_ELEM(BOOST_PP_INC(n), data)\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_ARRAY_POP_FRONT_HPP
+# define BOOST_PREPROCESSOR_ARRAY_POP_FRONT_HPP
+#
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/array/elem.hpp>
+# include <boost/preprocessor/array/size.hpp>
+# include <boost/preprocessor/repetition/enum.hpp>
+# include <boost/preprocessor/repetition/deduce_z.hpp>
+#
+# /* BOOST_PP_ARRAY_POP_FRONT */
+#
+# define BOOST_PP_ARRAY_POP_FRONT(array) BOOST_PP_ARRAY_POP_FRONT_Z(BOOST_PP_DEDUCE_Z(), array)
+#
+# /* BOOST_PP_ARRAY_POP_FRONT_Z */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ARRAY_POP_FRONT_Z(z, array) BOOST_PP_ARRAY_POP_FRONT_I(z, BOOST_PP_ARRAY_SIZE(array), array)
+# else
+#    define BOOST_PP_ARRAY_POP_FRONT_Z(z, array) BOOST_PP_ARRAY_POP_FRONT_Z_D(z, array)
+#    define BOOST_PP_ARRAY_POP_FRONT_Z_D(z, array) BOOST_PP_ARRAY_POP_FRONT_I(z, BOOST_PP_ARRAY_SIZE(array), array)
+# endif
+#
+# define BOOST_PP_ARRAY_POP_FRONT_I(z, size, array) (BOOST_PP_DEC(size), (BOOST_PP_ENUM_ ## z(BOOST_PP_DEC(size), BOOST_PP_ARRAY_POP_FRONT_M, array)))
+# define BOOST_PP_ARRAY_POP_FRONT_M(z, n, data) BOOST_PP_ARRAY_ELEM(BOOST_PP_INC(n), data)
+#
+# endif
index 78dfea63bea7f42a86945b54d4537183e88d0d0b..6d98d8ee4e9444243bbb8a78f7a41c5cc8f68a26 100644 (file)
@@ -1,33 +1,33 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_ARRAY_PUSH_BACK_HPP\r
-# define BOOST_PREPROCESSOR_ARRAY_PUSH_BACK_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/inc.hpp>\r
-# include <boost/preprocessor/array/data.hpp>\r
-# include <boost/preprocessor/array/size.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/punctuation/comma_if.hpp>\r
-# include <boost/preprocessor/tuple/rem.hpp>\r
-#\r
-# /* BOOST_PP_ARRAY_PUSH_BACK */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ARRAY_PUSH_BACK(array, elem) BOOST_PP_ARRAY_PUSH_BACK_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem)\r
-# else\r
-#    define BOOST_PP_ARRAY_PUSH_BACK(array, elem) BOOST_PP_ARRAY_PUSH_BACK_D(array, elem)\r
-#    define BOOST_PP_ARRAY_PUSH_BACK_D(array, elem) BOOST_PP_ARRAY_PUSH_BACK_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem)\r
-# endif\r
-#\r
-# define BOOST_PP_ARRAY_PUSH_BACK_I(size, data, elem) (BOOST_PP_INC(size), (BOOST_PP_TUPLE_REM(size) data BOOST_PP_COMMA_IF(size) elem))\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_ARRAY_PUSH_BACK_HPP
+# define BOOST_PREPROCESSOR_ARRAY_PUSH_BACK_HPP
+#
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/array/data.hpp>
+# include <boost/preprocessor/array/size.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/punctuation/comma_if.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_ARRAY_PUSH_BACK */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ARRAY_PUSH_BACK(array, elem) BOOST_PP_ARRAY_PUSH_BACK_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem)
+# else
+#    define BOOST_PP_ARRAY_PUSH_BACK(array, elem) BOOST_PP_ARRAY_PUSH_BACK_D(array, elem)
+#    define BOOST_PP_ARRAY_PUSH_BACK_D(array, elem) BOOST_PP_ARRAY_PUSH_BACK_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem)
+# endif
+#
+# define BOOST_PP_ARRAY_PUSH_BACK_I(size, data, elem) (BOOST_PP_INC(size), (BOOST_PP_TUPLE_REM(size) data BOOST_PP_COMMA_IF(size) elem))
+#
+# endif
index 8493bcce15b836eff8e8a16e35a7e16bb7e3b9f3..59344c312f6376d58d75d35080e0eab6e2a2b4ac 100644 (file)
@@ -1,33 +1,33 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_ARRAY_PUSH_FRONT_HPP\r
-# define BOOST_PREPROCESSOR_ARRAY_PUSH_FRONT_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/inc.hpp>\r
-# include <boost/preprocessor/array/data.hpp>\r
-# include <boost/preprocessor/array/size.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/punctuation/comma_if.hpp>\r
-# include <boost/preprocessor/tuple/rem.hpp>\r
-#\r
-# /* BOOST_PP_ARRAY_PUSH_FRONT */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ARRAY_PUSH_FRONT(array, elem) BOOST_PP_ARRAY_PUSH_FRONT_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem)\r
-# else\r
-#    define BOOST_PP_ARRAY_PUSH_FRONT(array, elem) BOOST_PP_ARRAY_PUSH_FRONT_D(array, elem)\r
-#    define BOOST_PP_ARRAY_PUSH_FRONT_D(array, elem) BOOST_PP_ARRAY_PUSH_FRONT_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem)\r
-# endif\r
-#\r
-# define BOOST_PP_ARRAY_PUSH_FRONT_I(size, data, elem) (BOOST_PP_INC(size), (elem BOOST_PP_COMMA_IF(size) BOOST_PP_TUPLE_REM(size) data))\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_ARRAY_PUSH_FRONT_HPP
+# define BOOST_PREPROCESSOR_ARRAY_PUSH_FRONT_HPP
+#
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/array/data.hpp>
+# include <boost/preprocessor/array/size.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/punctuation/comma_if.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_ARRAY_PUSH_FRONT */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ARRAY_PUSH_FRONT(array, elem) BOOST_PP_ARRAY_PUSH_FRONT_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem)
+# else
+#    define BOOST_PP_ARRAY_PUSH_FRONT(array, elem) BOOST_PP_ARRAY_PUSH_FRONT_D(array, elem)
+#    define BOOST_PP_ARRAY_PUSH_FRONT_D(array, elem) BOOST_PP_ARRAY_PUSH_FRONT_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem)
+# endif
+#
+# define BOOST_PP_ARRAY_PUSH_FRONT_I(size, data, elem) (BOOST_PP_INC(size), (elem BOOST_PP_COMMA_IF(size) BOOST_PP_TUPLE_REM(size) data))
+#
+# endif
index a7ae78df19e4f904372abf323cefb79a96af4bde..02609000ba8b2be53394bbc0964722d2edb541d4 100644 (file)
@@ -1,54 +1,54 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_ARRAY_REMOVE_HPP\r
-# define BOOST_PREPROCESSOR_ARRAY_REMOVE_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/inc.hpp>\r
-# include <boost/preprocessor/array/elem.hpp>\r
-# include <boost/preprocessor/array/push_back.hpp>\r
-# include <boost/preprocessor/array/size.hpp>\r
-# include <boost/preprocessor/comparison/not_equal.hpp>\r
-# include <boost/preprocessor/control/deduce_d.hpp>\r
-# include <boost/preprocessor/control/iif.hpp>\r
-# include <boost/preprocessor/control/while.hpp>\r
-# include <boost/preprocessor/tuple/eat.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-#\r
-# /* BOOST_PP_ARRAY_REMOVE */\r
-#\r
-# define BOOST_PP_ARRAY_REMOVE(array, i) BOOST_PP_ARRAY_REMOVE_I(BOOST_PP_DEDUCE_D(), array, i)\r
-# define BOOST_PP_ARRAY_REMOVE_I(d, array, i) BOOST_PP_ARRAY_REMOVE_D(d, array, i)\r
-#\r
-# /* BOOST_PP_ARRAY_REMOVE_D */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ARRAY_REMOVE_D(d, array, i) BOOST_PP_TUPLE_ELEM(4, 2, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REMOVE_P, BOOST_PP_ARRAY_REMOVE_O, (0, i, (0, ()), array)))\r
-# else\r
-#    define BOOST_PP_ARRAY_REMOVE_D(d, array, i) BOOST_PP_ARRAY_REMOVE_D_I(d, array, i)\r
-#    define BOOST_PP_ARRAY_REMOVE_D_I(d, array, i) BOOST_PP_TUPLE_ELEM(4, 2, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REMOVE_P, BOOST_PP_ARRAY_REMOVE_O, (0, i, (0, ()), array)))\r
-# endif\r
-#\r
-# define BOOST_PP_ARRAY_REMOVE_P(d, st) BOOST_PP_NOT_EQUAL(BOOST_PP_TUPLE_ELEM(4, 0, st), BOOST_PP_ARRAY_SIZE(BOOST_PP_TUPLE_ELEM(4, 3, st)))\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_ARRAY_REMOVE_O(d, st) BOOST_PP_ARRAY_REMOVE_O_I st\r
-# else\r
-#    define BOOST_PP_ARRAY_REMOVE_O(d, st) BOOST_PP_ARRAY_REMOVE_O_I(BOOST_PP_TUPLE_ELEM(4, 0, st), BOOST_PP_TUPLE_ELEM(4, 1, st), BOOST_PP_TUPLE_ELEM(4, 2, st), BOOST_PP_TUPLE_ELEM(4, 3, st))\r
-# endif\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()\r
-#    define BOOST_PP_ARRAY_REMOVE_O_I(n, i, res, arr) (BOOST_PP_INC(n), i, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(n, i), BOOST_PP_ARRAY_PUSH_BACK, res BOOST_PP_TUPLE_EAT_2)(res, BOOST_PP_ARRAY_ELEM(n, arr)), arr)\r
-# else\r
-#    define BOOST_PP_ARRAY_REMOVE_O_I(n, i, res, arr) (BOOST_PP_INC(n), i, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(n, i), BOOST_PP_ARRAY_PUSH_BACK, BOOST_PP_TUPLE_ELEM_2_0)(res, BOOST_PP_ARRAY_ELEM(n, arr)), arr)\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_ARRAY_REMOVE_HPP
+# define BOOST_PREPROCESSOR_ARRAY_REMOVE_HPP
+#
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/array/elem.hpp>
+# include <boost/preprocessor/array/push_back.hpp>
+# include <boost/preprocessor/array/size.hpp>
+# include <boost/preprocessor/comparison/not_equal.hpp>
+# include <boost/preprocessor/control/deduce_d.hpp>
+# include <boost/preprocessor/control/iif.hpp>
+# include <boost/preprocessor/control/while.hpp>
+# include <boost/preprocessor/tuple/eat.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+#
+# /* BOOST_PP_ARRAY_REMOVE */
+#
+# define BOOST_PP_ARRAY_REMOVE(array, i) BOOST_PP_ARRAY_REMOVE_I(BOOST_PP_DEDUCE_D(), array, i)
+# define BOOST_PP_ARRAY_REMOVE_I(d, array, i) BOOST_PP_ARRAY_REMOVE_D(d, array, i)
+#
+# /* BOOST_PP_ARRAY_REMOVE_D */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ARRAY_REMOVE_D(d, array, i) BOOST_PP_TUPLE_ELEM(4, 2, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REMOVE_P, BOOST_PP_ARRAY_REMOVE_O, (0, i, (0, ()), array)))
+# else
+#    define BOOST_PP_ARRAY_REMOVE_D(d, array, i) BOOST_PP_ARRAY_REMOVE_D_I(d, array, i)
+#    define BOOST_PP_ARRAY_REMOVE_D_I(d, array, i) BOOST_PP_TUPLE_ELEM(4, 2, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REMOVE_P, BOOST_PP_ARRAY_REMOVE_O, (0, i, (0, ()), array)))
+# endif
+#
+# define BOOST_PP_ARRAY_REMOVE_P(d, st) BOOST_PP_NOT_EQUAL(BOOST_PP_TUPLE_ELEM(4, 0, st), BOOST_PP_ARRAY_SIZE(BOOST_PP_TUPLE_ELEM(4, 3, st)))
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_ARRAY_REMOVE_O(d, st) BOOST_PP_ARRAY_REMOVE_O_I st
+# else
+#    define BOOST_PP_ARRAY_REMOVE_O(d, st) BOOST_PP_ARRAY_REMOVE_O_I(BOOST_PP_TUPLE_ELEM(4, 0, st), BOOST_PP_TUPLE_ELEM(4, 1, st), BOOST_PP_TUPLE_ELEM(4, 2, st), BOOST_PP_TUPLE_ELEM(4, 3, st))
+# endif
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
+#    define BOOST_PP_ARRAY_REMOVE_O_I(n, i, res, arr) (BOOST_PP_INC(n), i, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(n, i), BOOST_PP_ARRAY_PUSH_BACK, res BOOST_PP_TUPLE_EAT_2)(res, BOOST_PP_ARRAY_ELEM(n, arr)), arr)
+# else
+#    define BOOST_PP_ARRAY_REMOVE_O_I(n, i, res, arr) (BOOST_PP_INC(n), i, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(n, i), BOOST_PP_ARRAY_PUSH_BACK, BOOST_PP_TUPLE_ELEM_2_0)(res, BOOST_PP_ARRAY_ELEM(n, arr)), arr)
+# endif
+#
+# endif
index b969113d537aba700f1bd29faace760f921415e9..10a1f097675bcb435b52bc045a9ebe6ee7432076 100644 (file)
@@ -1,49 +1,49 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_ARRAY_REPLACE_HPP\r
-# define BOOST_PREPROCESSOR_ARRAY_REPLACE_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/inc.hpp>\r
-# include <boost/preprocessor/array/elem.hpp>\r
-# include <boost/preprocessor/array/push_back.hpp>\r
-# include <boost/preprocessor/comparison/not_equal.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/control/deduce_d.hpp>\r
-# include <boost/preprocessor/control/iif.hpp>\r
-# include <boost/preprocessor/control/while.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-#\r
-# /* BOOST_PP_ARRAY_REPLACE */\r
-#\r
-# define BOOST_PP_ARRAY_REPLACE(array, i, elem) BOOST_PP_ARRAY_REPLACE_I(BOOST_PP_DEDUCE_D(), array, i, elem)\r
-# define BOOST_PP_ARRAY_REPLACE_I(d, array, i, elem) BOOST_PP_ARRAY_REPLACE_D(d, array, i, elem)\r
-#\r
-# /* BOOST_PP_ARRAY_REPLACE_D */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ARRAY_REPLACE_D(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REPLACE_P, BOOST_PP_ARRAY_REPLACE_O, (0, i, elem, (0, ()), array)))\r
-# else\r
-#    define BOOST_PP_ARRAY_REPLACE_D(d, array, i, elem) BOOST_PP_ARRAY_REPLACE_D_I(d, array, i, elem)\r
-#    define BOOST_PP_ARRAY_REPLACE_D_I(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REPLACE_P, BOOST_PP_ARRAY_REPLACE_O, (0, i, elem, (0, ()), array)))\r
-# endif\r
-#\r
-# define BOOST_PP_ARRAY_REPLACE_P(d, state) BOOST_PP_NOT_EQUAL(BOOST_PP_TUPLE_ELEM(5, 0, state), BOOST_PP_ARRAY_SIZE(BOOST_PP_TUPLE_ELEM(5, 4, state)))\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_ARRAY_REPLACE_O(d, state) BOOST_PP_ARRAY_REPLACE_O_I state\r
-# else\r
-#    define BOOST_PP_ARRAY_REPLACE_O(d, state) BOOST_PP_ARRAY_REPLACE_O_I(BOOST_PP_TUPLE_ELEM(5, 0, state), BOOST_PP_TUPLE_ELEM(5, 1, state), BOOST_PP_TUPLE_ELEM(5, 2, state), BOOST_PP_TUPLE_ELEM(5, 3, state), BOOST_PP_TUPLE_ELEM(5, 4, state))\r
-# endif\r
-#\r
-# define BOOST_PP_ARRAY_REPLACE_O_I(n, i, elem, res, arr) (BOOST_PP_INC(n), i, elem, BOOST_PP_ARRAY_PUSH_BACK(res, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(n, i), BOOST_PP_ARRAY_ELEM(n, arr), elem)), arr)\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_ARRAY_REPLACE_HPP
+# define BOOST_PREPROCESSOR_ARRAY_REPLACE_HPP
+#
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/array/elem.hpp>
+# include <boost/preprocessor/array/push_back.hpp>
+# include <boost/preprocessor/comparison/not_equal.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/control/deduce_d.hpp>
+# include <boost/preprocessor/control/iif.hpp>
+# include <boost/preprocessor/control/while.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+#
+# /* BOOST_PP_ARRAY_REPLACE */
+#
+# define BOOST_PP_ARRAY_REPLACE(array, i, elem) BOOST_PP_ARRAY_REPLACE_I(BOOST_PP_DEDUCE_D(), array, i, elem)
+# define BOOST_PP_ARRAY_REPLACE_I(d, array, i, elem) BOOST_PP_ARRAY_REPLACE_D(d, array, i, elem)
+#
+# /* BOOST_PP_ARRAY_REPLACE_D */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ARRAY_REPLACE_D(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REPLACE_P, BOOST_PP_ARRAY_REPLACE_O, (0, i, elem, (0, ()), array)))
+# else
+#    define BOOST_PP_ARRAY_REPLACE_D(d, array, i, elem) BOOST_PP_ARRAY_REPLACE_D_I(d, array, i, elem)
+#    define BOOST_PP_ARRAY_REPLACE_D_I(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REPLACE_P, BOOST_PP_ARRAY_REPLACE_O, (0, i, elem, (0, ()), array)))
+# endif
+#
+# define BOOST_PP_ARRAY_REPLACE_P(d, state) BOOST_PP_NOT_EQUAL(BOOST_PP_TUPLE_ELEM(5, 0, state), BOOST_PP_ARRAY_SIZE(BOOST_PP_TUPLE_ELEM(5, 4, state)))
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_ARRAY_REPLACE_O(d, state) BOOST_PP_ARRAY_REPLACE_O_I state
+# else
+#    define BOOST_PP_ARRAY_REPLACE_O(d, state) BOOST_PP_ARRAY_REPLACE_O_I(BOOST_PP_TUPLE_ELEM(5, 0, state), BOOST_PP_TUPLE_ELEM(5, 1, state), BOOST_PP_TUPLE_ELEM(5, 2, state), BOOST_PP_TUPLE_ELEM(5, 3, state), BOOST_PP_TUPLE_ELEM(5, 4, state))
+# endif
+#
+# define BOOST_PP_ARRAY_REPLACE_O_I(n, i, elem, res, arr) (BOOST_PP_INC(n), i, elem, BOOST_PP_ARRAY_PUSH_BACK(res, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(n, i), BOOST_PP_ARRAY_ELEM(n, arr), elem)), arr)
+#
+# endif
index 3c24ce3ae1bc5270a11c67243288a7146686c155..a6a4f75c706f7db73ce9d273264c68dbd2d8fcad 100644 (file)
@@ -1,29 +1,29 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_ARRAY_REVERSE_HPP\r
-# define BOOST_PREPROCESSOR_ARRAY_REVERSE_HPP\r
-#\r
-# include <boost/preprocessor/array/data.hpp>\r
-# include <boost/preprocessor/array/size.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/tuple/reverse.hpp>\r
-#\r
-# /* BOOST_PP_ARRAY_REVERSE */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ARRAY_REVERSE(array) (BOOST_PP_ARRAY_SIZE(array), BOOST_PP_TUPLE_REVERSE(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array)))\r
-# else\r
-#    define BOOST_PP_ARRAY_REVERSE(array) BOOST_PP_ARRAY_REVERSE_I(array)\r
-#    define BOOST_PP_ARRAY_REVERSE_I(array) (BOOST_PP_ARRAY_SIZE(array), BOOST_PP_TUPLE_REVERSE(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array)))\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_ARRAY_REVERSE_HPP
+# define BOOST_PREPROCESSOR_ARRAY_REVERSE_HPP
+#
+# include <boost/preprocessor/array/data.hpp>
+# include <boost/preprocessor/array/size.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/tuple/reverse.hpp>
+#
+# /* BOOST_PP_ARRAY_REVERSE */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ARRAY_REVERSE(array) (BOOST_PP_ARRAY_SIZE(array), BOOST_PP_TUPLE_REVERSE(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array)))
+# else
+#    define BOOST_PP_ARRAY_REVERSE(array) BOOST_PP_ARRAY_REVERSE_I(array)
+#    define BOOST_PP_ARRAY_REVERSE_I(array) (BOOST_PP_ARRAY_SIZE(array), BOOST_PP_TUPLE_REVERSE(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array)))
+# endif
+#
+# endif
index db790fa52ec307a6b2b76b3b09dea5cd604dab91..5b4f06be491a1a8950f261297c5e9c3aa4ece6a4 100644 (file)
@@ -1,29 +1,29 @@
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_CONFIG_LIMITS_HPP\r
-# define BOOST_PREPROCESSOR_CONFIG_LIMITS_HPP\r
-#\r
-# define BOOST_PP_LIMIT_MAG 256\r
-# define BOOST_PP_LIMIT_TUPLE 25\r
-# define BOOST_PP_LIMIT_DIM 3\r
-# define BOOST_PP_LIMIT_REPEAT 256\r
-# define BOOST_PP_LIMIT_WHILE 256\r
-# define BOOST_PP_LIMIT_FOR 256\r
-# define BOOST_PP_LIMIT_ITERATION 256\r
-# define BOOST_PP_LIMIT_ITERATION_DIM 3\r
-# define BOOST_PP_LIMIT_SEQ 256\r
-# define BOOST_PP_LIMIT_SLOT_SIG 10\r
-# define BOOST_PP_LIMIT_SLOT_COUNT 5\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_CONFIG_LIMITS_HPP
+# define BOOST_PREPROCESSOR_CONFIG_LIMITS_HPP
+#
+# define BOOST_PP_LIMIT_MAG 256
+# define BOOST_PP_LIMIT_TUPLE 25
+# define BOOST_PP_LIMIT_DIM 3
+# define BOOST_PP_LIMIT_REPEAT 256
+# define BOOST_PP_LIMIT_WHILE 256
+# define BOOST_PP_LIMIT_FOR 256
+# define BOOST_PP_LIMIT_ITERATION 256
+# define BOOST_PP_LIMIT_ITERATION_DIM 3
+# define BOOST_PP_LIMIT_SEQ 256
+# define BOOST_PP_LIMIT_SLOT_SIG 10
+# define BOOST_PP_LIMIT_SLOT_COUNT 5
+#
+# endif
index 8070bff2f62bc25db7193ac27700fb444563838e..809fbd9e23772a4c4afc72f03acc4b179f2c5cb0 100644 (file)
@@ -1,22 +1,22 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_CONTROL_HPP\r
-# define BOOST_PREPROCESSOR_CONTROL_HPP\r
-#\r
-# include <boost/preprocessor/control/deduce_d.hpp>\r
-# include <boost/preprocessor/control/expr_if.hpp>\r
-# include <boost/preprocessor/control/expr_iif.hpp>\r
-# include <boost/preprocessor/control/if.hpp>\r
-# include <boost/preprocessor/control/iif.hpp>\r
-# include <boost/preprocessor/control/while.hpp>\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_CONTROL_HPP
+# define BOOST_PREPROCESSOR_CONTROL_HPP
+#
+# include <boost/preprocessor/control/deduce_d.hpp>
+# include <boost/preprocessor/control/expr_if.hpp>
+# include <boost/preprocessor/control/expr_iif.hpp>
+# include <boost/preprocessor/control/if.hpp>
+# include <boost/preprocessor/control/iif.hpp>
+# include <boost/preprocessor/control/while.hpp>
+#
+# endif
index 0a8ada9296920b83264d9dab174def81ad648fb5..a0276b0f19edd588c96c96425f4afe9916bf0d84 100644 (file)
@@ -1,22 +1,22 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_CONTROL_DEDUCE_D_HPP\r
-# define BOOST_PREPROCESSOR_CONTROL_DEDUCE_D_HPP\r
-#\r
-# include <boost/preprocessor/control/while.hpp>\r
-# include <boost/preprocessor/detail/auto_rec.hpp>\r
-#\r
-# /* BOOST_PP_DEDUCE_D */\r
-#\r
-# define BOOST_PP_DEDUCE_D() BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256)\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_CONTROL_DEDUCE_D_HPP
+# define BOOST_PREPROCESSOR_CONTROL_DEDUCE_D_HPP
+#
+# include <boost/preprocessor/control/while.hpp>
+# include <boost/preprocessor/detail/auto_rec.hpp>
+#
+# /* BOOST_PP_DEDUCE_D */
+#
+# define BOOST_PP_DEDUCE_D() BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256)
+#
+# endif
index 8ed571a33fbad31799f357cce89473a28fe68e13..95c3135b328c1293bfdb3cf01e4221440756f2be 100644 (file)
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP\r
-# define BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP\r
-#\r
-# include <boost/preprocessor/control/iif.hpp>\r
-# include <boost/preprocessor/logical/bool.hpp>\r
-# include <boost/preprocessor/tuple/eat.hpp>\r
-#\r
-# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_C(BOOST_PP_BOOL(p##(2, s)), p, o, s)\r
-# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_C(BOOST_PP_BOOL(p##(3, s)), p, o, s)\r
-# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_C(BOOST_PP_BOOL(p##(4, s)), p, o, s)\r
-# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_C(BOOST_PP_BOOL(p##(5, s)), p, o, s)\r
-# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_C(BOOST_PP_BOOL(p##(6, s)), p, o, s)\r
-# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_C(BOOST_PP_BOOL(p##(7, s)), p, o, s)\r
-# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_C(BOOST_PP_BOOL(p##(8, s)), p, o, s)\r
-# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_C(BOOST_PP_BOOL(p##(9, s)), p, o, s)\r
-# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_C(BOOST_PP_BOOL(p##(10, s)), p, o, s)\r
-# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_C(BOOST_PP_BOOL(p##(11, s)), p, o, s)\r
-# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_C(BOOST_PP_BOOL(p##(12, s)), p, o, s)\r
-# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_C(BOOST_PP_BOOL(p##(13, s)), p, o, s)\r
-# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_C(BOOST_PP_BOOL(p##(14, s)), p, o, s)\r
-# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_C(BOOST_PP_BOOL(p##(15, s)), p, o, s)\r
-# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_C(BOOST_PP_BOOL(p##(16, s)), p, o, s)\r
-# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_C(BOOST_PP_BOOL(p##(17, s)), p, o, s)\r
-# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_C(BOOST_PP_BOOL(p##(18, s)), p, o, s)\r
-# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_C(BOOST_PP_BOOL(p##(19, s)), p, o, s)\r
-# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_C(BOOST_PP_BOOL(p##(20, s)), p, o, s)\r
-# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_C(BOOST_PP_BOOL(p##(21, s)), p, o, s)\r
-# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_C(BOOST_PP_BOOL(p##(22, s)), p, o, s)\r
-# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_C(BOOST_PP_BOOL(p##(23, s)), p, o, s)\r
-# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_C(BOOST_PP_BOOL(p##(24, s)), p, o, s)\r
-# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_C(BOOST_PP_BOOL(p##(25, s)), p, o, s)\r
-# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_C(BOOST_PP_BOOL(p##(26, s)), p, o, s)\r
-# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_C(BOOST_PP_BOOL(p##(27, s)), p, o, s)\r
-# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_C(BOOST_PP_BOOL(p##(28, s)), p, o, s)\r
-# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_C(BOOST_PP_BOOL(p##(29, s)), p, o, s)\r
-# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_C(BOOST_PP_BOOL(p##(30, s)), p, o, s)\r
-# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_C(BOOST_PP_BOOL(p##(31, s)), p, o, s)\r
-# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_C(BOOST_PP_BOOL(p##(32, s)), p, o, s)\r
-# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_C(BOOST_PP_BOOL(p##(33, s)), p, o, s)\r
-# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_C(BOOST_PP_BOOL(p##(34, s)), p, o, s)\r
-# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_C(BOOST_PP_BOOL(p##(35, s)), p, o, s)\r
-# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_C(BOOST_PP_BOOL(p##(36, s)), p, o, s)\r
-# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_C(BOOST_PP_BOOL(p##(37, s)), p, o, s)\r
-# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_C(BOOST_PP_BOOL(p##(38, s)), p, o, s)\r
-# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_C(BOOST_PP_BOOL(p##(39, s)), p, o, s)\r
-# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_C(BOOST_PP_BOOL(p##(40, s)), p, o, s)\r
-# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_C(BOOST_PP_BOOL(p##(41, s)), p, o, s)\r
-# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_C(BOOST_PP_BOOL(p##(42, s)), p, o, s)\r
-# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_C(BOOST_PP_BOOL(p##(43, s)), p, o, s)\r
-# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_C(BOOST_PP_BOOL(p##(44, s)), p, o, s)\r
-# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_C(BOOST_PP_BOOL(p##(45, s)), p, o, s)\r
-# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_C(BOOST_PP_BOOL(p##(46, s)), p, o, s)\r
-# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_C(BOOST_PP_BOOL(p##(47, s)), p, o, s)\r
-# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_C(BOOST_PP_BOOL(p##(48, s)), p, o, s)\r
-# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_C(BOOST_PP_BOOL(p##(49, s)), p, o, s)\r
-# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_C(BOOST_PP_BOOL(p##(50, s)), p, o, s)\r
-# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_C(BOOST_PP_BOOL(p##(51, s)), p, o, s)\r
-# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_C(BOOST_PP_BOOL(p##(52, s)), p, o, s)\r
-# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_C(BOOST_PP_BOOL(p##(53, s)), p, o, s)\r
-# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_C(BOOST_PP_BOOL(p##(54, s)), p, o, s)\r
-# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_C(BOOST_PP_BOOL(p##(55, s)), p, o, s)\r
-# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_C(BOOST_PP_BOOL(p##(56, s)), p, o, s)\r
-# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_C(BOOST_PP_BOOL(p##(57, s)), p, o, s)\r
-# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_C(BOOST_PP_BOOL(p##(58, s)), p, o, s)\r
-# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_C(BOOST_PP_BOOL(p##(59, s)), p, o, s)\r
-# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_C(BOOST_PP_BOOL(p##(60, s)), p, o, s)\r
-# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_C(BOOST_PP_BOOL(p##(61, s)), p, o, s)\r
-# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_C(BOOST_PP_BOOL(p##(62, s)), p, o, s)\r
-# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_C(BOOST_PP_BOOL(p##(63, s)), p, o, s)\r
-# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_C(BOOST_PP_BOOL(p##(64, s)), p, o, s)\r
-# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_C(BOOST_PP_BOOL(p##(65, s)), p, o, s)\r
-# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_C(BOOST_PP_BOOL(p##(66, s)), p, o, s)\r
-# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_C(BOOST_PP_BOOL(p##(67, s)), p, o, s)\r
-# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_C(BOOST_PP_BOOL(p##(68, s)), p, o, s)\r
-# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_C(BOOST_PP_BOOL(p##(69, s)), p, o, s)\r
-# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_C(BOOST_PP_BOOL(p##(70, s)), p, o, s)\r
-# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_C(BOOST_PP_BOOL(p##(71, s)), p, o, s)\r
-# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_C(BOOST_PP_BOOL(p##(72, s)), p, o, s)\r
-# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_C(BOOST_PP_BOOL(p##(73, s)), p, o, s)\r
-# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_C(BOOST_PP_BOOL(p##(74, s)), p, o, s)\r
-# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_C(BOOST_PP_BOOL(p##(75, s)), p, o, s)\r
-# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_C(BOOST_PP_BOOL(p##(76, s)), p, o, s)\r
-# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_C(BOOST_PP_BOOL(p##(77, s)), p, o, s)\r
-# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_C(BOOST_PP_BOOL(p##(78, s)), p, o, s)\r
-# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_C(BOOST_PP_BOOL(p##(79, s)), p, o, s)\r
-# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_C(BOOST_PP_BOOL(p##(80, s)), p, o, s)\r
-# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_C(BOOST_PP_BOOL(p##(81, s)), p, o, s)\r
-# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_C(BOOST_PP_BOOL(p##(82, s)), p, o, s)\r
-# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_C(BOOST_PP_BOOL(p##(83, s)), p, o, s)\r
-# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_C(BOOST_PP_BOOL(p##(84, s)), p, o, s)\r
-# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_C(BOOST_PP_BOOL(p##(85, s)), p, o, s)\r
-# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_C(BOOST_PP_BOOL(p##(86, s)), p, o, s)\r
-# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_C(BOOST_PP_BOOL(p##(87, s)), p, o, s)\r
-# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_C(BOOST_PP_BOOL(p##(88, s)), p, o, s)\r
-# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_C(BOOST_PP_BOOL(p##(89, s)), p, o, s)\r
-# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_C(BOOST_PP_BOOL(p##(90, s)), p, o, s)\r
-# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_C(BOOST_PP_BOOL(p##(91, s)), p, o, s)\r
-# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_C(BOOST_PP_BOOL(p##(92, s)), p, o, s)\r
-# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_C(BOOST_PP_BOOL(p##(93, s)), p, o, s)\r
-# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_C(BOOST_PP_BOOL(p##(94, s)), p, o, s)\r
-# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_C(BOOST_PP_BOOL(p##(95, s)), p, o, s)\r
-# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_C(BOOST_PP_BOOL(p##(96, s)), p, o, s)\r
-# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_C(BOOST_PP_BOOL(p##(97, s)), p, o, s)\r
-# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_C(BOOST_PP_BOOL(p##(98, s)), p, o, s)\r
-# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_C(BOOST_PP_BOOL(p##(99, s)), p, o, s)\r
-# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_C(BOOST_PP_BOOL(p##(100, s)), p, o, s)\r
-# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_C(BOOST_PP_BOOL(p##(101, s)), p, o, s)\r
-# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_C(BOOST_PP_BOOL(p##(102, s)), p, o, s)\r
-# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_C(BOOST_PP_BOOL(p##(103, s)), p, o, s)\r
-# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_C(BOOST_PP_BOOL(p##(104, s)), p, o, s)\r
-# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_C(BOOST_PP_BOOL(p##(105, s)), p, o, s)\r
-# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_C(BOOST_PP_BOOL(p##(106, s)), p, o, s)\r
-# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_C(BOOST_PP_BOOL(p##(107, s)), p, o, s)\r
-# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_C(BOOST_PP_BOOL(p##(108, s)), p, o, s)\r
-# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_C(BOOST_PP_BOOL(p##(109, s)), p, o, s)\r
-# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_C(BOOST_PP_BOOL(p##(110, s)), p, o, s)\r
-# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_C(BOOST_PP_BOOL(p##(111, s)), p, o, s)\r
-# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_C(BOOST_PP_BOOL(p##(112, s)), p, o, s)\r
-# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_C(BOOST_PP_BOOL(p##(113, s)), p, o, s)\r
-# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_C(BOOST_PP_BOOL(p##(114, s)), p, o, s)\r
-# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_C(BOOST_PP_BOOL(p##(115, s)), p, o, s)\r
-# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_C(BOOST_PP_BOOL(p##(116, s)), p, o, s)\r
-# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_C(BOOST_PP_BOOL(p##(117, s)), p, o, s)\r
-# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_C(BOOST_PP_BOOL(p##(118, s)), p, o, s)\r
-# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_C(BOOST_PP_BOOL(p##(119, s)), p, o, s)\r
-# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_C(BOOST_PP_BOOL(p##(120, s)), p, o, s)\r
-# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_C(BOOST_PP_BOOL(p##(121, s)), p, o, s)\r
-# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_C(BOOST_PP_BOOL(p##(122, s)), p, o, s)\r
-# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_C(BOOST_PP_BOOL(p##(123, s)), p, o, s)\r
-# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_C(BOOST_PP_BOOL(p##(124, s)), p, o, s)\r
-# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_C(BOOST_PP_BOOL(p##(125, s)), p, o, s)\r
-# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_C(BOOST_PP_BOOL(p##(126, s)), p, o, s)\r
-# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_C(BOOST_PP_BOOL(p##(127, s)), p, o, s)\r
-# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_C(BOOST_PP_BOOL(p##(128, s)), p, o, s)\r
-# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_C(BOOST_PP_BOOL(p##(129, s)), p, o, s)\r
-# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_C(BOOST_PP_BOOL(p##(130, s)), p, o, s)\r
-# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_C(BOOST_PP_BOOL(p##(131, s)), p, o, s)\r
-# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_C(BOOST_PP_BOOL(p##(132, s)), p, o, s)\r
-# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_C(BOOST_PP_BOOL(p##(133, s)), p, o, s)\r
-# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_C(BOOST_PP_BOOL(p##(134, s)), p, o, s)\r
-# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_C(BOOST_PP_BOOL(p##(135, s)), p, o, s)\r
-# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_C(BOOST_PP_BOOL(p##(136, s)), p, o, s)\r
-# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_C(BOOST_PP_BOOL(p##(137, s)), p, o, s)\r
-# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_C(BOOST_PP_BOOL(p##(138, s)), p, o, s)\r
-# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_C(BOOST_PP_BOOL(p##(139, s)), p, o, s)\r
-# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_C(BOOST_PP_BOOL(p##(140, s)), p, o, s)\r
-# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_C(BOOST_PP_BOOL(p##(141, s)), p, o, s)\r
-# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_C(BOOST_PP_BOOL(p##(142, s)), p, o, s)\r
-# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_C(BOOST_PP_BOOL(p##(143, s)), p, o, s)\r
-# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_C(BOOST_PP_BOOL(p##(144, s)), p, o, s)\r
-# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_C(BOOST_PP_BOOL(p##(145, s)), p, o, s)\r
-# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_C(BOOST_PP_BOOL(p##(146, s)), p, o, s)\r
-# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_C(BOOST_PP_BOOL(p##(147, s)), p, o, s)\r
-# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_C(BOOST_PP_BOOL(p##(148, s)), p, o, s)\r
-# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_C(BOOST_PP_BOOL(p##(149, s)), p, o, s)\r
-# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_C(BOOST_PP_BOOL(p##(150, s)), p, o, s)\r
-# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_C(BOOST_PP_BOOL(p##(151, s)), p, o, s)\r
-# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_C(BOOST_PP_BOOL(p##(152, s)), p, o, s)\r
-# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_C(BOOST_PP_BOOL(p##(153, s)), p, o, s)\r
-# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_C(BOOST_PP_BOOL(p##(154, s)), p, o, s)\r
-# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_C(BOOST_PP_BOOL(p##(155, s)), p, o, s)\r
-# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_C(BOOST_PP_BOOL(p##(156, s)), p, o, s)\r
-# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_C(BOOST_PP_BOOL(p##(157, s)), p, o, s)\r
-# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_C(BOOST_PP_BOOL(p##(158, s)), p, o, s)\r
-# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_C(BOOST_PP_BOOL(p##(159, s)), p, o, s)\r
-# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_C(BOOST_PP_BOOL(p##(160, s)), p, o, s)\r
-# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_C(BOOST_PP_BOOL(p##(161, s)), p, o, s)\r
-# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_C(BOOST_PP_BOOL(p##(162, s)), p, o, s)\r
-# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_C(BOOST_PP_BOOL(p##(163, s)), p, o, s)\r
-# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_C(BOOST_PP_BOOL(p##(164, s)), p, o, s)\r
-# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_C(BOOST_PP_BOOL(p##(165, s)), p, o, s)\r
-# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_C(BOOST_PP_BOOL(p##(166, s)), p, o, s)\r
-# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_C(BOOST_PP_BOOL(p##(167, s)), p, o, s)\r
-# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_C(BOOST_PP_BOOL(p##(168, s)), p, o, s)\r
-# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_C(BOOST_PP_BOOL(p##(169, s)), p, o, s)\r
-# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_C(BOOST_PP_BOOL(p##(170, s)), p, o, s)\r
-# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_C(BOOST_PP_BOOL(p##(171, s)), p, o, s)\r
-# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_C(BOOST_PP_BOOL(p##(172, s)), p, o, s)\r
-# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_C(BOOST_PP_BOOL(p##(173, s)), p, o, s)\r
-# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_C(BOOST_PP_BOOL(p##(174, s)), p, o, s)\r
-# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_C(BOOST_PP_BOOL(p##(175, s)), p, o, s)\r
-# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_C(BOOST_PP_BOOL(p##(176, s)), p, o, s)\r
-# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_C(BOOST_PP_BOOL(p##(177, s)), p, o, s)\r
-# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_C(BOOST_PP_BOOL(p##(178, s)), p, o, s)\r
-# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_C(BOOST_PP_BOOL(p##(179, s)), p, o, s)\r
-# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_C(BOOST_PP_BOOL(p##(180, s)), p, o, s)\r
-# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_C(BOOST_PP_BOOL(p##(181, s)), p, o, s)\r
-# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_C(BOOST_PP_BOOL(p##(182, s)), p, o, s)\r
-# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_C(BOOST_PP_BOOL(p##(183, s)), p, o, s)\r
-# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_C(BOOST_PP_BOOL(p##(184, s)), p, o, s)\r
-# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_C(BOOST_PP_BOOL(p##(185, s)), p, o, s)\r
-# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_C(BOOST_PP_BOOL(p##(186, s)), p, o, s)\r
-# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_C(BOOST_PP_BOOL(p##(187, s)), p, o, s)\r
-# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_C(BOOST_PP_BOOL(p##(188, s)), p, o, s)\r
-# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_C(BOOST_PP_BOOL(p##(189, s)), p, o, s)\r
-# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_C(BOOST_PP_BOOL(p##(190, s)), p, o, s)\r
-# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_C(BOOST_PP_BOOL(p##(191, s)), p, o, s)\r
-# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_C(BOOST_PP_BOOL(p##(192, s)), p, o, s)\r
-# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_C(BOOST_PP_BOOL(p##(193, s)), p, o, s)\r
-# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_C(BOOST_PP_BOOL(p##(194, s)), p, o, s)\r
-# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_C(BOOST_PP_BOOL(p##(195, s)), p, o, s)\r
-# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_C(BOOST_PP_BOOL(p##(196, s)), p, o, s)\r
-# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_C(BOOST_PP_BOOL(p##(197, s)), p, o, s)\r
-# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_C(BOOST_PP_BOOL(p##(198, s)), p, o, s)\r
-# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_C(BOOST_PP_BOOL(p##(199, s)), p, o, s)\r
-# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_C(BOOST_PP_BOOL(p##(200, s)), p, o, s)\r
-# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_C(BOOST_PP_BOOL(p##(201, s)), p, o, s)\r
-# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_C(BOOST_PP_BOOL(p##(202, s)), p, o, s)\r
-# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_C(BOOST_PP_BOOL(p##(203, s)), p, o, s)\r
-# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_C(BOOST_PP_BOOL(p##(204, s)), p, o, s)\r
-# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_C(BOOST_PP_BOOL(p##(205, s)), p, o, s)\r
-# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_C(BOOST_PP_BOOL(p##(206, s)), p, o, s)\r
-# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_C(BOOST_PP_BOOL(p##(207, s)), p, o, s)\r
-# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_C(BOOST_PP_BOOL(p##(208, s)), p, o, s)\r
-# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_C(BOOST_PP_BOOL(p##(209, s)), p, o, s)\r
-# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_C(BOOST_PP_BOOL(p##(210, s)), p, o, s)\r
-# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_C(BOOST_PP_BOOL(p##(211, s)), p, o, s)\r
-# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_C(BOOST_PP_BOOL(p##(212, s)), p, o, s)\r
-# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_C(BOOST_PP_BOOL(p##(213, s)), p, o, s)\r
-# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_C(BOOST_PP_BOOL(p##(214, s)), p, o, s)\r
-# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_C(BOOST_PP_BOOL(p##(215, s)), p, o, s)\r
-# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_C(BOOST_PP_BOOL(p##(216, s)), p, o, s)\r
-# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_C(BOOST_PP_BOOL(p##(217, s)), p, o, s)\r
-# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_C(BOOST_PP_BOOL(p##(218, s)), p, o, s)\r
-# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_C(BOOST_PP_BOOL(p##(219, s)), p, o, s)\r
-# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_C(BOOST_PP_BOOL(p##(220, s)), p, o, s)\r
-# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_C(BOOST_PP_BOOL(p##(221, s)), p, o, s)\r
-# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_C(BOOST_PP_BOOL(p##(222, s)), p, o, s)\r
-# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_C(BOOST_PP_BOOL(p##(223, s)), p, o, s)\r
-# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_C(BOOST_PP_BOOL(p##(224, s)), p, o, s)\r
-# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_C(BOOST_PP_BOOL(p##(225, s)), p, o, s)\r
-# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_C(BOOST_PP_BOOL(p##(226, s)), p, o, s)\r
-# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_C(BOOST_PP_BOOL(p##(227, s)), p, o, s)\r
-# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_C(BOOST_PP_BOOL(p##(228, s)), p, o, s)\r
-# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_C(BOOST_PP_BOOL(p##(229, s)), p, o, s)\r
-# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_C(BOOST_PP_BOOL(p##(230, s)), p, o, s)\r
-# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_C(BOOST_PP_BOOL(p##(231, s)), p, o, s)\r
-# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_C(BOOST_PP_BOOL(p##(232, s)), p, o, s)\r
-# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_C(BOOST_PP_BOOL(p##(233, s)), p, o, s)\r
-# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_C(BOOST_PP_BOOL(p##(234, s)), p, o, s)\r
-# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_C(BOOST_PP_BOOL(p##(235, s)), p, o, s)\r
-# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_C(BOOST_PP_BOOL(p##(236, s)), p, o, s)\r
-# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_C(BOOST_PP_BOOL(p##(237, s)), p, o, s)\r
-# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_C(BOOST_PP_BOOL(p##(238, s)), p, o, s)\r
-# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_C(BOOST_PP_BOOL(p##(239, s)), p, o, s)\r
-# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_C(BOOST_PP_BOOL(p##(240, s)), p, o, s)\r
-# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_C(BOOST_PP_BOOL(p##(241, s)), p, o, s)\r
-# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_C(BOOST_PP_BOOL(p##(242, s)), p, o, s)\r
-# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_C(BOOST_PP_BOOL(p##(243, s)), p, o, s)\r
-# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_C(BOOST_PP_BOOL(p##(244, s)), p, o, s)\r
-# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_C(BOOST_PP_BOOL(p##(245, s)), p, o, s)\r
-# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_C(BOOST_PP_BOOL(p##(246, s)), p, o, s)\r
-# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_C(BOOST_PP_BOOL(p##(247, s)), p, o, s)\r
-# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_C(BOOST_PP_BOOL(p##(248, s)), p, o, s)\r
-# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_C(BOOST_PP_BOOL(p##(249, s)), p, o, s)\r
-# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_C(BOOST_PP_BOOL(p##(250, s)), p, o, s)\r
-# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_C(BOOST_PP_BOOL(p##(251, s)), p, o, s)\r
-# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_C(BOOST_PP_BOOL(p##(252, s)), p, o, s)\r
-# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_C(BOOST_PP_BOOL(p##(253, s)), p, o, s)\r
-# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_C(BOOST_PP_BOOL(p##(254, s)), p, o, s)\r
-# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_C(BOOST_PP_BOOL(p##(255, s)), p, o, s)\r
-# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_C(BOOST_PP_BOOL(p##(256, s)), p, o, s)\r
-# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_C(BOOST_PP_BOOL(p##(257, s)), p, o, s)\r
-#\r
-# define BOOST_PP_WHILE_1_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_2, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(2, s))\r
-# define BOOST_PP_WHILE_2_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_3, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(3, s))\r
-# define BOOST_PP_WHILE_3_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_4, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(4, s))\r
-# define BOOST_PP_WHILE_4_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_5, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(5, s))\r
-# define BOOST_PP_WHILE_5_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_6, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(6, s))\r
-# define BOOST_PP_WHILE_6_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_7, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(7, s))\r
-# define BOOST_PP_WHILE_7_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_8, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(8, s))\r
-# define BOOST_PP_WHILE_8_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_9, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(9, s))\r
-# define BOOST_PP_WHILE_9_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_10, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(10, s))\r
-# define BOOST_PP_WHILE_10_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_11, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(11, s))\r
-# define BOOST_PP_WHILE_11_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_12, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(12, s))\r
-# define BOOST_PP_WHILE_12_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_13, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(13, s))\r
-# define BOOST_PP_WHILE_13_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_14, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(14, s))\r
-# define BOOST_PP_WHILE_14_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_15, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(15, s))\r
-# define BOOST_PP_WHILE_15_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_16, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(16, s))\r
-# define BOOST_PP_WHILE_16_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_17, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(17, s))\r
-# define BOOST_PP_WHILE_17_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_18, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(18, s))\r
-# define BOOST_PP_WHILE_18_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_19, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(19, s))\r
-# define BOOST_PP_WHILE_19_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_20, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(20, s))\r
-# define BOOST_PP_WHILE_20_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_21, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(21, s))\r
-# define BOOST_PP_WHILE_21_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_22, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(22, s))\r
-# define BOOST_PP_WHILE_22_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_23, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(23, s))\r
-# define BOOST_PP_WHILE_23_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_24, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(24, s))\r
-# define BOOST_PP_WHILE_24_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_25, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(25, s))\r
-# define BOOST_PP_WHILE_25_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_26, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(26, s))\r
-# define BOOST_PP_WHILE_26_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_27, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(27, s))\r
-# define BOOST_PP_WHILE_27_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_28, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(28, s))\r
-# define BOOST_PP_WHILE_28_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_29, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(29, s))\r
-# define BOOST_PP_WHILE_29_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_30, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(30, s))\r
-# define BOOST_PP_WHILE_30_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_31, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(31, s))\r
-# define BOOST_PP_WHILE_31_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_32, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(32, s))\r
-# define BOOST_PP_WHILE_32_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_33, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(33, s))\r
-# define BOOST_PP_WHILE_33_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_34, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(34, s))\r
-# define BOOST_PP_WHILE_34_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_35, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(35, s))\r
-# define BOOST_PP_WHILE_35_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_36, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(36, s))\r
-# define BOOST_PP_WHILE_36_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_37, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(37, s))\r
-# define BOOST_PP_WHILE_37_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_38, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(38, s))\r
-# define BOOST_PP_WHILE_38_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_39, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(39, s))\r
-# define BOOST_PP_WHILE_39_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_40, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(40, s))\r
-# define BOOST_PP_WHILE_40_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_41, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(41, s))\r
-# define BOOST_PP_WHILE_41_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_42, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(42, s))\r
-# define BOOST_PP_WHILE_42_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_43, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(43, s))\r
-# define BOOST_PP_WHILE_43_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_44, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(44, s))\r
-# define BOOST_PP_WHILE_44_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_45, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(45, s))\r
-# define BOOST_PP_WHILE_45_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_46, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(46, s))\r
-# define BOOST_PP_WHILE_46_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_47, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(47, s))\r
-# define BOOST_PP_WHILE_47_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_48, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(48, s))\r
-# define BOOST_PP_WHILE_48_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_49, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(49, s))\r
-# define BOOST_PP_WHILE_49_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_50, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(50, s))\r
-# define BOOST_PP_WHILE_50_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_51, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(51, s))\r
-# define BOOST_PP_WHILE_51_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_52, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(52, s))\r
-# define BOOST_PP_WHILE_52_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_53, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(53, s))\r
-# define BOOST_PP_WHILE_53_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_54, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(54, s))\r
-# define BOOST_PP_WHILE_54_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_55, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(55, s))\r
-# define BOOST_PP_WHILE_55_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_56, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(56, s))\r
-# define BOOST_PP_WHILE_56_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_57, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(57, s))\r
-# define BOOST_PP_WHILE_57_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_58, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(58, s))\r
-# define BOOST_PP_WHILE_58_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_59, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(59, s))\r
-# define BOOST_PP_WHILE_59_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_60, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(60, s))\r
-# define BOOST_PP_WHILE_60_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_61, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(61, s))\r
-# define BOOST_PP_WHILE_61_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_62, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(62, s))\r
-# define BOOST_PP_WHILE_62_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_63, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(63, s))\r
-# define BOOST_PP_WHILE_63_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_64, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(64, s))\r
-# define BOOST_PP_WHILE_64_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_65, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(65, s))\r
-# define BOOST_PP_WHILE_65_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_66, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(66, s))\r
-# define BOOST_PP_WHILE_66_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_67, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(67, s))\r
-# define BOOST_PP_WHILE_67_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_68, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(68, s))\r
-# define BOOST_PP_WHILE_68_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_69, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(69, s))\r
-# define BOOST_PP_WHILE_69_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_70, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(70, s))\r
-# define BOOST_PP_WHILE_70_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_71, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(71, s))\r
-# define BOOST_PP_WHILE_71_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_72, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(72, s))\r
-# define BOOST_PP_WHILE_72_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_73, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(73, s))\r
-# define BOOST_PP_WHILE_73_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_74, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(74, s))\r
-# define BOOST_PP_WHILE_74_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_75, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(75, s))\r
-# define BOOST_PP_WHILE_75_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_76, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(76, s))\r
-# define BOOST_PP_WHILE_76_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_77, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(77, s))\r
-# define BOOST_PP_WHILE_77_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_78, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(78, s))\r
-# define BOOST_PP_WHILE_78_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_79, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(79, s))\r
-# define BOOST_PP_WHILE_79_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_80, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(80, s))\r
-# define BOOST_PP_WHILE_80_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_81, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(81, s))\r
-# define BOOST_PP_WHILE_81_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_82, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(82, s))\r
-# define BOOST_PP_WHILE_82_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_83, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(83, s))\r
-# define BOOST_PP_WHILE_83_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_84, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(84, s))\r
-# define BOOST_PP_WHILE_84_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_85, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(85, s))\r
-# define BOOST_PP_WHILE_85_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_86, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(86, s))\r
-# define BOOST_PP_WHILE_86_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_87, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(87, s))\r
-# define BOOST_PP_WHILE_87_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_88, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(88, s))\r
-# define BOOST_PP_WHILE_88_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_89, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(89, s))\r
-# define BOOST_PP_WHILE_89_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_90, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(90, s))\r
-# define BOOST_PP_WHILE_90_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_91, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(91, s))\r
-# define BOOST_PP_WHILE_91_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_92, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(92, s))\r
-# define BOOST_PP_WHILE_92_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_93, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(93, s))\r
-# define BOOST_PP_WHILE_93_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_94, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(94, s))\r
-# define BOOST_PP_WHILE_94_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_95, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(95, s))\r
-# define BOOST_PP_WHILE_95_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_96, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(96, s))\r
-# define BOOST_PP_WHILE_96_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_97, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(97, s))\r
-# define BOOST_PP_WHILE_97_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_98, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(98, s))\r
-# define BOOST_PP_WHILE_98_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_99, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(99, s))\r
-# define BOOST_PP_WHILE_99_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_100, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(100, s))\r
-# define BOOST_PP_WHILE_100_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_101, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(101, s))\r
-# define BOOST_PP_WHILE_101_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_102, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(102, s))\r
-# define BOOST_PP_WHILE_102_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_103, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(103, s))\r
-# define BOOST_PP_WHILE_103_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_104, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(104, s))\r
-# define BOOST_PP_WHILE_104_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_105, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(105, s))\r
-# define BOOST_PP_WHILE_105_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_106, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(106, s))\r
-# define BOOST_PP_WHILE_106_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_107, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(107, s))\r
-# define BOOST_PP_WHILE_107_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_108, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(108, s))\r
-# define BOOST_PP_WHILE_108_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_109, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(109, s))\r
-# define BOOST_PP_WHILE_109_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_110, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(110, s))\r
-# define BOOST_PP_WHILE_110_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_111, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(111, s))\r
-# define BOOST_PP_WHILE_111_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_112, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(112, s))\r
-# define BOOST_PP_WHILE_112_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_113, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(113, s))\r
-# define BOOST_PP_WHILE_113_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_114, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(114, s))\r
-# define BOOST_PP_WHILE_114_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_115, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(115, s))\r
-# define BOOST_PP_WHILE_115_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_116, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(116, s))\r
-# define BOOST_PP_WHILE_116_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_117, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(117, s))\r
-# define BOOST_PP_WHILE_117_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_118, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(118, s))\r
-# define BOOST_PP_WHILE_118_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_119, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(119, s))\r
-# define BOOST_PP_WHILE_119_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_120, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(120, s))\r
-# define BOOST_PP_WHILE_120_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_121, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(121, s))\r
-# define BOOST_PP_WHILE_121_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_122, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(122, s))\r
-# define BOOST_PP_WHILE_122_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_123, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(123, s))\r
-# define BOOST_PP_WHILE_123_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_124, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(124, s))\r
-# define BOOST_PP_WHILE_124_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_125, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(125, s))\r
-# define BOOST_PP_WHILE_125_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_126, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(126, s))\r
-# define BOOST_PP_WHILE_126_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_127, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(127, s))\r
-# define BOOST_PP_WHILE_127_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_128, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(128, s))\r
-# define BOOST_PP_WHILE_128_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_129, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(129, s))\r
-# define BOOST_PP_WHILE_129_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_130, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(130, s))\r
-# define BOOST_PP_WHILE_130_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_131, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(131, s))\r
-# define BOOST_PP_WHILE_131_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_132, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(132, s))\r
-# define BOOST_PP_WHILE_132_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_133, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(133, s))\r
-# define BOOST_PP_WHILE_133_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_134, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(134, s))\r
-# define BOOST_PP_WHILE_134_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_135, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(135, s))\r
-# define BOOST_PP_WHILE_135_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_136, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(136, s))\r
-# define BOOST_PP_WHILE_136_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_137, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(137, s))\r
-# define BOOST_PP_WHILE_137_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_138, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(138, s))\r
-# define BOOST_PP_WHILE_138_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_139, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(139, s))\r
-# define BOOST_PP_WHILE_139_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_140, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(140, s))\r
-# define BOOST_PP_WHILE_140_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_141, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(141, s))\r
-# define BOOST_PP_WHILE_141_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_142, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(142, s))\r
-# define BOOST_PP_WHILE_142_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_143, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(143, s))\r
-# define BOOST_PP_WHILE_143_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_144, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(144, s))\r
-# define BOOST_PP_WHILE_144_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_145, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(145, s))\r
-# define BOOST_PP_WHILE_145_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_146, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(146, s))\r
-# define BOOST_PP_WHILE_146_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_147, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(147, s))\r
-# define BOOST_PP_WHILE_147_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_148, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(148, s))\r
-# define BOOST_PP_WHILE_148_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_149, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(149, s))\r
-# define BOOST_PP_WHILE_149_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_150, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(150, s))\r
-# define BOOST_PP_WHILE_150_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_151, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(151, s))\r
-# define BOOST_PP_WHILE_151_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_152, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(152, s))\r
-# define BOOST_PP_WHILE_152_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_153, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(153, s))\r
-# define BOOST_PP_WHILE_153_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_154, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(154, s))\r
-# define BOOST_PP_WHILE_154_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_155, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(155, s))\r
-# define BOOST_PP_WHILE_155_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_156, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(156, s))\r
-# define BOOST_PP_WHILE_156_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_157, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(157, s))\r
-# define BOOST_PP_WHILE_157_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_158, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(158, s))\r
-# define BOOST_PP_WHILE_158_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_159, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(159, s))\r
-# define BOOST_PP_WHILE_159_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_160, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(160, s))\r
-# define BOOST_PP_WHILE_160_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_161, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(161, s))\r
-# define BOOST_PP_WHILE_161_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_162, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(162, s))\r
-# define BOOST_PP_WHILE_162_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_163, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(163, s))\r
-# define BOOST_PP_WHILE_163_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_164, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(164, s))\r
-# define BOOST_PP_WHILE_164_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_165, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(165, s))\r
-# define BOOST_PP_WHILE_165_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_166, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(166, s))\r
-# define BOOST_PP_WHILE_166_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_167, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(167, s))\r
-# define BOOST_PP_WHILE_167_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_168, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(168, s))\r
-# define BOOST_PP_WHILE_168_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_169, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(169, s))\r
-# define BOOST_PP_WHILE_169_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_170, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(170, s))\r
-# define BOOST_PP_WHILE_170_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_171, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(171, s))\r
-# define BOOST_PP_WHILE_171_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_172, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(172, s))\r
-# define BOOST_PP_WHILE_172_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_173, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(173, s))\r
-# define BOOST_PP_WHILE_173_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_174, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(174, s))\r
-# define BOOST_PP_WHILE_174_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_175, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(175, s))\r
-# define BOOST_PP_WHILE_175_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_176, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(176, s))\r
-# define BOOST_PP_WHILE_176_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_177, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(177, s))\r
-# define BOOST_PP_WHILE_177_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_178, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(178, s))\r
-# define BOOST_PP_WHILE_178_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_179, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(179, s))\r
-# define BOOST_PP_WHILE_179_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_180, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(180, s))\r
-# define BOOST_PP_WHILE_180_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_181, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(181, s))\r
-# define BOOST_PP_WHILE_181_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_182, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(182, s))\r
-# define BOOST_PP_WHILE_182_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_183, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(183, s))\r
-# define BOOST_PP_WHILE_183_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_184, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(184, s))\r
-# define BOOST_PP_WHILE_184_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_185, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(185, s))\r
-# define BOOST_PP_WHILE_185_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_186, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(186, s))\r
-# define BOOST_PP_WHILE_186_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_187, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(187, s))\r
-# define BOOST_PP_WHILE_187_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_188, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(188, s))\r
-# define BOOST_PP_WHILE_188_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_189, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(189, s))\r
-# define BOOST_PP_WHILE_189_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_190, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(190, s))\r
-# define BOOST_PP_WHILE_190_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_191, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(191, s))\r
-# define BOOST_PP_WHILE_191_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_192, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(192, s))\r
-# define BOOST_PP_WHILE_192_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_193, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(193, s))\r
-# define BOOST_PP_WHILE_193_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_194, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(194, s))\r
-# define BOOST_PP_WHILE_194_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_195, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(195, s))\r
-# define BOOST_PP_WHILE_195_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_196, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(196, s))\r
-# define BOOST_PP_WHILE_196_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_197, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(197, s))\r
-# define BOOST_PP_WHILE_197_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_198, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(198, s))\r
-# define BOOST_PP_WHILE_198_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_199, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(199, s))\r
-# define BOOST_PP_WHILE_199_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_200, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(200, s))\r
-# define BOOST_PP_WHILE_200_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_201, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(201, s))\r
-# define BOOST_PP_WHILE_201_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_202, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(202, s))\r
-# define BOOST_PP_WHILE_202_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_203, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(203, s))\r
-# define BOOST_PP_WHILE_203_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_204, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(204, s))\r
-# define BOOST_PP_WHILE_204_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_205, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(205, s))\r
-# define BOOST_PP_WHILE_205_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_206, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(206, s))\r
-# define BOOST_PP_WHILE_206_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_207, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(207, s))\r
-# define BOOST_PP_WHILE_207_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_208, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(208, s))\r
-# define BOOST_PP_WHILE_208_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_209, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(209, s))\r
-# define BOOST_PP_WHILE_209_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_210, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(210, s))\r
-# define BOOST_PP_WHILE_210_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_211, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(211, s))\r
-# define BOOST_PP_WHILE_211_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_212, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(212, s))\r
-# define BOOST_PP_WHILE_212_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_213, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(213, s))\r
-# define BOOST_PP_WHILE_213_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_214, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(214, s))\r
-# define BOOST_PP_WHILE_214_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_215, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(215, s))\r
-# define BOOST_PP_WHILE_215_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_216, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(216, s))\r
-# define BOOST_PP_WHILE_216_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_217, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(217, s))\r
-# define BOOST_PP_WHILE_217_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_218, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(218, s))\r
-# define BOOST_PP_WHILE_218_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_219, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(219, s))\r
-# define BOOST_PP_WHILE_219_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_220, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(220, s))\r
-# define BOOST_PP_WHILE_220_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_221, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(221, s))\r
-# define BOOST_PP_WHILE_221_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_222, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(222, s))\r
-# define BOOST_PP_WHILE_222_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_223, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(223, s))\r
-# define BOOST_PP_WHILE_223_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_224, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(224, s))\r
-# define BOOST_PP_WHILE_224_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_225, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(225, s))\r
-# define BOOST_PP_WHILE_225_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_226, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(226, s))\r
-# define BOOST_PP_WHILE_226_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_227, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(227, s))\r
-# define BOOST_PP_WHILE_227_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_228, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(228, s))\r
-# define BOOST_PP_WHILE_228_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_229, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(229, s))\r
-# define BOOST_PP_WHILE_229_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_230, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(230, s))\r
-# define BOOST_PP_WHILE_230_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_231, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(231, s))\r
-# define BOOST_PP_WHILE_231_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_232, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(232, s))\r
-# define BOOST_PP_WHILE_232_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_233, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(233, s))\r
-# define BOOST_PP_WHILE_233_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_234, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(234, s))\r
-# define BOOST_PP_WHILE_234_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_235, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(235, s))\r
-# define BOOST_PP_WHILE_235_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_236, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(236, s))\r
-# define BOOST_PP_WHILE_236_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_237, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(237, s))\r
-# define BOOST_PP_WHILE_237_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_238, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(238, s))\r
-# define BOOST_PP_WHILE_238_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_239, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(239, s))\r
-# define BOOST_PP_WHILE_239_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_240, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(240, s))\r
-# define BOOST_PP_WHILE_240_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_241, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(241, s))\r
-# define BOOST_PP_WHILE_241_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_242, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(242, s))\r
-# define BOOST_PP_WHILE_242_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_243, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(243, s))\r
-# define BOOST_PP_WHILE_243_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_244, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(244, s))\r
-# define BOOST_PP_WHILE_244_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_245, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(245, s))\r
-# define BOOST_PP_WHILE_245_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_246, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(246, s))\r
-# define BOOST_PP_WHILE_246_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_247, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(247, s))\r
-# define BOOST_PP_WHILE_247_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_248, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(248, s))\r
-# define BOOST_PP_WHILE_248_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_249, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(249, s))\r
-# define BOOST_PP_WHILE_249_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_250, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(250, s))\r
-# define BOOST_PP_WHILE_250_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_251, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(251, s))\r
-# define BOOST_PP_WHILE_251_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_252, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(252, s))\r
-# define BOOST_PP_WHILE_252_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_253, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(253, s))\r
-# define BOOST_PP_WHILE_253_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_254, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(254, s))\r
-# define BOOST_PP_WHILE_254_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_255, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(255, s))\r
-# define BOOST_PP_WHILE_255_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_256, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(256, s))\r
-# define BOOST_PP_WHILE_256_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_257, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(257, s))\r
-#\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
+# define BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
+#
+# include <boost/preprocessor/control/iif.hpp>
+# include <boost/preprocessor/logical/bool.hpp>
+# include <boost/preprocessor/tuple/eat.hpp>
+#
+# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_C(BOOST_PP_BOOL(p##(2, s)), p, o, s)
+# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_C(BOOST_PP_BOOL(p##(3, s)), p, o, s)
+# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_C(BOOST_PP_BOOL(p##(4, s)), p, o, s)
+# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_C(BOOST_PP_BOOL(p##(5, s)), p, o, s)
+# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_C(BOOST_PP_BOOL(p##(6, s)), p, o, s)
+# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_C(BOOST_PP_BOOL(p##(7, s)), p, o, s)
+# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_C(BOOST_PP_BOOL(p##(8, s)), p, o, s)
+# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_C(BOOST_PP_BOOL(p##(9, s)), p, o, s)
+# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_C(BOOST_PP_BOOL(p##(10, s)), p, o, s)
+# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_C(BOOST_PP_BOOL(p##(11, s)), p, o, s)
+# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_C(BOOST_PP_BOOL(p##(12, s)), p, o, s)
+# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_C(BOOST_PP_BOOL(p##(13, s)), p, o, s)
+# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_C(BOOST_PP_BOOL(p##(14, s)), p, o, s)
+# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_C(BOOST_PP_BOOL(p##(15, s)), p, o, s)
+# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_C(BOOST_PP_BOOL(p##(16, s)), p, o, s)
+# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_C(BOOST_PP_BOOL(p##(17, s)), p, o, s)
+# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_C(BOOST_PP_BOOL(p##(18, s)), p, o, s)
+# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_C(BOOST_PP_BOOL(p##(19, s)), p, o, s)
+# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_C(BOOST_PP_BOOL(p##(20, s)), p, o, s)
+# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_C(BOOST_PP_BOOL(p##(21, s)), p, o, s)
+# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_C(BOOST_PP_BOOL(p##(22, s)), p, o, s)
+# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_C(BOOST_PP_BOOL(p##(23, s)), p, o, s)
+# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_C(BOOST_PP_BOOL(p##(24, s)), p, o, s)
+# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_C(BOOST_PP_BOOL(p##(25, s)), p, o, s)
+# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_C(BOOST_PP_BOOL(p##(26, s)), p, o, s)
+# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_C(BOOST_PP_BOOL(p##(27, s)), p, o, s)
+# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_C(BOOST_PP_BOOL(p##(28, s)), p, o, s)
+# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_C(BOOST_PP_BOOL(p##(29, s)), p, o, s)
+# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_C(BOOST_PP_BOOL(p##(30, s)), p, o, s)
+# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_C(BOOST_PP_BOOL(p##(31, s)), p, o, s)
+# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_C(BOOST_PP_BOOL(p##(32, s)), p, o, s)
+# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_C(BOOST_PP_BOOL(p##(33, s)), p, o, s)
+# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_C(BOOST_PP_BOOL(p##(34, s)), p, o, s)
+# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_C(BOOST_PP_BOOL(p##(35, s)), p, o, s)
+# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_C(BOOST_PP_BOOL(p##(36, s)), p, o, s)
+# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_C(BOOST_PP_BOOL(p##(37, s)), p, o, s)
+# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_C(BOOST_PP_BOOL(p##(38, s)), p, o, s)
+# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_C(BOOST_PP_BOOL(p##(39, s)), p, o, s)
+# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_C(BOOST_PP_BOOL(p##(40, s)), p, o, s)
+# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_C(BOOST_PP_BOOL(p##(41, s)), p, o, s)
+# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_C(BOOST_PP_BOOL(p##(42, s)), p, o, s)
+# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_C(BOOST_PP_BOOL(p##(43, s)), p, o, s)
+# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_C(BOOST_PP_BOOL(p##(44, s)), p, o, s)
+# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_C(BOOST_PP_BOOL(p##(45, s)), p, o, s)
+# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_C(BOOST_PP_BOOL(p##(46, s)), p, o, s)
+# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_C(BOOST_PP_BOOL(p##(47, s)), p, o, s)
+# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_C(BOOST_PP_BOOL(p##(48, s)), p, o, s)
+# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_C(BOOST_PP_BOOL(p##(49, s)), p, o, s)
+# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_C(BOOST_PP_BOOL(p##(50, s)), p, o, s)
+# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_C(BOOST_PP_BOOL(p##(51, s)), p, o, s)
+# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_C(BOOST_PP_BOOL(p##(52, s)), p, o, s)
+# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_C(BOOST_PP_BOOL(p##(53, s)), p, o, s)
+# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_C(BOOST_PP_BOOL(p##(54, s)), p, o, s)
+# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_C(BOOST_PP_BOOL(p##(55, s)), p, o, s)
+# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_C(BOOST_PP_BOOL(p##(56, s)), p, o, s)
+# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_C(BOOST_PP_BOOL(p##(57, s)), p, o, s)
+# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_C(BOOST_PP_BOOL(p##(58, s)), p, o, s)
+# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_C(BOOST_PP_BOOL(p##(59, s)), p, o, s)
+# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_C(BOOST_PP_BOOL(p##(60, s)), p, o, s)
+# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_C(BOOST_PP_BOOL(p##(61, s)), p, o, s)
+# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_C(BOOST_PP_BOOL(p##(62, s)), p, o, s)
+# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_C(BOOST_PP_BOOL(p##(63, s)), p, o, s)
+# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_C(BOOST_PP_BOOL(p##(64, s)), p, o, s)
+# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_C(BOOST_PP_BOOL(p##(65, s)), p, o, s)
+# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_C(BOOST_PP_BOOL(p##(66, s)), p, o, s)
+# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_C(BOOST_PP_BOOL(p##(67, s)), p, o, s)
+# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_C(BOOST_PP_BOOL(p##(68, s)), p, o, s)
+# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_C(BOOST_PP_BOOL(p##(69, s)), p, o, s)
+# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_C(BOOST_PP_BOOL(p##(70, s)), p, o, s)
+# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_C(BOOST_PP_BOOL(p##(71, s)), p, o, s)
+# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_C(BOOST_PP_BOOL(p##(72, s)), p, o, s)
+# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_C(BOOST_PP_BOOL(p##(73, s)), p, o, s)
+# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_C(BOOST_PP_BOOL(p##(74, s)), p, o, s)
+# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_C(BOOST_PP_BOOL(p##(75, s)), p, o, s)
+# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_C(BOOST_PP_BOOL(p##(76, s)), p, o, s)
+# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_C(BOOST_PP_BOOL(p##(77, s)), p, o, s)
+# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_C(BOOST_PP_BOOL(p##(78, s)), p, o, s)
+# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_C(BOOST_PP_BOOL(p##(79, s)), p, o, s)
+# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_C(BOOST_PP_BOOL(p##(80, s)), p, o, s)
+# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_C(BOOST_PP_BOOL(p##(81, s)), p, o, s)
+# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_C(BOOST_PP_BOOL(p##(82, s)), p, o, s)
+# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_C(BOOST_PP_BOOL(p##(83, s)), p, o, s)
+# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_C(BOOST_PP_BOOL(p##(84, s)), p, o, s)
+# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_C(BOOST_PP_BOOL(p##(85, s)), p, o, s)
+# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_C(BOOST_PP_BOOL(p##(86, s)), p, o, s)
+# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_C(BOOST_PP_BOOL(p##(87, s)), p, o, s)
+# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_C(BOOST_PP_BOOL(p##(88, s)), p, o, s)
+# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_C(BOOST_PP_BOOL(p##(89, s)), p, o, s)
+# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_C(BOOST_PP_BOOL(p##(90, s)), p, o, s)
+# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_C(BOOST_PP_BOOL(p##(91, s)), p, o, s)
+# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_C(BOOST_PP_BOOL(p##(92, s)), p, o, s)
+# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_C(BOOST_PP_BOOL(p##(93, s)), p, o, s)
+# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_C(BOOST_PP_BOOL(p##(94, s)), p, o, s)
+# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_C(BOOST_PP_BOOL(p##(95, s)), p, o, s)
+# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_C(BOOST_PP_BOOL(p##(96, s)), p, o, s)
+# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_C(BOOST_PP_BOOL(p##(97, s)), p, o, s)
+# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_C(BOOST_PP_BOOL(p##(98, s)), p, o, s)
+# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_C(BOOST_PP_BOOL(p##(99, s)), p, o, s)
+# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_C(BOOST_PP_BOOL(p##(100, s)), p, o, s)
+# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_C(BOOST_PP_BOOL(p##(101, s)), p, o, s)
+# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_C(BOOST_PP_BOOL(p##(102, s)), p, o, s)
+# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_C(BOOST_PP_BOOL(p##(103, s)), p, o, s)
+# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_C(BOOST_PP_BOOL(p##(104, s)), p, o, s)
+# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_C(BOOST_PP_BOOL(p##(105, s)), p, o, s)
+# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_C(BOOST_PP_BOOL(p##(106, s)), p, o, s)
+# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_C(BOOST_PP_BOOL(p##(107, s)), p, o, s)
+# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_C(BOOST_PP_BOOL(p##(108, s)), p, o, s)
+# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_C(BOOST_PP_BOOL(p##(109, s)), p, o, s)
+# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_C(BOOST_PP_BOOL(p##(110, s)), p, o, s)
+# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_C(BOOST_PP_BOOL(p##(111, s)), p, o, s)
+# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_C(BOOST_PP_BOOL(p##(112, s)), p, o, s)
+# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_C(BOOST_PP_BOOL(p##(113, s)), p, o, s)
+# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_C(BOOST_PP_BOOL(p##(114, s)), p, o, s)
+# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_C(BOOST_PP_BOOL(p##(115, s)), p, o, s)
+# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_C(BOOST_PP_BOOL(p##(116, s)), p, o, s)
+# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_C(BOOST_PP_BOOL(p##(117, s)), p, o, s)
+# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_C(BOOST_PP_BOOL(p##(118, s)), p, o, s)
+# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_C(BOOST_PP_BOOL(p##(119, s)), p, o, s)
+# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_C(BOOST_PP_BOOL(p##(120, s)), p, o, s)
+# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_C(BOOST_PP_BOOL(p##(121, s)), p, o, s)
+# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_C(BOOST_PP_BOOL(p##(122, s)), p, o, s)
+# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_C(BOOST_PP_BOOL(p##(123, s)), p, o, s)
+# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_C(BOOST_PP_BOOL(p##(124, s)), p, o, s)
+# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_C(BOOST_PP_BOOL(p##(125, s)), p, o, s)
+# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_C(BOOST_PP_BOOL(p##(126, s)), p, o, s)
+# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_C(BOOST_PP_BOOL(p##(127, s)), p, o, s)
+# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_C(BOOST_PP_BOOL(p##(128, s)), p, o, s)
+# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_C(BOOST_PP_BOOL(p##(129, s)), p, o, s)
+# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_C(BOOST_PP_BOOL(p##(130, s)), p, o, s)
+# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_C(BOOST_PP_BOOL(p##(131, s)), p, o, s)
+# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_C(BOOST_PP_BOOL(p##(132, s)), p, o, s)
+# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_C(BOOST_PP_BOOL(p##(133, s)), p, o, s)
+# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_C(BOOST_PP_BOOL(p##(134, s)), p, o, s)
+# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_C(BOOST_PP_BOOL(p##(135, s)), p, o, s)
+# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_C(BOOST_PP_BOOL(p##(136, s)), p, o, s)
+# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_C(BOOST_PP_BOOL(p##(137, s)), p, o, s)
+# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_C(BOOST_PP_BOOL(p##(138, s)), p, o, s)
+# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_C(BOOST_PP_BOOL(p##(139, s)), p, o, s)
+# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_C(BOOST_PP_BOOL(p##(140, s)), p, o, s)
+# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_C(BOOST_PP_BOOL(p##(141, s)), p, o, s)
+# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_C(BOOST_PP_BOOL(p##(142, s)), p, o, s)
+# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_C(BOOST_PP_BOOL(p##(143, s)), p, o, s)
+# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_C(BOOST_PP_BOOL(p##(144, s)), p, o, s)
+# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_C(BOOST_PP_BOOL(p##(145, s)), p, o, s)
+# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_C(BOOST_PP_BOOL(p##(146, s)), p, o, s)
+# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_C(BOOST_PP_BOOL(p##(147, s)), p, o, s)
+# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_C(BOOST_PP_BOOL(p##(148, s)), p, o, s)
+# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_C(BOOST_PP_BOOL(p##(149, s)), p, o, s)
+# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_C(BOOST_PP_BOOL(p##(150, s)), p, o, s)
+# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_C(BOOST_PP_BOOL(p##(151, s)), p, o, s)
+# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_C(BOOST_PP_BOOL(p##(152, s)), p, o, s)
+# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_C(BOOST_PP_BOOL(p##(153, s)), p, o, s)
+# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_C(BOOST_PP_BOOL(p##(154, s)), p, o, s)
+# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_C(BOOST_PP_BOOL(p##(155, s)), p, o, s)
+# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_C(BOOST_PP_BOOL(p##(156, s)), p, o, s)
+# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_C(BOOST_PP_BOOL(p##(157, s)), p, o, s)
+# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_C(BOOST_PP_BOOL(p##(158, s)), p, o, s)
+# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_C(BOOST_PP_BOOL(p##(159, s)), p, o, s)
+# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_C(BOOST_PP_BOOL(p##(160, s)), p, o, s)
+# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_C(BOOST_PP_BOOL(p##(161, s)), p, o, s)
+# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_C(BOOST_PP_BOOL(p##(162, s)), p, o, s)
+# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_C(BOOST_PP_BOOL(p##(163, s)), p, o, s)
+# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_C(BOOST_PP_BOOL(p##(164, s)), p, o, s)
+# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_C(BOOST_PP_BOOL(p##(165, s)), p, o, s)
+# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_C(BOOST_PP_BOOL(p##(166, s)), p, o, s)
+# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_C(BOOST_PP_BOOL(p##(167, s)), p, o, s)
+# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_C(BOOST_PP_BOOL(p##(168, s)), p, o, s)
+# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_C(BOOST_PP_BOOL(p##(169, s)), p, o, s)
+# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_C(BOOST_PP_BOOL(p##(170, s)), p, o, s)
+# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_C(BOOST_PP_BOOL(p##(171, s)), p, o, s)
+# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_C(BOOST_PP_BOOL(p##(172, s)), p, o, s)
+# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_C(BOOST_PP_BOOL(p##(173, s)), p, o, s)
+# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_C(BOOST_PP_BOOL(p##(174, s)), p, o, s)
+# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_C(BOOST_PP_BOOL(p##(175, s)), p, o, s)
+# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_C(BOOST_PP_BOOL(p##(176, s)), p, o, s)
+# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_C(BOOST_PP_BOOL(p##(177, s)), p, o, s)
+# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_C(BOOST_PP_BOOL(p##(178, s)), p, o, s)
+# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_C(BOOST_PP_BOOL(p##(179, s)), p, o, s)
+# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_C(BOOST_PP_BOOL(p##(180, s)), p, o, s)
+# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_C(BOOST_PP_BOOL(p##(181, s)), p, o, s)
+# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_C(BOOST_PP_BOOL(p##(182, s)), p, o, s)
+# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_C(BOOST_PP_BOOL(p##(183, s)), p, o, s)
+# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_C(BOOST_PP_BOOL(p##(184, s)), p, o, s)
+# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_C(BOOST_PP_BOOL(p##(185, s)), p, o, s)
+# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_C(BOOST_PP_BOOL(p##(186, s)), p, o, s)
+# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_C(BOOST_PP_BOOL(p##(187, s)), p, o, s)
+# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_C(BOOST_PP_BOOL(p##(188, s)), p, o, s)
+# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_C(BOOST_PP_BOOL(p##(189, s)), p, o, s)
+# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_C(BOOST_PP_BOOL(p##(190, s)), p, o, s)
+# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_C(BOOST_PP_BOOL(p##(191, s)), p, o, s)
+# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_C(BOOST_PP_BOOL(p##(192, s)), p, o, s)
+# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_C(BOOST_PP_BOOL(p##(193, s)), p, o, s)
+# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_C(BOOST_PP_BOOL(p##(194, s)), p, o, s)
+# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_C(BOOST_PP_BOOL(p##(195, s)), p, o, s)
+# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_C(BOOST_PP_BOOL(p##(196, s)), p, o, s)
+# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_C(BOOST_PP_BOOL(p##(197, s)), p, o, s)
+# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_C(BOOST_PP_BOOL(p##(198, s)), p, o, s)
+# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_C(BOOST_PP_BOOL(p##(199, s)), p, o, s)
+# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_C(BOOST_PP_BOOL(p##(200, s)), p, o, s)
+# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_C(BOOST_PP_BOOL(p##(201, s)), p, o, s)
+# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_C(BOOST_PP_BOOL(p##(202, s)), p, o, s)
+# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_C(BOOST_PP_BOOL(p##(203, s)), p, o, s)
+# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_C(BOOST_PP_BOOL(p##(204, s)), p, o, s)
+# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_C(BOOST_PP_BOOL(p##(205, s)), p, o, s)
+# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_C(BOOST_PP_BOOL(p##(206, s)), p, o, s)
+# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_C(BOOST_PP_BOOL(p##(207, s)), p, o, s)
+# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_C(BOOST_PP_BOOL(p##(208, s)), p, o, s)
+# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_C(BOOST_PP_BOOL(p##(209, s)), p, o, s)
+# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_C(BOOST_PP_BOOL(p##(210, s)), p, o, s)
+# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_C(BOOST_PP_BOOL(p##(211, s)), p, o, s)
+# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_C(BOOST_PP_BOOL(p##(212, s)), p, o, s)
+# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_C(BOOST_PP_BOOL(p##(213, s)), p, o, s)
+# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_C(BOOST_PP_BOOL(p##(214, s)), p, o, s)
+# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_C(BOOST_PP_BOOL(p##(215, s)), p, o, s)
+# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_C(BOOST_PP_BOOL(p##(216, s)), p, o, s)
+# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_C(BOOST_PP_BOOL(p##(217, s)), p, o, s)
+# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_C(BOOST_PP_BOOL(p##(218, s)), p, o, s)
+# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_C(BOOST_PP_BOOL(p##(219, s)), p, o, s)
+# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_C(BOOST_PP_BOOL(p##(220, s)), p, o, s)
+# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_C(BOOST_PP_BOOL(p##(221, s)), p, o, s)
+# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_C(BOOST_PP_BOOL(p##(222, s)), p, o, s)
+# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_C(BOOST_PP_BOOL(p##(223, s)), p, o, s)
+# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_C(BOOST_PP_BOOL(p##(224, s)), p, o, s)
+# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_C(BOOST_PP_BOOL(p##(225, s)), p, o, s)
+# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_C(BOOST_PP_BOOL(p##(226, s)), p, o, s)
+# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_C(BOOST_PP_BOOL(p##(227, s)), p, o, s)
+# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_C(BOOST_PP_BOOL(p##(228, s)), p, o, s)
+# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_C(BOOST_PP_BOOL(p##(229, s)), p, o, s)
+# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_C(BOOST_PP_BOOL(p##(230, s)), p, o, s)
+# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_C(BOOST_PP_BOOL(p##(231, s)), p, o, s)
+# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_C(BOOST_PP_BOOL(p##(232, s)), p, o, s)
+# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_C(BOOST_PP_BOOL(p##(233, s)), p, o, s)
+# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_C(BOOST_PP_BOOL(p##(234, s)), p, o, s)
+# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_C(BOOST_PP_BOOL(p##(235, s)), p, o, s)
+# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_C(BOOST_PP_BOOL(p##(236, s)), p, o, s)
+# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_C(BOOST_PP_BOOL(p##(237, s)), p, o, s)
+# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_C(BOOST_PP_BOOL(p##(238, s)), p, o, s)
+# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_C(BOOST_PP_BOOL(p##(239, s)), p, o, s)
+# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_C(BOOST_PP_BOOL(p##(240, s)), p, o, s)
+# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_C(BOOST_PP_BOOL(p##(241, s)), p, o, s)
+# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_C(BOOST_PP_BOOL(p##(242, s)), p, o, s)
+# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_C(BOOST_PP_BOOL(p##(243, s)), p, o, s)
+# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_C(BOOST_PP_BOOL(p##(244, s)), p, o, s)
+# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_C(BOOST_PP_BOOL(p##(245, s)), p, o, s)
+# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_C(BOOST_PP_BOOL(p##(246, s)), p, o, s)
+# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_C(BOOST_PP_BOOL(p##(247, s)), p, o, s)
+# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_C(BOOST_PP_BOOL(p##(248, s)), p, o, s)
+# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_C(BOOST_PP_BOOL(p##(249, s)), p, o, s)
+# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_C(BOOST_PP_BOOL(p##(250, s)), p, o, s)
+# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_C(BOOST_PP_BOOL(p##(251, s)), p, o, s)
+# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_C(BOOST_PP_BOOL(p##(252, s)), p, o, s)
+# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_C(BOOST_PP_BOOL(p##(253, s)), p, o, s)
+# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_C(BOOST_PP_BOOL(p##(254, s)), p, o, s)
+# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_C(BOOST_PP_BOOL(p##(255, s)), p, o, s)
+# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_C(BOOST_PP_BOOL(p##(256, s)), p, o, s)
+# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_C(BOOST_PP_BOOL(p##(257, s)), p, o, s)
+#
+# define BOOST_PP_WHILE_1_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_2, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(2, s))
+# define BOOST_PP_WHILE_2_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_3, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(3, s))
+# define BOOST_PP_WHILE_3_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_4, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(4, s))
+# define BOOST_PP_WHILE_4_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_5, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(5, s))
+# define BOOST_PP_WHILE_5_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_6, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(6, s))
+# define BOOST_PP_WHILE_6_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_7, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(7, s))
+# define BOOST_PP_WHILE_7_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_8, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(8, s))
+# define BOOST_PP_WHILE_8_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_9, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(9, s))
+# define BOOST_PP_WHILE_9_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_10, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(10, s))
+# define BOOST_PP_WHILE_10_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_11, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(11, s))
+# define BOOST_PP_WHILE_11_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_12, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(12, s))
+# define BOOST_PP_WHILE_12_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_13, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(13, s))
+# define BOOST_PP_WHILE_13_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_14, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(14, s))
+# define BOOST_PP_WHILE_14_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_15, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(15, s))
+# define BOOST_PP_WHILE_15_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_16, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(16, s))
+# define BOOST_PP_WHILE_16_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_17, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(17, s))
+# define BOOST_PP_WHILE_17_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_18, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(18, s))
+# define BOOST_PP_WHILE_18_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_19, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(19, s))
+# define BOOST_PP_WHILE_19_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_20, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(20, s))
+# define BOOST_PP_WHILE_20_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_21, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(21, s))
+# define BOOST_PP_WHILE_21_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_22, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(22, s))
+# define BOOST_PP_WHILE_22_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_23, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(23, s))
+# define BOOST_PP_WHILE_23_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_24, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(24, s))
+# define BOOST_PP_WHILE_24_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_25, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(25, s))
+# define BOOST_PP_WHILE_25_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_26, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(26, s))
+# define BOOST_PP_WHILE_26_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_27, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(27, s))
+# define BOOST_PP_WHILE_27_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_28, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(28, s))
+# define BOOST_PP_WHILE_28_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_29, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(29, s))
+# define BOOST_PP_WHILE_29_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_30, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(30, s))
+# define BOOST_PP_WHILE_30_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_31, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(31, s))
+# define BOOST_PP_WHILE_31_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_32, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(32, s))
+# define BOOST_PP_WHILE_32_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_33, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(33, s))
+# define BOOST_PP_WHILE_33_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_34, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(34, s))
+# define BOOST_PP_WHILE_34_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_35, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(35, s))
+# define BOOST_PP_WHILE_35_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_36, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(36, s))
+# define BOOST_PP_WHILE_36_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_37, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(37, s))
+# define BOOST_PP_WHILE_37_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_38, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(38, s))
+# define BOOST_PP_WHILE_38_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_39, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(39, s))
+# define BOOST_PP_WHILE_39_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_40, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(40, s))
+# define BOOST_PP_WHILE_40_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_41, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(41, s))
+# define BOOST_PP_WHILE_41_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_42, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(42, s))
+# define BOOST_PP_WHILE_42_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_43, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(43, s))
+# define BOOST_PP_WHILE_43_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_44, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(44, s))
+# define BOOST_PP_WHILE_44_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_45, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(45, s))
+# define BOOST_PP_WHILE_45_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_46, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(46, s))
+# define BOOST_PP_WHILE_46_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_47, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(47, s))
+# define BOOST_PP_WHILE_47_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_48, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(48, s))
+# define BOOST_PP_WHILE_48_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_49, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(49, s))
+# define BOOST_PP_WHILE_49_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_50, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(50, s))
+# define BOOST_PP_WHILE_50_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_51, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(51, s))
+# define BOOST_PP_WHILE_51_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_52, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(52, s))
+# define BOOST_PP_WHILE_52_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_53, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(53, s))
+# define BOOST_PP_WHILE_53_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_54, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(54, s))
+# define BOOST_PP_WHILE_54_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_55, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(55, s))
+# define BOOST_PP_WHILE_55_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_56, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(56, s))
+# define BOOST_PP_WHILE_56_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_57, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(57, s))
+# define BOOST_PP_WHILE_57_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_58, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(58, s))
+# define BOOST_PP_WHILE_58_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_59, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(59, s))
+# define BOOST_PP_WHILE_59_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_60, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(60, s))
+# define BOOST_PP_WHILE_60_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_61, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(61, s))
+# define BOOST_PP_WHILE_61_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_62, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(62, s))
+# define BOOST_PP_WHILE_62_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_63, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(63, s))
+# define BOOST_PP_WHILE_63_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_64, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(64, s))
+# define BOOST_PP_WHILE_64_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_65, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(65, s))
+# define BOOST_PP_WHILE_65_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_66, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(66, s))
+# define BOOST_PP_WHILE_66_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_67, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(67, s))
+# define BOOST_PP_WHILE_67_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_68, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(68, s))
+# define BOOST_PP_WHILE_68_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_69, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(69, s))
+# define BOOST_PP_WHILE_69_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_70, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(70, s))
+# define BOOST_PP_WHILE_70_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_71, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(71, s))
+# define BOOST_PP_WHILE_71_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_72, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(72, s))
+# define BOOST_PP_WHILE_72_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_73, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(73, s))
+# define BOOST_PP_WHILE_73_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_74, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(74, s))
+# define BOOST_PP_WHILE_74_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_75, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(75, s))
+# define BOOST_PP_WHILE_75_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_76, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(76, s))
+# define BOOST_PP_WHILE_76_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_77, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(77, s))
+# define BOOST_PP_WHILE_77_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_78, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(78, s))
+# define BOOST_PP_WHILE_78_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_79, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(79, s))
+# define BOOST_PP_WHILE_79_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_80, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(80, s))
+# define BOOST_PP_WHILE_80_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_81, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(81, s))
+# define BOOST_PP_WHILE_81_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_82, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(82, s))
+# define BOOST_PP_WHILE_82_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_83, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(83, s))
+# define BOOST_PP_WHILE_83_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_84, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(84, s))
+# define BOOST_PP_WHILE_84_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_85, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(85, s))
+# define BOOST_PP_WHILE_85_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_86, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(86, s))
+# define BOOST_PP_WHILE_86_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_87, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(87, s))
+# define BOOST_PP_WHILE_87_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_88, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(88, s))
+# define BOOST_PP_WHILE_88_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_89, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(89, s))
+# define BOOST_PP_WHILE_89_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_90, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(90, s))
+# define BOOST_PP_WHILE_90_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_91, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(91, s))
+# define BOOST_PP_WHILE_91_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_92, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(92, s))
+# define BOOST_PP_WHILE_92_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_93, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(93, s))
+# define BOOST_PP_WHILE_93_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_94, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(94, s))
+# define BOOST_PP_WHILE_94_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_95, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(95, s))
+# define BOOST_PP_WHILE_95_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_96, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(96, s))
+# define BOOST_PP_WHILE_96_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_97, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(97, s))
+# define BOOST_PP_WHILE_97_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_98, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(98, s))
+# define BOOST_PP_WHILE_98_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_99, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(99, s))
+# define BOOST_PP_WHILE_99_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_100, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(100, s))
+# define BOOST_PP_WHILE_100_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_101, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(101, s))
+# define BOOST_PP_WHILE_101_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_102, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(102, s))
+# define BOOST_PP_WHILE_102_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_103, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(103, s))
+# define BOOST_PP_WHILE_103_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_104, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(104, s))
+# define BOOST_PP_WHILE_104_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_105, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(105, s))
+# define BOOST_PP_WHILE_105_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_106, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(106, s))
+# define BOOST_PP_WHILE_106_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_107, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(107, s))
+# define BOOST_PP_WHILE_107_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_108, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(108, s))
+# define BOOST_PP_WHILE_108_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_109, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(109, s))
+# define BOOST_PP_WHILE_109_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_110, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(110, s))
+# define BOOST_PP_WHILE_110_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_111, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(111, s))
+# define BOOST_PP_WHILE_111_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_112, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(112, s))
+# define BOOST_PP_WHILE_112_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_113, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(113, s))
+# define BOOST_PP_WHILE_113_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_114, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(114, s))
+# define BOOST_PP_WHILE_114_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_115, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(115, s))
+# define BOOST_PP_WHILE_115_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_116, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(116, s))
+# define BOOST_PP_WHILE_116_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_117, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(117, s))
+# define BOOST_PP_WHILE_117_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_118, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(118, s))
+# define BOOST_PP_WHILE_118_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_119, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(119, s))
+# define BOOST_PP_WHILE_119_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_120, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(120, s))
+# define BOOST_PP_WHILE_120_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_121, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(121, s))
+# define BOOST_PP_WHILE_121_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_122, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(122, s))
+# define BOOST_PP_WHILE_122_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_123, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(123, s))
+# define BOOST_PP_WHILE_123_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_124, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(124, s))
+# define BOOST_PP_WHILE_124_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_125, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(125, s))
+# define BOOST_PP_WHILE_125_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_126, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(126, s))
+# define BOOST_PP_WHILE_126_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_127, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(127, s))
+# define BOOST_PP_WHILE_127_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_128, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(128, s))
+# define BOOST_PP_WHILE_128_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_129, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(129, s))
+# define BOOST_PP_WHILE_129_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_130, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(130, s))
+# define BOOST_PP_WHILE_130_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_131, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(131, s))
+# define BOOST_PP_WHILE_131_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_132, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(132, s))
+# define BOOST_PP_WHILE_132_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_133, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(133, s))
+# define BOOST_PP_WHILE_133_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_134, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(134, s))
+# define BOOST_PP_WHILE_134_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_135, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(135, s))
+# define BOOST_PP_WHILE_135_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_136, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(136, s))
+# define BOOST_PP_WHILE_136_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_137, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(137, s))
+# define BOOST_PP_WHILE_137_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_138, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(138, s))
+# define BOOST_PP_WHILE_138_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_139, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(139, s))
+# define BOOST_PP_WHILE_139_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_140, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(140, s))
+# define BOOST_PP_WHILE_140_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_141, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(141, s))
+# define BOOST_PP_WHILE_141_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_142, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(142, s))
+# define BOOST_PP_WHILE_142_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_143, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(143, s))
+# define BOOST_PP_WHILE_143_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_144, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(144, s))
+# define BOOST_PP_WHILE_144_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_145, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(145, s))
+# define BOOST_PP_WHILE_145_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_146, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(146, s))
+# define BOOST_PP_WHILE_146_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_147, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(147, s))
+# define BOOST_PP_WHILE_147_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_148, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(148, s))
+# define BOOST_PP_WHILE_148_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_149, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(149, s))
+# define BOOST_PP_WHILE_149_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_150, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(150, s))
+# define BOOST_PP_WHILE_150_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_151, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(151, s))
+# define BOOST_PP_WHILE_151_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_152, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(152, s))
+# define BOOST_PP_WHILE_152_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_153, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(153, s))
+# define BOOST_PP_WHILE_153_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_154, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(154, s))
+# define BOOST_PP_WHILE_154_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_155, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(155, s))
+# define BOOST_PP_WHILE_155_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_156, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(156, s))
+# define BOOST_PP_WHILE_156_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_157, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(157, s))
+# define BOOST_PP_WHILE_157_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_158, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(158, s))
+# define BOOST_PP_WHILE_158_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_159, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(159, s))
+# define BOOST_PP_WHILE_159_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_160, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(160, s))
+# define BOOST_PP_WHILE_160_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_161, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(161, s))
+# define BOOST_PP_WHILE_161_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_162, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(162, s))
+# define BOOST_PP_WHILE_162_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_163, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(163, s))
+# define BOOST_PP_WHILE_163_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_164, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(164, s))
+# define BOOST_PP_WHILE_164_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_165, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(165, s))
+# define BOOST_PP_WHILE_165_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_166, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(166, s))
+# define BOOST_PP_WHILE_166_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_167, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(167, s))
+# define BOOST_PP_WHILE_167_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_168, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(168, s))
+# define BOOST_PP_WHILE_168_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_169, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(169, s))
+# define BOOST_PP_WHILE_169_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_170, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(170, s))
+# define BOOST_PP_WHILE_170_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_171, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(171, s))
+# define BOOST_PP_WHILE_171_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_172, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(172, s))
+# define BOOST_PP_WHILE_172_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_173, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(173, s))
+# define BOOST_PP_WHILE_173_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_174, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(174, s))
+# define BOOST_PP_WHILE_174_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_175, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(175, s))
+# define BOOST_PP_WHILE_175_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_176, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(176, s))
+# define BOOST_PP_WHILE_176_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_177, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(177, s))
+# define BOOST_PP_WHILE_177_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_178, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(178, s))
+# define BOOST_PP_WHILE_178_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_179, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(179, s))
+# define BOOST_PP_WHILE_179_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_180, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(180, s))
+# define BOOST_PP_WHILE_180_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_181, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(181, s))
+# define BOOST_PP_WHILE_181_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_182, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(182, s))
+# define BOOST_PP_WHILE_182_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_183, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(183, s))
+# define BOOST_PP_WHILE_183_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_184, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(184, s))
+# define BOOST_PP_WHILE_184_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_185, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(185, s))
+# define BOOST_PP_WHILE_185_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_186, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(186, s))
+# define BOOST_PP_WHILE_186_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_187, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(187, s))
+# define BOOST_PP_WHILE_187_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_188, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(188, s))
+# define BOOST_PP_WHILE_188_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_189, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(189, s))
+# define BOOST_PP_WHILE_189_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_190, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(190, s))
+# define BOOST_PP_WHILE_190_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_191, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(191, s))
+# define BOOST_PP_WHILE_191_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_192, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(192, s))
+# define BOOST_PP_WHILE_192_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_193, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(193, s))
+# define BOOST_PP_WHILE_193_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_194, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(194, s))
+# define BOOST_PP_WHILE_194_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_195, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(195, s))
+# define BOOST_PP_WHILE_195_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_196, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(196, s))
+# define BOOST_PP_WHILE_196_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_197, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(197, s))
+# define BOOST_PP_WHILE_197_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_198, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(198, s))
+# define BOOST_PP_WHILE_198_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_199, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(199, s))
+# define BOOST_PP_WHILE_199_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_200, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(200, s))
+# define BOOST_PP_WHILE_200_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_201, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(201, s))
+# define BOOST_PP_WHILE_201_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_202, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(202, s))
+# define BOOST_PP_WHILE_202_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_203, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(203, s))
+# define BOOST_PP_WHILE_203_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_204, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(204, s))
+# define BOOST_PP_WHILE_204_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_205, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(205, s))
+# define BOOST_PP_WHILE_205_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_206, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(206, s))
+# define BOOST_PP_WHILE_206_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_207, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(207, s))
+# define BOOST_PP_WHILE_207_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_208, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(208, s))
+# define BOOST_PP_WHILE_208_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_209, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(209, s))
+# define BOOST_PP_WHILE_209_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_210, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(210, s))
+# define BOOST_PP_WHILE_210_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_211, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(211, s))
+# define BOOST_PP_WHILE_211_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_212, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(212, s))
+# define BOOST_PP_WHILE_212_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_213, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(213, s))
+# define BOOST_PP_WHILE_213_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_214, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(214, s))
+# define BOOST_PP_WHILE_214_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_215, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(215, s))
+# define BOOST_PP_WHILE_215_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_216, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(216, s))
+# define BOOST_PP_WHILE_216_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_217, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(217, s))
+# define BOOST_PP_WHILE_217_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_218, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(218, s))
+# define BOOST_PP_WHILE_218_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_219, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(219, s))
+# define BOOST_PP_WHILE_219_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_220, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(220, s))
+# define BOOST_PP_WHILE_220_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_221, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(221, s))
+# define BOOST_PP_WHILE_221_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_222, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(222, s))
+# define BOOST_PP_WHILE_222_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_223, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(223, s))
+# define BOOST_PP_WHILE_223_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_224, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(224, s))
+# define BOOST_PP_WHILE_224_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_225, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(225, s))
+# define BOOST_PP_WHILE_225_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_226, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(226, s))
+# define BOOST_PP_WHILE_226_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_227, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(227, s))
+# define BOOST_PP_WHILE_227_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_228, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(228, s))
+# define BOOST_PP_WHILE_228_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_229, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(229, s))
+# define BOOST_PP_WHILE_229_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_230, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(230, s))
+# define BOOST_PP_WHILE_230_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_231, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(231, s))
+# define BOOST_PP_WHILE_231_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_232, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(232, s))
+# define BOOST_PP_WHILE_232_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_233, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(233, s))
+# define BOOST_PP_WHILE_233_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_234, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(234, s))
+# define BOOST_PP_WHILE_234_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_235, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(235, s))
+# define BOOST_PP_WHILE_235_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_236, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(236, s))
+# define BOOST_PP_WHILE_236_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_237, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(237, s))
+# define BOOST_PP_WHILE_237_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_238, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(238, s))
+# define BOOST_PP_WHILE_238_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_239, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(239, s))
+# define BOOST_PP_WHILE_239_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_240, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(240, s))
+# define BOOST_PP_WHILE_240_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_241, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(241, s))
+# define BOOST_PP_WHILE_241_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_242, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(242, s))
+# define BOOST_PP_WHILE_242_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_243, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(243, s))
+# define BOOST_PP_WHILE_243_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_244, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(244, s))
+# define BOOST_PP_WHILE_244_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_245, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(245, s))
+# define BOOST_PP_WHILE_245_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_246, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(246, s))
+# define BOOST_PP_WHILE_246_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_247, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(247, s))
+# define BOOST_PP_WHILE_247_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_248, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(248, s))
+# define BOOST_PP_WHILE_248_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_249, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(249, s))
+# define BOOST_PP_WHILE_249_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_250, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(250, s))
+# define BOOST_PP_WHILE_250_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_251, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(251, s))
+# define BOOST_PP_WHILE_251_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_252, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(252, s))
+# define BOOST_PP_WHILE_252_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_253, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(253, s))
+# define BOOST_PP_WHILE_253_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_254, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(254, s))
+# define BOOST_PP_WHILE_254_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_255, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(255, s))
+# define BOOST_PP_WHILE_255_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_256, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(256, s))
+# define BOOST_PP_WHILE_256_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_257, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(257, s))
+#
+#
+# endif
index ea10ecccd89fe5457dbfd0d3f9789afc00feac3b..ce28eb22e1de600371f59dccdaf0b6ec84f8f212 100644 (file)
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP\r
-# define BOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP\r
-#\r
-# include <boost/preprocessor/control/if.hpp>\r
-# include <boost/preprocessor/tuple/eat.hpp>\r
-#\r
-# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_I(p, o, s)\r
-# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_I(p, o, s)\r
-# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_I(p, o, s)\r
-# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_I(p, o, s)\r
-# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_I(p, o, s)\r
-# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_I(p, o, s)\r
-# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_I(p, o, s)\r
-# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_I(p, o, s)\r
-# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_I(p, o, s)\r
-# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_I(p, o, s)\r
-# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_I(p, o, s)\r
-# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_I(p, o, s)\r
-# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_I(p, o, s)\r
-# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_I(p, o, s)\r
-# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_I(p, o, s)\r
-# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_I(p, o, s)\r
-# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_I(p, o, s)\r
-# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_I(p, o, s)\r
-# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_I(p, o, s)\r
-# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_I(p, o, s)\r
-# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_I(p, o, s)\r
-# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_I(p, o, s)\r
-# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_I(p, o, s)\r
-# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_I(p, o, s)\r
-# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_I(p, o, s)\r
-# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_I(p, o, s)\r
-# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_I(p, o, s)\r
-# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_I(p, o, s)\r
-# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_I(p, o, s)\r
-# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_I(p, o, s)\r
-# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_I(p, o, s)\r
-# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_I(p, o, s)\r
-# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_I(p, o, s)\r
-# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_I(p, o, s)\r
-# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_I(p, o, s)\r
-# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_I(p, o, s)\r
-# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_I(p, o, s)\r
-# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_I(p, o, s)\r
-# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_I(p, o, s)\r
-# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_I(p, o, s)\r
-# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_I(p, o, s)\r
-# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_I(p, o, s)\r
-# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_I(p, o, s)\r
-# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_I(p, o, s)\r
-# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_I(p, o, s)\r
-# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_I(p, o, s)\r
-# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_I(p, o, s)\r
-# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_I(p, o, s)\r
-# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_I(p, o, s)\r
-# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_I(p, o, s)\r
-# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_I(p, o, s)\r
-# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_I(p, o, s)\r
-# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_I(p, o, s)\r
-# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_I(p, o, s)\r
-# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_I(p, o, s)\r
-# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_I(p, o, s)\r
-# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_I(p, o, s)\r
-# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_I(p, o, s)\r
-# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_I(p, o, s)\r
-# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_I(p, o, s)\r
-# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_I(p, o, s)\r
-# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_I(p, o, s)\r
-# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_I(p, o, s)\r
-# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_I(p, o, s)\r
-# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_I(p, o, s)\r
-# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_I(p, o, s)\r
-# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_I(p, o, s)\r
-# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_I(p, o, s)\r
-# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_I(p, o, s)\r
-# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_I(p, o, s)\r
-# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_I(p, o, s)\r
-# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_I(p, o, s)\r
-# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_I(p, o, s)\r
-# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_I(p, o, s)\r
-# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_I(p, o, s)\r
-# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_I(p, o, s)\r
-# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_I(p, o, s)\r
-# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_I(p, o, s)\r
-# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_I(p, o, s)\r
-# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_I(p, o, s)\r
-# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_I(p, o, s)\r
-# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_I(p, o, s)\r
-# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_I(p, o, s)\r
-# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_I(p, o, s)\r
-# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_I(p, o, s)\r
-# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_I(p, o, s)\r
-# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_I(p, o, s)\r
-# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_I(p, o, s)\r
-# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_I(p, o, s)\r
-# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_I(p, o, s)\r
-# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_I(p, o, s)\r
-# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_I(p, o, s)\r
-# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_I(p, o, s)\r
-# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_I(p, o, s)\r
-# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_I(p, o, s)\r
-# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_I(p, o, s)\r
-# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_I(p, o, s)\r
-# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_I(p, o, s)\r
-# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_I(p, o, s)\r
-# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_I(p, o, s)\r
-# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_I(p, o, s)\r
-# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_I(p, o, s)\r
-# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_I(p, o, s)\r
-# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_I(p, o, s)\r
-# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_I(p, o, s)\r
-# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_I(p, o, s)\r
-# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_I(p, o, s)\r
-# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_I(p, o, s)\r
-# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_I(p, o, s)\r
-# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_I(p, o, s)\r
-# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_I(p, o, s)\r
-# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_I(p, o, s)\r
-# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_I(p, o, s)\r
-# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_I(p, o, s)\r
-# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_I(p, o, s)\r
-# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_I(p, o, s)\r
-# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_I(p, o, s)\r
-# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_I(p, o, s)\r
-# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_I(p, o, s)\r
-# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_I(p, o, s)\r
-# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_I(p, o, s)\r
-# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_I(p, o, s)\r
-# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_I(p, o, s)\r
-# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_I(p, o, s)\r
-# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_I(p, o, s)\r
-# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_I(p, o, s)\r
-# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_I(p, o, s)\r
-# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_I(p, o, s)\r
-# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_I(p, o, s)\r
-# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_I(p, o, s)\r
-# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_I(p, o, s)\r
-# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_I(p, o, s)\r
-# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_I(p, o, s)\r
-# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_I(p, o, s)\r
-# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_I(p, o, s)\r
-# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_I(p, o, s)\r
-# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_I(p, o, s)\r
-# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_I(p, o, s)\r
-# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_I(p, o, s)\r
-# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_I(p, o, s)\r
-# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_I(p, o, s)\r
-# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_I(p, o, s)\r
-# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_I(p, o, s)\r
-# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_I(p, o, s)\r
-# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_I(p, o, s)\r
-# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_I(p, o, s)\r
-# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_I(p, o, s)\r
-# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_I(p, o, s)\r
-# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_I(p, o, s)\r
-# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_I(p, o, s)\r
-# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_I(p, o, s)\r
-# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_I(p, o, s)\r
-# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_I(p, o, s)\r
-# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_I(p, o, s)\r
-# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_I(p, o, s)\r
-# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_I(p, o, s)\r
-# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_I(p, o, s)\r
-# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_I(p, o, s)\r
-# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_I(p, o, s)\r
-# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_I(p, o, s)\r
-# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_I(p, o, s)\r
-# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_I(p, o, s)\r
-# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_I(p, o, s)\r
-# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_I(p, o, s)\r
-# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_I(p, o, s)\r
-# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_I(p, o, s)\r
-# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_I(p, o, s)\r
-# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_I(p, o, s)\r
-# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_I(p, o, s)\r
-# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_I(p, o, s)\r
-# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_I(p, o, s)\r
-# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_I(p, o, s)\r
-# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_I(p, o, s)\r
-# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_I(p, o, s)\r
-# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_I(p, o, s)\r
-# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_I(p, o, s)\r
-# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_I(p, o, s)\r
-# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_I(p, o, s)\r
-# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_I(p, o, s)\r
-# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_I(p, o, s)\r
-# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_I(p, o, s)\r
-# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_I(p, o, s)\r
-# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_I(p, o, s)\r
-# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_I(p, o, s)\r
-# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_I(p, o, s)\r
-# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_I(p, o, s)\r
-# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_I(p, o, s)\r
-# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_I(p, o, s)\r
-# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_I(p, o, s)\r
-# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_I(p, o, s)\r
-# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_I(p, o, s)\r
-# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_I(p, o, s)\r
-# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_I(p, o, s)\r
-# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_I(p, o, s)\r
-# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_I(p, o, s)\r
-# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_I(p, o, s)\r
-# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_I(p, o, s)\r
-# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_I(p, o, s)\r
-# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_I(p, o, s)\r
-# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_I(p, o, s)\r
-# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_I(p, o, s)\r
-# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_I(p, o, s)\r
-# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_I(p, o, s)\r
-# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_I(p, o, s)\r
-# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_I(p, o, s)\r
-# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_I(p, o, s)\r
-# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_I(p, o, s)\r
-# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_I(p, o, s)\r
-# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_I(p, o, s)\r
-# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_I(p, o, s)\r
-# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_I(p, o, s)\r
-# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_I(p, o, s)\r
-# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_I(p, o, s)\r
-# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_I(p, o, s)\r
-# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_I(p, o, s)\r
-# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_I(p, o, s)\r
-# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_I(p, o, s)\r
-# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_I(p, o, s)\r
-# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_I(p, o, s)\r
-# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_I(p, o, s)\r
-# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_I(p, o, s)\r
-# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_I(p, o, s)\r
-# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_I(p, o, s)\r
-# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_I(p, o, s)\r
-# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_I(p, o, s)\r
-# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_I(p, o, s)\r
-# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_I(p, o, s)\r
-# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_I(p, o, s)\r
-# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_I(p, o, s)\r
-# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_I(p, o, s)\r
-# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_I(p, o, s)\r
-# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_I(p, o, s)\r
-# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_I(p, o, s)\r
-# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_I(p, o, s)\r
-# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_I(p, o, s)\r
-# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_I(p, o, s)\r
-# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_I(p, o, s)\r
-# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_I(p, o, s)\r
-# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_I(p, o, s)\r
-# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_I(p, o, s)\r
-# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_I(p, o, s)\r
-# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_I(p, o, s)\r
-# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_I(p, o, s)\r
-# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_I(p, o, s)\r
-# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_I(p, o, s)\r
-# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_I(p, o, s)\r
-# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_I(p, o, s)\r
-# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_I(p, o, s)\r
-# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_I(p, o, s)\r
-# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_I(p, o, s)\r
-# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_I(p, o, s)\r
-# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_I(p, o, s)\r
-# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_I(p, o, s)\r
-# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_I(p, o, s)\r
-# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_I(p, o, s)\r
-# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_I(p, o, s)\r
-#\r
-# define BOOST_PP_WHILE_1_I(p, o, s) BOOST_PP_IF(p(2, s), BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, o(2, s))\r
-# define BOOST_PP_WHILE_2_I(p, o, s) BOOST_PP_IF(p(3, s), BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, o(3, s))\r
-# define BOOST_PP_WHILE_3_I(p, o, s) BOOST_PP_IF(p(4, s), BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, o(4, s))\r
-# define BOOST_PP_WHILE_4_I(p, o, s) BOOST_PP_IF(p(5, s), BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, o(5, s))\r
-# define BOOST_PP_WHILE_5_I(p, o, s) BOOST_PP_IF(p(6, s), BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, o(6, s))\r
-# define BOOST_PP_WHILE_6_I(p, o, s) BOOST_PP_IF(p(7, s), BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, o(7, s))\r
-# define BOOST_PP_WHILE_7_I(p, o, s) BOOST_PP_IF(p(8, s), BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, o(8, s))\r
-# define BOOST_PP_WHILE_8_I(p, o, s) BOOST_PP_IF(p(9, s), BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, o(9, s))\r
-# define BOOST_PP_WHILE_9_I(p, o, s) BOOST_PP_IF(p(10, s), BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, o(10, s))\r
-# define BOOST_PP_WHILE_10_I(p, o, s) BOOST_PP_IF(p(11, s), BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, o(11, s))\r
-# define BOOST_PP_WHILE_11_I(p, o, s) BOOST_PP_IF(p(12, s), BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, o(12, s))\r
-# define BOOST_PP_WHILE_12_I(p, o, s) BOOST_PP_IF(p(13, s), BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, o(13, s))\r
-# define BOOST_PP_WHILE_13_I(p, o, s) BOOST_PP_IF(p(14, s), BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, o(14, s))\r
-# define BOOST_PP_WHILE_14_I(p, o, s) BOOST_PP_IF(p(15, s), BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, o(15, s))\r
-# define BOOST_PP_WHILE_15_I(p, o, s) BOOST_PP_IF(p(16, s), BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, o(16, s))\r
-# define BOOST_PP_WHILE_16_I(p, o, s) BOOST_PP_IF(p(17, s), BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, o(17, s))\r
-# define BOOST_PP_WHILE_17_I(p, o, s) BOOST_PP_IF(p(18, s), BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, o(18, s))\r
-# define BOOST_PP_WHILE_18_I(p, o, s) BOOST_PP_IF(p(19, s), BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, o(19, s))\r
-# define BOOST_PP_WHILE_19_I(p, o, s) BOOST_PP_IF(p(20, s), BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, o(20, s))\r
-# define BOOST_PP_WHILE_20_I(p, o, s) BOOST_PP_IF(p(21, s), BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, o(21, s))\r
-# define BOOST_PP_WHILE_21_I(p, o, s) BOOST_PP_IF(p(22, s), BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, o(22, s))\r
-# define BOOST_PP_WHILE_22_I(p, o, s) BOOST_PP_IF(p(23, s), BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, o(23, s))\r
-# define BOOST_PP_WHILE_23_I(p, o, s) BOOST_PP_IF(p(24, s), BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, o(24, s))\r
-# define BOOST_PP_WHILE_24_I(p, o, s) BOOST_PP_IF(p(25, s), BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, o(25, s))\r
-# define BOOST_PP_WHILE_25_I(p, o, s) BOOST_PP_IF(p(26, s), BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, o(26, s))\r
-# define BOOST_PP_WHILE_26_I(p, o, s) BOOST_PP_IF(p(27, s), BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, o(27, s))\r
-# define BOOST_PP_WHILE_27_I(p, o, s) BOOST_PP_IF(p(28, s), BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, o(28, s))\r
-# define BOOST_PP_WHILE_28_I(p, o, s) BOOST_PP_IF(p(29, s), BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, o(29, s))\r
-# define BOOST_PP_WHILE_29_I(p, o, s) BOOST_PP_IF(p(30, s), BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, o(30, s))\r
-# define BOOST_PP_WHILE_30_I(p, o, s) BOOST_PP_IF(p(31, s), BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, o(31, s))\r
-# define BOOST_PP_WHILE_31_I(p, o, s) BOOST_PP_IF(p(32, s), BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, o(32, s))\r
-# define BOOST_PP_WHILE_32_I(p, o, s) BOOST_PP_IF(p(33, s), BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, o(33, s))\r
-# define BOOST_PP_WHILE_33_I(p, o, s) BOOST_PP_IF(p(34, s), BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, o(34, s))\r
-# define BOOST_PP_WHILE_34_I(p, o, s) BOOST_PP_IF(p(35, s), BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, o(35, s))\r
-# define BOOST_PP_WHILE_35_I(p, o, s) BOOST_PP_IF(p(36, s), BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, o(36, s))\r
-# define BOOST_PP_WHILE_36_I(p, o, s) BOOST_PP_IF(p(37, s), BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, o(37, s))\r
-# define BOOST_PP_WHILE_37_I(p, o, s) BOOST_PP_IF(p(38, s), BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, o(38, s))\r
-# define BOOST_PP_WHILE_38_I(p, o, s) BOOST_PP_IF(p(39, s), BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, o(39, s))\r
-# define BOOST_PP_WHILE_39_I(p, o, s) BOOST_PP_IF(p(40, s), BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, o(40, s))\r
-# define BOOST_PP_WHILE_40_I(p, o, s) BOOST_PP_IF(p(41, s), BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, o(41, s))\r
-# define BOOST_PP_WHILE_41_I(p, o, s) BOOST_PP_IF(p(42, s), BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, o(42, s))\r
-# define BOOST_PP_WHILE_42_I(p, o, s) BOOST_PP_IF(p(43, s), BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, o(43, s))\r
-# define BOOST_PP_WHILE_43_I(p, o, s) BOOST_PP_IF(p(44, s), BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, o(44, s))\r
-# define BOOST_PP_WHILE_44_I(p, o, s) BOOST_PP_IF(p(45, s), BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, o(45, s))\r
-# define BOOST_PP_WHILE_45_I(p, o, s) BOOST_PP_IF(p(46, s), BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, o(46, s))\r
-# define BOOST_PP_WHILE_46_I(p, o, s) BOOST_PP_IF(p(47, s), BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, o(47, s))\r
-# define BOOST_PP_WHILE_47_I(p, o, s) BOOST_PP_IF(p(48, s), BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, o(48, s))\r
-# define BOOST_PP_WHILE_48_I(p, o, s) BOOST_PP_IF(p(49, s), BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, o(49, s))\r
-# define BOOST_PP_WHILE_49_I(p, o, s) BOOST_PP_IF(p(50, s), BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, o(50, s))\r
-# define BOOST_PP_WHILE_50_I(p, o, s) BOOST_PP_IF(p(51, s), BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, o(51, s))\r
-# define BOOST_PP_WHILE_51_I(p, o, s) BOOST_PP_IF(p(52, s), BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, o(52, s))\r
-# define BOOST_PP_WHILE_52_I(p, o, s) BOOST_PP_IF(p(53, s), BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, o(53, s))\r
-# define BOOST_PP_WHILE_53_I(p, o, s) BOOST_PP_IF(p(54, s), BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, o(54, s))\r
-# define BOOST_PP_WHILE_54_I(p, o, s) BOOST_PP_IF(p(55, s), BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, o(55, s))\r
-# define BOOST_PP_WHILE_55_I(p, o, s) BOOST_PP_IF(p(56, s), BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, o(56, s))\r
-# define BOOST_PP_WHILE_56_I(p, o, s) BOOST_PP_IF(p(57, s), BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, o(57, s))\r
-# define BOOST_PP_WHILE_57_I(p, o, s) BOOST_PP_IF(p(58, s), BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, o(58, s))\r
-# define BOOST_PP_WHILE_58_I(p, o, s) BOOST_PP_IF(p(59, s), BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, o(59, s))\r
-# define BOOST_PP_WHILE_59_I(p, o, s) BOOST_PP_IF(p(60, s), BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, o(60, s))\r
-# define BOOST_PP_WHILE_60_I(p, o, s) BOOST_PP_IF(p(61, s), BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, o(61, s))\r
-# define BOOST_PP_WHILE_61_I(p, o, s) BOOST_PP_IF(p(62, s), BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, o(62, s))\r
-# define BOOST_PP_WHILE_62_I(p, o, s) BOOST_PP_IF(p(63, s), BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, o(63, s))\r
-# define BOOST_PP_WHILE_63_I(p, o, s) BOOST_PP_IF(p(64, s), BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, o(64, s))\r
-# define BOOST_PP_WHILE_64_I(p, o, s) BOOST_PP_IF(p(65, s), BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, o(65, s))\r
-# define BOOST_PP_WHILE_65_I(p, o, s) BOOST_PP_IF(p(66, s), BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, o(66, s))\r
-# define BOOST_PP_WHILE_66_I(p, o, s) BOOST_PP_IF(p(67, s), BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, o(67, s))\r
-# define BOOST_PP_WHILE_67_I(p, o, s) BOOST_PP_IF(p(68, s), BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, o(68, s))\r
-# define BOOST_PP_WHILE_68_I(p, o, s) BOOST_PP_IF(p(69, s), BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, o(69, s))\r
-# define BOOST_PP_WHILE_69_I(p, o, s) BOOST_PP_IF(p(70, s), BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, o(70, s))\r
-# define BOOST_PP_WHILE_70_I(p, o, s) BOOST_PP_IF(p(71, s), BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, o(71, s))\r
-# define BOOST_PP_WHILE_71_I(p, o, s) BOOST_PP_IF(p(72, s), BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, o(72, s))\r
-# define BOOST_PP_WHILE_72_I(p, o, s) BOOST_PP_IF(p(73, s), BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, o(73, s))\r
-# define BOOST_PP_WHILE_73_I(p, o, s) BOOST_PP_IF(p(74, s), BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, o(74, s))\r
-# define BOOST_PP_WHILE_74_I(p, o, s) BOOST_PP_IF(p(75, s), BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, o(75, s))\r
-# define BOOST_PP_WHILE_75_I(p, o, s) BOOST_PP_IF(p(76, s), BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, o(76, s))\r
-# define BOOST_PP_WHILE_76_I(p, o, s) BOOST_PP_IF(p(77, s), BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, o(77, s))\r
-# define BOOST_PP_WHILE_77_I(p, o, s) BOOST_PP_IF(p(78, s), BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, o(78, s))\r
-# define BOOST_PP_WHILE_78_I(p, o, s) BOOST_PP_IF(p(79, s), BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, o(79, s))\r
-# define BOOST_PP_WHILE_79_I(p, o, s) BOOST_PP_IF(p(80, s), BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, o(80, s))\r
-# define BOOST_PP_WHILE_80_I(p, o, s) BOOST_PP_IF(p(81, s), BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, o(81, s))\r
-# define BOOST_PP_WHILE_81_I(p, o, s) BOOST_PP_IF(p(82, s), BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, o(82, s))\r
-# define BOOST_PP_WHILE_82_I(p, o, s) BOOST_PP_IF(p(83, s), BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, o(83, s))\r
-# define BOOST_PP_WHILE_83_I(p, o, s) BOOST_PP_IF(p(84, s), BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, o(84, s))\r
-# define BOOST_PP_WHILE_84_I(p, o, s) BOOST_PP_IF(p(85, s), BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, o(85, s))\r
-# define BOOST_PP_WHILE_85_I(p, o, s) BOOST_PP_IF(p(86, s), BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, o(86, s))\r
-# define BOOST_PP_WHILE_86_I(p, o, s) BOOST_PP_IF(p(87, s), BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, o(87, s))\r
-# define BOOST_PP_WHILE_87_I(p, o, s) BOOST_PP_IF(p(88, s), BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, o(88, s))\r
-# define BOOST_PP_WHILE_88_I(p, o, s) BOOST_PP_IF(p(89, s), BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, o(89, s))\r
-# define BOOST_PP_WHILE_89_I(p, o, s) BOOST_PP_IF(p(90, s), BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, o(90, s))\r
-# define BOOST_PP_WHILE_90_I(p, o, s) BOOST_PP_IF(p(91, s), BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, o(91, s))\r
-# define BOOST_PP_WHILE_91_I(p, o, s) BOOST_PP_IF(p(92, s), BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, o(92, s))\r
-# define BOOST_PP_WHILE_92_I(p, o, s) BOOST_PP_IF(p(93, s), BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, o(93, s))\r
-# define BOOST_PP_WHILE_93_I(p, o, s) BOOST_PP_IF(p(94, s), BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, o(94, s))\r
-# define BOOST_PP_WHILE_94_I(p, o, s) BOOST_PP_IF(p(95, s), BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, o(95, s))\r
-# define BOOST_PP_WHILE_95_I(p, o, s) BOOST_PP_IF(p(96, s), BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, o(96, s))\r
-# define BOOST_PP_WHILE_96_I(p, o, s) BOOST_PP_IF(p(97, s), BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, o(97, s))\r
-# define BOOST_PP_WHILE_97_I(p, o, s) BOOST_PP_IF(p(98, s), BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, o(98, s))\r
-# define BOOST_PP_WHILE_98_I(p, o, s) BOOST_PP_IF(p(99, s), BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, o(99, s))\r
-# define BOOST_PP_WHILE_99_I(p, o, s) BOOST_PP_IF(p(100, s), BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, o(100, s))\r
-# define BOOST_PP_WHILE_100_I(p, o, s) BOOST_PP_IF(p(101, s), BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, o(101, s))\r
-# define BOOST_PP_WHILE_101_I(p, o, s) BOOST_PP_IF(p(102, s), BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, o(102, s))\r
-# define BOOST_PP_WHILE_102_I(p, o, s) BOOST_PP_IF(p(103, s), BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, o(103, s))\r
-# define BOOST_PP_WHILE_103_I(p, o, s) BOOST_PP_IF(p(104, s), BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, o(104, s))\r
-# define BOOST_PP_WHILE_104_I(p, o, s) BOOST_PP_IF(p(105, s), BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, o(105, s))\r
-# define BOOST_PP_WHILE_105_I(p, o, s) BOOST_PP_IF(p(106, s), BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, o(106, s))\r
-# define BOOST_PP_WHILE_106_I(p, o, s) BOOST_PP_IF(p(107, s), BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, o(107, s))\r
-# define BOOST_PP_WHILE_107_I(p, o, s) BOOST_PP_IF(p(108, s), BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, o(108, s))\r
-# define BOOST_PP_WHILE_108_I(p, o, s) BOOST_PP_IF(p(109, s), BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, o(109, s))\r
-# define BOOST_PP_WHILE_109_I(p, o, s) BOOST_PP_IF(p(110, s), BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, o(110, s))\r
-# define BOOST_PP_WHILE_110_I(p, o, s) BOOST_PP_IF(p(111, s), BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, o(111, s))\r
-# define BOOST_PP_WHILE_111_I(p, o, s) BOOST_PP_IF(p(112, s), BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, o(112, s))\r
-# define BOOST_PP_WHILE_112_I(p, o, s) BOOST_PP_IF(p(113, s), BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, o(113, s))\r
-# define BOOST_PP_WHILE_113_I(p, o, s) BOOST_PP_IF(p(114, s), BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, o(114, s))\r
-# define BOOST_PP_WHILE_114_I(p, o, s) BOOST_PP_IF(p(115, s), BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, o(115, s))\r
-# define BOOST_PP_WHILE_115_I(p, o, s) BOOST_PP_IF(p(116, s), BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, o(116, s))\r
-# define BOOST_PP_WHILE_116_I(p, o, s) BOOST_PP_IF(p(117, s), BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, o(117, s))\r
-# define BOOST_PP_WHILE_117_I(p, o, s) BOOST_PP_IF(p(118, s), BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, o(118, s))\r
-# define BOOST_PP_WHILE_118_I(p, o, s) BOOST_PP_IF(p(119, s), BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, o(119, s))\r
-# define BOOST_PP_WHILE_119_I(p, o, s) BOOST_PP_IF(p(120, s), BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, o(120, s))\r
-# define BOOST_PP_WHILE_120_I(p, o, s) BOOST_PP_IF(p(121, s), BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, o(121, s))\r
-# define BOOST_PP_WHILE_121_I(p, o, s) BOOST_PP_IF(p(122, s), BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, o(122, s))\r
-# define BOOST_PP_WHILE_122_I(p, o, s) BOOST_PP_IF(p(123, s), BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, o(123, s))\r
-# define BOOST_PP_WHILE_123_I(p, o, s) BOOST_PP_IF(p(124, s), BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, o(124, s))\r
-# define BOOST_PP_WHILE_124_I(p, o, s) BOOST_PP_IF(p(125, s), BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, o(125, s))\r
-# define BOOST_PP_WHILE_125_I(p, o, s) BOOST_PP_IF(p(126, s), BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, o(126, s))\r
-# define BOOST_PP_WHILE_126_I(p, o, s) BOOST_PP_IF(p(127, s), BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, o(127, s))\r
-# define BOOST_PP_WHILE_127_I(p, o, s) BOOST_PP_IF(p(128, s), BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, o(128, s))\r
-# define BOOST_PP_WHILE_128_I(p, o, s) BOOST_PP_IF(p(129, s), BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, o(129, s))\r
-# define BOOST_PP_WHILE_129_I(p, o, s) BOOST_PP_IF(p(130, s), BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, o(130, s))\r
-# define BOOST_PP_WHILE_130_I(p, o, s) BOOST_PP_IF(p(131, s), BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, o(131, s))\r
-# define BOOST_PP_WHILE_131_I(p, o, s) BOOST_PP_IF(p(132, s), BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, o(132, s))\r
-# define BOOST_PP_WHILE_132_I(p, o, s) BOOST_PP_IF(p(133, s), BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, o(133, s))\r
-# define BOOST_PP_WHILE_133_I(p, o, s) BOOST_PP_IF(p(134, s), BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, o(134, s))\r
-# define BOOST_PP_WHILE_134_I(p, o, s) BOOST_PP_IF(p(135, s), BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, o(135, s))\r
-# define BOOST_PP_WHILE_135_I(p, o, s) BOOST_PP_IF(p(136, s), BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, o(136, s))\r
-# define BOOST_PP_WHILE_136_I(p, o, s) BOOST_PP_IF(p(137, s), BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, o(137, s))\r
-# define BOOST_PP_WHILE_137_I(p, o, s) BOOST_PP_IF(p(138, s), BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, o(138, s))\r
-# define BOOST_PP_WHILE_138_I(p, o, s) BOOST_PP_IF(p(139, s), BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, o(139, s))\r
-# define BOOST_PP_WHILE_139_I(p, o, s) BOOST_PP_IF(p(140, s), BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, o(140, s))\r
-# define BOOST_PP_WHILE_140_I(p, o, s) BOOST_PP_IF(p(141, s), BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, o(141, s))\r
-# define BOOST_PP_WHILE_141_I(p, o, s) BOOST_PP_IF(p(142, s), BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, o(142, s))\r
-# define BOOST_PP_WHILE_142_I(p, o, s) BOOST_PP_IF(p(143, s), BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, o(143, s))\r
-# define BOOST_PP_WHILE_143_I(p, o, s) BOOST_PP_IF(p(144, s), BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, o(144, s))\r
-# define BOOST_PP_WHILE_144_I(p, o, s) BOOST_PP_IF(p(145, s), BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, o(145, s))\r
-# define BOOST_PP_WHILE_145_I(p, o, s) BOOST_PP_IF(p(146, s), BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, o(146, s))\r
-# define BOOST_PP_WHILE_146_I(p, o, s) BOOST_PP_IF(p(147, s), BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, o(147, s))\r
-# define BOOST_PP_WHILE_147_I(p, o, s) BOOST_PP_IF(p(148, s), BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, o(148, s))\r
-# define BOOST_PP_WHILE_148_I(p, o, s) BOOST_PP_IF(p(149, s), BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, o(149, s))\r
-# define BOOST_PP_WHILE_149_I(p, o, s) BOOST_PP_IF(p(150, s), BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, o(150, s))\r
-# define BOOST_PP_WHILE_150_I(p, o, s) BOOST_PP_IF(p(151, s), BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, o(151, s))\r
-# define BOOST_PP_WHILE_151_I(p, o, s) BOOST_PP_IF(p(152, s), BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, o(152, s))\r
-# define BOOST_PP_WHILE_152_I(p, o, s) BOOST_PP_IF(p(153, s), BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, o(153, s))\r
-# define BOOST_PP_WHILE_153_I(p, o, s) BOOST_PP_IF(p(154, s), BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, o(154, s))\r
-# define BOOST_PP_WHILE_154_I(p, o, s) BOOST_PP_IF(p(155, s), BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, o(155, s))\r
-# define BOOST_PP_WHILE_155_I(p, o, s) BOOST_PP_IF(p(156, s), BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, o(156, s))\r
-# define BOOST_PP_WHILE_156_I(p, o, s) BOOST_PP_IF(p(157, s), BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, o(157, s))\r
-# define BOOST_PP_WHILE_157_I(p, o, s) BOOST_PP_IF(p(158, s), BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, o(158, s))\r
-# define BOOST_PP_WHILE_158_I(p, o, s) BOOST_PP_IF(p(159, s), BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, o(159, s))\r
-# define BOOST_PP_WHILE_159_I(p, o, s) BOOST_PP_IF(p(160, s), BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, o(160, s))\r
-# define BOOST_PP_WHILE_160_I(p, o, s) BOOST_PP_IF(p(161, s), BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, o(161, s))\r
-# define BOOST_PP_WHILE_161_I(p, o, s) BOOST_PP_IF(p(162, s), BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, o(162, s))\r
-# define BOOST_PP_WHILE_162_I(p, o, s) BOOST_PP_IF(p(163, s), BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, o(163, s))\r
-# define BOOST_PP_WHILE_163_I(p, o, s) BOOST_PP_IF(p(164, s), BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, o(164, s))\r
-# define BOOST_PP_WHILE_164_I(p, o, s) BOOST_PP_IF(p(165, s), BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, o(165, s))\r
-# define BOOST_PP_WHILE_165_I(p, o, s) BOOST_PP_IF(p(166, s), BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, o(166, s))\r
-# define BOOST_PP_WHILE_166_I(p, o, s) BOOST_PP_IF(p(167, s), BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, o(167, s))\r
-# define BOOST_PP_WHILE_167_I(p, o, s) BOOST_PP_IF(p(168, s), BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, o(168, s))\r
-# define BOOST_PP_WHILE_168_I(p, o, s) BOOST_PP_IF(p(169, s), BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, o(169, s))\r
-# define BOOST_PP_WHILE_169_I(p, o, s) BOOST_PP_IF(p(170, s), BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, o(170, s))\r
-# define BOOST_PP_WHILE_170_I(p, o, s) BOOST_PP_IF(p(171, s), BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, o(171, s))\r
-# define BOOST_PP_WHILE_171_I(p, o, s) BOOST_PP_IF(p(172, s), BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, o(172, s))\r
-# define BOOST_PP_WHILE_172_I(p, o, s) BOOST_PP_IF(p(173, s), BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, o(173, s))\r
-# define BOOST_PP_WHILE_173_I(p, o, s) BOOST_PP_IF(p(174, s), BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, o(174, s))\r
-# define BOOST_PP_WHILE_174_I(p, o, s) BOOST_PP_IF(p(175, s), BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, o(175, s))\r
-# define BOOST_PP_WHILE_175_I(p, o, s) BOOST_PP_IF(p(176, s), BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, o(176, s))\r
-# define BOOST_PP_WHILE_176_I(p, o, s) BOOST_PP_IF(p(177, s), BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, o(177, s))\r
-# define BOOST_PP_WHILE_177_I(p, o, s) BOOST_PP_IF(p(178, s), BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, o(178, s))\r
-# define BOOST_PP_WHILE_178_I(p, o, s) BOOST_PP_IF(p(179, s), BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, o(179, s))\r
-# define BOOST_PP_WHILE_179_I(p, o, s) BOOST_PP_IF(p(180, s), BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, o(180, s))\r
-# define BOOST_PP_WHILE_180_I(p, o, s) BOOST_PP_IF(p(181, s), BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, o(181, s))\r
-# define BOOST_PP_WHILE_181_I(p, o, s) BOOST_PP_IF(p(182, s), BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, o(182, s))\r
-# define BOOST_PP_WHILE_182_I(p, o, s) BOOST_PP_IF(p(183, s), BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, o(183, s))\r
-# define BOOST_PP_WHILE_183_I(p, o, s) BOOST_PP_IF(p(184, s), BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, o(184, s))\r
-# define BOOST_PP_WHILE_184_I(p, o, s) BOOST_PP_IF(p(185, s), BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, o(185, s))\r
-# define BOOST_PP_WHILE_185_I(p, o, s) BOOST_PP_IF(p(186, s), BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, o(186, s))\r
-# define BOOST_PP_WHILE_186_I(p, o, s) BOOST_PP_IF(p(187, s), BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, o(187, s))\r
-# define BOOST_PP_WHILE_187_I(p, o, s) BOOST_PP_IF(p(188, s), BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, o(188, s))\r
-# define BOOST_PP_WHILE_188_I(p, o, s) BOOST_PP_IF(p(189, s), BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, o(189, s))\r
-# define BOOST_PP_WHILE_189_I(p, o, s) BOOST_PP_IF(p(190, s), BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, o(190, s))\r
-# define BOOST_PP_WHILE_190_I(p, o, s) BOOST_PP_IF(p(191, s), BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, o(191, s))\r
-# define BOOST_PP_WHILE_191_I(p, o, s) BOOST_PP_IF(p(192, s), BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, o(192, s))\r
-# define BOOST_PP_WHILE_192_I(p, o, s) BOOST_PP_IF(p(193, s), BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, o(193, s))\r
-# define BOOST_PP_WHILE_193_I(p, o, s) BOOST_PP_IF(p(194, s), BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, o(194, s))\r
-# define BOOST_PP_WHILE_194_I(p, o, s) BOOST_PP_IF(p(195, s), BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, o(195, s))\r
-# define BOOST_PP_WHILE_195_I(p, o, s) BOOST_PP_IF(p(196, s), BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, o(196, s))\r
-# define BOOST_PP_WHILE_196_I(p, o, s) BOOST_PP_IF(p(197, s), BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, o(197, s))\r
-# define BOOST_PP_WHILE_197_I(p, o, s) BOOST_PP_IF(p(198, s), BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, o(198, s))\r
-# define BOOST_PP_WHILE_198_I(p, o, s) BOOST_PP_IF(p(199, s), BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, o(199, s))\r
-# define BOOST_PP_WHILE_199_I(p, o, s) BOOST_PP_IF(p(200, s), BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, o(200, s))\r
-# define BOOST_PP_WHILE_200_I(p, o, s) BOOST_PP_IF(p(201, s), BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, o(201, s))\r
-# define BOOST_PP_WHILE_201_I(p, o, s) BOOST_PP_IF(p(202, s), BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, o(202, s))\r
-# define BOOST_PP_WHILE_202_I(p, o, s) BOOST_PP_IF(p(203, s), BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, o(203, s))\r
-# define BOOST_PP_WHILE_203_I(p, o, s) BOOST_PP_IF(p(204, s), BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, o(204, s))\r
-# define BOOST_PP_WHILE_204_I(p, o, s) BOOST_PP_IF(p(205, s), BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, o(205, s))\r
-# define BOOST_PP_WHILE_205_I(p, o, s) BOOST_PP_IF(p(206, s), BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, o(206, s))\r
-# define BOOST_PP_WHILE_206_I(p, o, s) BOOST_PP_IF(p(207, s), BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, o(207, s))\r
-# define BOOST_PP_WHILE_207_I(p, o, s) BOOST_PP_IF(p(208, s), BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, o(208, s))\r
-# define BOOST_PP_WHILE_208_I(p, o, s) BOOST_PP_IF(p(209, s), BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, o(209, s))\r
-# define BOOST_PP_WHILE_209_I(p, o, s) BOOST_PP_IF(p(210, s), BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, o(210, s))\r
-# define BOOST_PP_WHILE_210_I(p, o, s) BOOST_PP_IF(p(211, s), BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, o(211, s))\r
-# define BOOST_PP_WHILE_211_I(p, o, s) BOOST_PP_IF(p(212, s), BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, o(212, s))\r
-# define BOOST_PP_WHILE_212_I(p, o, s) BOOST_PP_IF(p(213, s), BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, o(213, s))\r
-# define BOOST_PP_WHILE_213_I(p, o, s) BOOST_PP_IF(p(214, s), BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, o(214, s))\r
-# define BOOST_PP_WHILE_214_I(p, o, s) BOOST_PP_IF(p(215, s), BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, o(215, s))\r
-# define BOOST_PP_WHILE_215_I(p, o, s) BOOST_PP_IF(p(216, s), BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, o(216, s))\r
-# define BOOST_PP_WHILE_216_I(p, o, s) BOOST_PP_IF(p(217, s), BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, o(217, s))\r
-# define BOOST_PP_WHILE_217_I(p, o, s) BOOST_PP_IF(p(218, s), BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, o(218, s))\r
-# define BOOST_PP_WHILE_218_I(p, o, s) BOOST_PP_IF(p(219, s), BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, o(219, s))\r
-# define BOOST_PP_WHILE_219_I(p, o, s) BOOST_PP_IF(p(220, s), BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, o(220, s))\r
-# define BOOST_PP_WHILE_220_I(p, o, s) BOOST_PP_IF(p(221, s), BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, o(221, s))\r
-# define BOOST_PP_WHILE_221_I(p, o, s) BOOST_PP_IF(p(222, s), BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, o(222, s))\r
-# define BOOST_PP_WHILE_222_I(p, o, s) BOOST_PP_IF(p(223, s), BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, o(223, s))\r
-# define BOOST_PP_WHILE_223_I(p, o, s) BOOST_PP_IF(p(224, s), BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, o(224, s))\r
-# define BOOST_PP_WHILE_224_I(p, o, s) BOOST_PP_IF(p(225, s), BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, o(225, s))\r
-# define BOOST_PP_WHILE_225_I(p, o, s) BOOST_PP_IF(p(226, s), BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, o(226, s))\r
-# define BOOST_PP_WHILE_226_I(p, o, s) BOOST_PP_IF(p(227, s), BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, o(227, s))\r
-# define BOOST_PP_WHILE_227_I(p, o, s) BOOST_PP_IF(p(228, s), BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, o(228, s))\r
-# define BOOST_PP_WHILE_228_I(p, o, s) BOOST_PP_IF(p(229, s), BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, o(229, s))\r
-# define BOOST_PP_WHILE_229_I(p, o, s) BOOST_PP_IF(p(230, s), BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, o(230, s))\r
-# define BOOST_PP_WHILE_230_I(p, o, s) BOOST_PP_IF(p(231, s), BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, o(231, s))\r
-# define BOOST_PP_WHILE_231_I(p, o, s) BOOST_PP_IF(p(232, s), BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, o(232, s))\r
-# define BOOST_PP_WHILE_232_I(p, o, s) BOOST_PP_IF(p(233, s), BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, o(233, s))\r
-# define BOOST_PP_WHILE_233_I(p, o, s) BOOST_PP_IF(p(234, s), BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, o(234, s))\r
-# define BOOST_PP_WHILE_234_I(p, o, s) BOOST_PP_IF(p(235, s), BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, o(235, s))\r
-# define BOOST_PP_WHILE_235_I(p, o, s) BOOST_PP_IF(p(236, s), BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, o(236, s))\r
-# define BOOST_PP_WHILE_236_I(p, o, s) BOOST_PP_IF(p(237, s), BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, o(237, s))\r
-# define BOOST_PP_WHILE_237_I(p, o, s) BOOST_PP_IF(p(238, s), BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, o(238, s))\r
-# define BOOST_PP_WHILE_238_I(p, o, s) BOOST_PP_IF(p(239, s), BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, o(239, s))\r
-# define BOOST_PP_WHILE_239_I(p, o, s) BOOST_PP_IF(p(240, s), BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, o(240, s))\r
-# define BOOST_PP_WHILE_240_I(p, o, s) BOOST_PP_IF(p(241, s), BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, o(241, s))\r
-# define BOOST_PP_WHILE_241_I(p, o, s) BOOST_PP_IF(p(242, s), BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, o(242, s))\r
-# define BOOST_PP_WHILE_242_I(p, o, s) BOOST_PP_IF(p(243, s), BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, o(243, s))\r
-# define BOOST_PP_WHILE_243_I(p, o, s) BOOST_PP_IF(p(244, s), BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, o(244, s))\r
-# define BOOST_PP_WHILE_244_I(p, o, s) BOOST_PP_IF(p(245, s), BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, o(245, s))\r
-# define BOOST_PP_WHILE_245_I(p, o, s) BOOST_PP_IF(p(246, s), BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, o(246, s))\r
-# define BOOST_PP_WHILE_246_I(p, o, s) BOOST_PP_IF(p(247, s), BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, o(247, s))\r
-# define BOOST_PP_WHILE_247_I(p, o, s) BOOST_PP_IF(p(248, s), BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, o(248, s))\r
-# define BOOST_PP_WHILE_248_I(p, o, s) BOOST_PP_IF(p(249, s), BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, o(249, s))\r
-# define BOOST_PP_WHILE_249_I(p, o, s) BOOST_PP_IF(p(250, s), BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, o(250, s))\r
-# define BOOST_PP_WHILE_250_I(p, o, s) BOOST_PP_IF(p(251, s), BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, o(251, s))\r
-# define BOOST_PP_WHILE_251_I(p, o, s) BOOST_PP_IF(p(252, s), BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, o(252, s))\r
-# define BOOST_PP_WHILE_252_I(p, o, s) BOOST_PP_IF(p(253, s), BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, o(253, s))\r
-# define BOOST_PP_WHILE_253_I(p, o, s) BOOST_PP_IF(p(254, s), BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, o(254, s))\r
-# define BOOST_PP_WHILE_254_I(p, o, s) BOOST_PP_IF(p(255, s), BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, o(255, s))\r
-# define BOOST_PP_WHILE_255_I(p, o, s) BOOST_PP_IF(p(256, s), BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, o(256, s))\r
-# define BOOST_PP_WHILE_256_I(p, o, s) BOOST_PP_IF(p(257, s), BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, o(257, s))\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP
+# define BOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP
+#
+# include <boost/preprocessor/control/if.hpp>
+# include <boost/preprocessor/tuple/eat.hpp>
+#
+# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_I(p, o, s)
+# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_I(p, o, s)
+# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_I(p, o, s)
+# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_I(p, o, s)
+# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_I(p, o, s)
+# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_I(p, o, s)
+# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_I(p, o, s)
+# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_I(p, o, s)
+# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_I(p, o, s)
+# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_I(p, o, s)
+# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_I(p, o, s)
+# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_I(p, o, s)
+# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_I(p, o, s)
+# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_I(p, o, s)
+# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_I(p, o, s)
+# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_I(p, o, s)
+# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_I(p, o, s)
+# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_I(p, o, s)
+# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_I(p, o, s)
+# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_I(p, o, s)
+# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_I(p, o, s)
+# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_I(p, o, s)
+# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_I(p, o, s)
+# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_I(p, o, s)
+# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_I(p, o, s)
+# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_I(p, o, s)
+# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_I(p, o, s)
+# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_I(p, o, s)
+# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_I(p, o, s)
+# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_I(p, o, s)
+# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_I(p, o, s)
+# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_I(p, o, s)
+# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_I(p, o, s)
+# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_I(p, o, s)
+# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_I(p, o, s)
+# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_I(p, o, s)
+# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_I(p, o, s)
+# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_I(p, o, s)
+# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_I(p, o, s)
+# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_I(p, o, s)
+# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_I(p, o, s)
+# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_I(p, o, s)
+# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_I(p, o, s)
+# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_I(p, o, s)
+# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_I(p, o, s)
+# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_I(p, o, s)
+# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_I(p, o, s)
+# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_I(p, o, s)
+# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_I(p, o, s)
+# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_I(p, o, s)
+# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_I(p, o, s)
+# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_I(p, o, s)
+# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_I(p, o, s)
+# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_I(p, o, s)
+# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_I(p, o, s)
+# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_I(p, o, s)
+# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_I(p, o, s)
+# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_I(p, o, s)
+# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_I(p, o, s)
+# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_I(p, o, s)
+# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_I(p, o, s)
+# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_I(p, o, s)
+# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_I(p, o, s)
+# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_I(p, o, s)
+# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_I(p, o, s)
+# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_I(p, o, s)
+# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_I(p, o, s)
+# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_I(p, o, s)
+# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_I(p, o, s)
+# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_I(p, o, s)
+# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_I(p, o, s)
+# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_I(p, o, s)
+# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_I(p, o, s)
+# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_I(p, o, s)
+# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_I(p, o, s)
+# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_I(p, o, s)
+# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_I(p, o, s)
+# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_I(p, o, s)
+# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_I(p, o, s)
+# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_I(p, o, s)
+# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_I(p, o, s)
+# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_I(p, o, s)
+# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_I(p, o, s)
+# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_I(p, o, s)
+# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_I(p, o, s)
+# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_I(p, o, s)
+# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_I(p, o, s)
+# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_I(p, o, s)
+# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_I(p, o, s)
+# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_I(p, o, s)
+# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_I(p, o, s)
+# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_I(p, o, s)
+# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_I(p, o, s)
+# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_I(p, o, s)
+# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_I(p, o, s)
+# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_I(p, o, s)
+# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_I(p, o, s)
+# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_I(p, o, s)
+# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_I(p, o, s)
+# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_I(p, o, s)
+# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_I(p, o, s)
+# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_I(p, o, s)
+# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_I(p, o, s)
+# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_I(p, o, s)
+# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_I(p, o, s)
+# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_I(p, o, s)
+# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_I(p, o, s)
+# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_I(p, o, s)
+# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_I(p, o, s)
+# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_I(p, o, s)
+# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_I(p, o, s)
+# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_I(p, o, s)
+# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_I(p, o, s)
+# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_I(p, o, s)
+# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_I(p, o, s)
+# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_I(p, o, s)
+# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_I(p, o, s)
+# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_I(p, o, s)
+# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_I(p, o, s)
+# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_I(p, o, s)
+# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_I(p, o, s)
+# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_I(p, o, s)
+# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_I(p, o, s)
+# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_I(p, o, s)
+# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_I(p, o, s)
+# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_I(p, o, s)
+# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_I(p, o, s)
+# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_I(p, o, s)
+# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_I(p, o, s)
+# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_I(p, o, s)
+# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_I(p, o, s)
+# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_I(p, o, s)
+# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_I(p, o, s)
+# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_I(p, o, s)
+# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_I(p, o, s)
+# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_I(p, o, s)
+# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_I(p, o, s)
+# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_I(p, o, s)
+# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_I(p, o, s)
+# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_I(p, o, s)
+# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_I(p, o, s)
+# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_I(p, o, s)
+# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_I(p, o, s)
+# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_I(p, o, s)
+# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_I(p, o, s)
+# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_I(p, o, s)
+# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_I(p, o, s)
+# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_I(p, o, s)
+# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_I(p, o, s)
+# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_I(p, o, s)
+# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_I(p, o, s)
+# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_I(p, o, s)
+# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_I(p, o, s)
+# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_I(p, o, s)
+# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_I(p, o, s)
+# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_I(p, o, s)
+# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_I(p, o, s)
+# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_I(p, o, s)
+# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_I(p, o, s)
+# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_I(p, o, s)
+# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_I(p, o, s)
+# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_I(p, o, s)
+# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_I(p, o, s)
+# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_I(p, o, s)
+# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_I(p, o, s)
+# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_I(p, o, s)
+# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_I(p, o, s)
+# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_I(p, o, s)
+# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_I(p, o, s)
+# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_I(p, o, s)
+# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_I(p, o, s)
+# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_I(p, o, s)
+# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_I(p, o, s)
+# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_I(p, o, s)
+# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_I(p, o, s)
+# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_I(p, o, s)
+# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_I(p, o, s)
+# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_I(p, o, s)
+# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_I(p, o, s)
+# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_I(p, o, s)
+# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_I(p, o, s)
+# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_I(p, o, s)
+# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_I(p, o, s)
+# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_I(p, o, s)
+# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_I(p, o, s)
+# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_I(p, o, s)
+# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_I(p, o, s)
+# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_I(p, o, s)
+# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_I(p, o, s)
+# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_I(p, o, s)
+# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_I(p, o, s)
+# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_I(p, o, s)
+# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_I(p, o, s)
+# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_I(p, o, s)
+# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_I(p, o, s)
+# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_I(p, o, s)
+# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_I(p, o, s)
+# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_I(p, o, s)
+# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_I(p, o, s)
+# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_I(p, o, s)
+# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_I(p, o, s)
+# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_I(p, o, s)
+# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_I(p, o, s)
+# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_I(p, o, s)
+# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_I(p, o, s)
+# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_I(p, o, s)
+# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_I(p, o, s)
+# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_I(p, o, s)
+# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_I(p, o, s)
+# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_I(p, o, s)
+# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_I(p, o, s)
+# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_I(p, o, s)
+# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_I(p, o, s)
+# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_I(p, o, s)
+# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_I(p, o, s)
+# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_I(p, o, s)
+# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_I(p, o, s)
+# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_I(p, o, s)
+# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_I(p, o, s)
+# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_I(p, o, s)
+# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_I(p, o, s)
+# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_I(p, o, s)
+# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_I(p, o, s)
+# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_I(p, o, s)
+# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_I(p, o, s)
+# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_I(p, o, s)
+# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_I(p, o, s)
+# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_I(p, o, s)
+# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_I(p, o, s)
+# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_I(p, o, s)
+# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_I(p, o, s)
+# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_I(p, o, s)
+# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_I(p, o, s)
+# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_I(p, o, s)
+# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_I(p, o, s)
+# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_I(p, o, s)
+# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_I(p, o, s)
+# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_I(p, o, s)
+# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_I(p, o, s)
+# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_I(p, o, s)
+# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_I(p, o, s)
+# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_I(p, o, s)
+# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_I(p, o, s)
+# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_I(p, o, s)
+# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_I(p, o, s)
+# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_I(p, o, s)
+# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_I(p, o, s)
+# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_I(p, o, s)
+# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_I(p, o, s)
+# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_I(p, o, s)
+# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_I(p, o, s)
+# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_I(p, o, s)
+# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_I(p, o, s)
+# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_I(p, o, s)
+# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_I(p, o, s)
+# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_I(p, o, s)
+#
+# define BOOST_PP_WHILE_1_I(p, o, s) BOOST_PP_IF(p(2, s), BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, o(2, s))
+# define BOOST_PP_WHILE_2_I(p, o, s) BOOST_PP_IF(p(3, s), BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, o(3, s))
+# define BOOST_PP_WHILE_3_I(p, o, s) BOOST_PP_IF(p(4, s), BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, o(4, s))
+# define BOOST_PP_WHILE_4_I(p, o, s) BOOST_PP_IF(p(5, s), BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, o(5, s))
+# define BOOST_PP_WHILE_5_I(p, o, s) BOOST_PP_IF(p(6, s), BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, o(6, s))
+# define BOOST_PP_WHILE_6_I(p, o, s) BOOST_PP_IF(p(7, s), BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, o(7, s))
+# define BOOST_PP_WHILE_7_I(p, o, s) BOOST_PP_IF(p(8, s), BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, o(8, s))
+# define BOOST_PP_WHILE_8_I(p, o, s) BOOST_PP_IF(p(9, s), BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, o(9, s))
+# define BOOST_PP_WHILE_9_I(p, o, s) BOOST_PP_IF(p(10, s), BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, o(10, s))
+# define BOOST_PP_WHILE_10_I(p, o, s) BOOST_PP_IF(p(11, s), BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, o(11, s))
+# define BOOST_PP_WHILE_11_I(p, o, s) BOOST_PP_IF(p(12, s), BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, o(12, s))
+# define BOOST_PP_WHILE_12_I(p, o, s) BOOST_PP_IF(p(13, s), BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, o(13, s))
+# define BOOST_PP_WHILE_13_I(p, o, s) BOOST_PP_IF(p(14, s), BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, o(14, s))
+# define BOOST_PP_WHILE_14_I(p, o, s) BOOST_PP_IF(p(15, s), BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, o(15, s))
+# define BOOST_PP_WHILE_15_I(p, o, s) BOOST_PP_IF(p(16, s), BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, o(16, s))
+# define BOOST_PP_WHILE_16_I(p, o, s) BOOST_PP_IF(p(17, s), BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, o(17, s))
+# define BOOST_PP_WHILE_17_I(p, o, s) BOOST_PP_IF(p(18, s), BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, o(18, s))
+# define BOOST_PP_WHILE_18_I(p, o, s) BOOST_PP_IF(p(19, s), BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, o(19, s))
+# define BOOST_PP_WHILE_19_I(p, o, s) BOOST_PP_IF(p(20, s), BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, o(20, s))
+# define BOOST_PP_WHILE_20_I(p, o, s) BOOST_PP_IF(p(21, s), BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, o(21, s))
+# define BOOST_PP_WHILE_21_I(p, o, s) BOOST_PP_IF(p(22, s), BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, o(22, s))
+# define BOOST_PP_WHILE_22_I(p, o, s) BOOST_PP_IF(p(23, s), BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, o(23, s))
+# define BOOST_PP_WHILE_23_I(p, o, s) BOOST_PP_IF(p(24, s), BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, o(24, s))
+# define BOOST_PP_WHILE_24_I(p, o, s) BOOST_PP_IF(p(25, s), BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, o(25, s))
+# define BOOST_PP_WHILE_25_I(p, o, s) BOOST_PP_IF(p(26, s), BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, o(26, s))
+# define BOOST_PP_WHILE_26_I(p, o, s) BOOST_PP_IF(p(27, s), BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, o(27, s))
+# define BOOST_PP_WHILE_27_I(p, o, s) BOOST_PP_IF(p(28, s), BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, o(28, s))
+# define BOOST_PP_WHILE_28_I(p, o, s) BOOST_PP_IF(p(29, s), BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, o(29, s))
+# define BOOST_PP_WHILE_29_I(p, o, s) BOOST_PP_IF(p(30, s), BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, o(30, s))
+# define BOOST_PP_WHILE_30_I(p, o, s) BOOST_PP_IF(p(31, s), BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, o(31, s))
+# define BOOST_PP_WHILE_31_I(p, o, s) BOOST_PP_IF(p(32, s), BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, o(32, s))
+# define BOOST_PP_WHILE_32_I(p, o, s) BOOST_PP_IF(p(33, s), BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, o(33, s))
+# define BOOST_PP_WHILE_33_I(p, o, s) BOOST_PP_IF(p(34, s), BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, o(34, s))
+# define BOOST_PP_WHILE_34_I(p, o, s) BOOST_PP_IF(p(35, s), BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, o(35, s))
+# define BOOST_PP_WHILE_35_I(p, o, s) BOOST_PP_IF(p(36, s), BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, o(36, s))
+# define BOOST_PP_WHILE_36_I(p, o, s) BOOST_PP_IF(p(37, s), BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, o(37, s))
+# define BOOST_PP_WHILE_37_I(p, o, s) BOOST_PP_IF(p(38, s), BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, o(38, s))
+# define BOOST_PP_WHILE_38_I(p, o, s) BOOST_PP_IF(p(39, s), BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, o(39, s))
+# define BOOST_PP_WHILE_39_I(p, o, s) BOOST_PP_IF(p(40, s), BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, o(40, s))
+# define BOOST_PP_WHILE_40_I(p, o, s) BOOST_PP_IF(p(41, s), BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, o(41, s))
+# define BOOST_PP_WHILE_41_I(p, o, s) BOOST_PP_IF(p(42, s), BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, o(42, s))
+# define BOOST_PP_WHILE_42_I(p, o, s) BOOST_PP_IF(p(43, s), BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, o(43, s))
+# define BOOST_PP_WHILE_43_I(p, o, s) BOOST_PP_IF(p(44, s), BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, o(44, s))
+# define BOOST_PP_WHILE_44_I(p, o, s) BOOST_PP_IF(p(45, s), BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, o(45, s))
+# define BOOST_PP_WHILE_45_I(p, o, s) BOOST_PP_IF(p(46, s), BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, o(46, s))
+# define BOOST_PP_WHILE_46_I(p, o, s) BOOST_PP_IF(p(47, s), BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, o(47, s))
+# define BOOST_PP_WHILE_47_I(p, o, s) BOOST_PP_IF(p(48, s), BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, o(48, s))
+# define BOOST_PP_WHILE_48_I(p, o, s) BOOST_PP_IF(p(49, s), BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, o(49, s))
+# define BOOST_PP_WHILE_49_I(p, o, s) BOOST_PP_IF(p(50, s), BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, o(50, s))
+# define BOOST_PP_WHILE_50_I(p, o, s) BOOST_PP_IF(p(51, s), BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, o(51, s))
+# define BOOST_PP_WHILE_51_I(p, o, s) BOOST_PP_IF(p(52, s), BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, o(52, s))
+# define BOOST_PP_WHILE_52_I(p, o, s) BOOST_PP_IF(p(53, s), BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, o(53, s))
+# define BOOST_PP_WHILE_53_I(p, o, s) BOOST_PP_IF(p(54, s), BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, o(54, s))
+# define BOOST_PP_WHILE_54_I(p, o, s) BOOST_PP_IF(p(55, s), BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, o(55, s))
+# define BOOST_PP_WHILE_55_I(p, o, s) BOOST_PP_IF(p(56, s), BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, o(56, s))
+# define BOOST_PP_WHILE_56_I(p, o, s) BOOST_PP_IF(p(57, s), BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, o(57, s))
+# define BOOST_PP_WHILE_57_I(p, o, s) BOOST_PP_IF(p(58, s), BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, o(58, s))
+# define BOOST_PP_WHILE_58_I(p, o, s) BOOST_PP_IF(p(59, s), BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, o(59, s))
+# define BOOST_PP_WHILE_59_I(p, o, s) BOOST_PP_IF(p(60, s), BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, o(60, s))
+# define BOOST_PP_WHILE_60_I(p, o, s) BOOST_PP_IF(p(61, s), BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, o(61, s))
+# define BOOST_PP_WHILE_61_I(p, o, s) BOOST_PP_IF(p(62, s), BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, o(62, s))
+# define BOOST_PP_WHILE_62_I(p, o, s) BOOST_PP_IF(p(63, s), BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, o(63, s))
+# define BOOST_PP_WHILE_63_I(p, o, s) BOOST_PP_IF(p(64, s), BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, o(64, s))
+# define BOOST_PP_WHILE_64_I(p, o, s) BOOST_PP_IF(p(65, s), BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, o(65, s))
+# define BOOST_PP_WHILE_65_I(p, o, s) BOOST_PP_IF(p(66, s), BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, o(66, s))
+# define BOOST_PP_WHILE_66_I(p, o, s) BOOST_PP_IF(p(67, s), BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, o(67, s))
+# define BOOST_PP_WHILE_67_I(p, o, s) BOOST_PP_IF(p(68, s), BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, o(68, s))
+# define BOOST_PP_WHILE_68_I(p, o, s) BOOST_PP_IF(p(69, s), BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, o(69, s))
+# define BOOST_PP_WHILE_69_I(p, o, s) BOOST_PP_IF(p(70, s), BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, o(70, s))
+# define BOOST_PP_WHILE_70_I(p, o, s) BOOST_PP_IF(p(71, s), BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, o(71, s))
+# define BOOST_PP_WHILE_71_I(p, o, s) BOOST_PP_IF(p(72, s), BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, o(72, s))
+# define BOOST_PP_WHILE_72_I(p, o, s) BOOST_PP_IF(p(73, s), BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, o(73, s))
+# define BOOST_PP_WHILE_73_I(p, o, s) BOOST_PP_IF(p(74, s), BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, o(74, s))
+# define BOOST_PP_WHILE_74_I(p, o, s) BOOST_PP_IF(p(75, s), BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, o(75, s))
+# define BOOST_PP_WHILE_75_I(p, o, s) BOOST_PP_IF(p(76, s), BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, o(76, s))
+# define BOOST_PP_WHILE_76_I(p, o, s) BOOST_PP_IF(p(77, s), BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, o(77, s))
+# define BOOST_PP_WHILE_77_I(p, o, s) BOOST_PP_IF(p(78, s), BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, o(78, s))
+# define BOOST_PP_WHILE_78_I(p, o, s) BOOST_PP_IF(p(79, s), BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, o(79, s))
+# define BOOST_PP_WHILE_79_I(p, o, s) BOOST_PP_IF(p(80, s), BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, o(80, s))
+# define BOOST_PP_WHILE_80_I(p, o, s) BOOST_PP_IF(p(81, s), BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, o(81, s))
+# define BOOST_PP_WHILE_81_I(p, o, s) BOOST_PP_IF(p(82, s), BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, o(82, s))
+# define BOOST_PP_WHILE_82_I(p, o, s) BOOST_PP_IF(p(83, s), BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, o(83, s))
+# define BOOST_PP_WHILE_83_I(p, o, s) BOOST_PP_IF(p(84, s), BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, o(84, s))
+# define BOOST_PP_WHILE_84_I(p, o, s) BOOST_PP_IF(p(85, s), BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, o(85, s))
+# define BOOST_PP_WHILE_85_I(p, o, s) BOOST_PP_IF(p(86, s), BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, o(86, s))
+# define BOOST_PP_WHILE_86_I(p, o, s) BOOST_PP_IF(p(87, s), BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, o(87, s))
+# define BOOST_PP_WHILE_87_I(p, o, s) BOOST_PP_IF(p(88, s), BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, o(88, s))
+# define BOOST_PP_WHILE_88_I(p, o, s) BOOST_PP_IF(p(89, s), BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, o(89, s))
+# define BOOST_PP_WHILE_89_I(p, o, s) BOOST_PP_IF(p(90, s), BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, o(90, s))
+# define BOOST_PP_WHILE_90_I(p, o, s) BOOST_PP_IF(p(91, s), BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, o(91, s))
+# define BOOST_PP_WHILE_91_I(p, o, s) BOOST_PP_IF(p(92, s), BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, o(92, s))
+# define BOOST_PP_WHILE_92_I(p, o, s) BOOST_PP_IF(p(93, s), BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, o(93, s))
+# define BOOST_PP_WHILE_93_I(p, o, s) BOOST_PP_IF(p(94, s), BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, o(94, s))
+# define BOOST_PP_WHILE_94_I(p, o, s) BOOST_PP_IF(p(95, s), BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, o(95, s))
+# define BOOST_PP_WHILE_95_I(p, o, s) BOOST_PP_IF(p(96, s), BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, o(96, s))
+# define BOOST_PP_WHILE_96_I(p, o, s) BOOST_PP_IF(p(97, s), BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, o(97, s))
+# define BOOST_PP_WHILE_97_I(p, o, s) BOOST_PP_IF(p(98, s), BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, o(98, s))
+# define BOOST_PP_WHILE_98_I(p, o, s) BOOST_PP_IF(p(99, s), BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, o(99, s))
+# define BOOST_PP_WHILE_99_I(p, o, s) BOOST_PP_IF(p(100, s), BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, o(100, s))
+# define BOOST_PP_WHILE_100_I(p, o, s) BOOST_PP_IF(p(101, s), BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, o(101, s))
+# define BOOST_PP_WHILE_101_I(p, o, s) BOOST_PP_IF(p(102, s), BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, o(102, s))
+# define BOOST_PP_WHILE_102_I(p, o, s) BOOST_PP_IF(p(103, s), BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, o(103, s))
+# define BOOST_PP_WHILE_103_I(p, o, s) BOOST_PP_IF(p(104, s), BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, o(104, s))
+# define BOOST_PP_WHILE_104_I(p, o, s) BOOST_PP_IF(p(105, s), BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, o(105, s))
+# define BOOST_PP_WHILE_105_I(p, o, s) BOOST_PP_IF(p(106, s), BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, o(106, s))
+# define BOOST_PP_WHILE_106_I(p, o, s) BOOST_PP_IF(p(107, s), BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, o(107, s))
+# define BOOST_PP_WHILE_107_I(p, o, s) BOOST_PP_IF(p(108, s), BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, o(108, s))
+# define BOOST_PP_WHILE_108_I(p, o, s) BOOST_PP_IF(p(109, s), BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, o(109, s))
+# define BOOST_PP_WHILE_109_I(p, o, s) BOOST_PP_IF(p(110, s), BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, o(110, s))
+# define BOOST_PP_WHILE_110_I(p, o, s) BOOST_PP_IF(p(111, s), BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, o(111, s))
+# define BOOST_PP_WHILE_111_I(p, o, s) BOOST_PP_IF(p(112, s), BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, o(112, s))
+# define BOOST_PP_WHILE_112_I(p, o, s) BOOST_PP_IF(p(113, s), BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, o(113, s))
+# define BOOST_PP_WHILE_113_I(p, o, s) BOOST_PP_IF(p(114, s), BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, o(114, s))
+# define BOOST_PP_WHILE_114_I(p, o, s) BOOST_PP_IF(p(115, s), BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, o(115, s))
+# define BOOST_PP_WHILE_115_I(p, o, s) BOOST_PP_IF(p(116, s), BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, o(116, s))
+# define BOOST_PP_WHILE_116_I(p, o, s) BOOST_PP_IF(p(117, s), BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, o(117, s))
+# define BOOST_PP_WHILE_117_I(p, o, s) BOOST_PP_IF(p(118, s), BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, o(118, s))
+# define BOOST_PP_WHILE_118_I(p, o, s) BOOST_PP_IF(p(119, s), BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, o(119, s))
+# define BOOST_PP_WHILE_119_I(p, o, s) BOOST_PP_IF(p(120, s), BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, o(120, s))
+# define BOOST_PP_WHILE_120_I(p, o, s) BOOST_PP_IF(p(121, s), BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, o(121, s))
+# define BOOST_PP_WHILE_121_I(p, o, s) BOOST_PP_IF(p(122, s), BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, o(122, s))
+# define BOOST_PP_WHILE_122_I(p, o, s) BOOST_PP_IF(p(123, s), BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, o(123, s))
+# define BOOST_PP_WHILE_123_I(p, o, s) BOOST_PP_IF(p(124, s), BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, o(124, s))
+# define BOOST_PP_WHILE_124_I(p, o, s) BOOST_PP_IF(p(125, s), BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, o(125, s))
+# define BOOST_PP_WHILE_125_I(p, o, s) BOOST_PP_IF(p(126, s), BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, o(126, s))
+# define BOOST_PP_WHILE_126_I(p, o, s) BOOST_PP_IF(p(127, s), BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, o(127, s))
+# define BOOST_PP_WHILE_127_I(p, o, s) BOOST_PP_IF(p(128, s), BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, o(128, s))
+# define BOOST_PP_WHILE_128_I(p, o, s) BOOST_PP_IF(p(129, s), BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, o(129, s))
+# define BOOST_PP_WHILE_129_I(p, o, s) BOOST_PP_IF(p(130, s), BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, o(130, s))
+# define BOOST_PP_WHILE_130_I(p, o, s) BOOST_PP_IF(p(131, s), BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, o(131, s))
+# define BOOST_PP_WHILE_131_I(p, o, s) BOOST_PP_IF(p(132, s), BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, o(132, s))
+# define BOOST_PP_WHILE_132_I(p, o, s) BOOST_PP_IF(p(133, s), BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, o(133, s))
+# define BOOST_PP_WHILE_133_I(p, o, s) BOOST_PP_IF(p(134, s), BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, o(134, s))
+# define BOOST_PP_WHILE_134_I(p, o, s) BOOST_PP_IF(p(135, s), BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, o(135, s))
+# define BOOST_PP_WHILE_135_I(p, o, s) BOOST_PP_IF(p(136, s), BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, o(136, s))
+# define BOOST_PP_WHILE_136_I(p, o, s) BOOST_PP_IF(p(137, s), BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, o(137, s))
+# define BOOST_PP_WHILE_137_I(p, o, s) BOOST_PP_IF(p(138, s), BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, o(138, s))
+# define BOOST_PP_WHILE_138_I(p, o, s) BOOST_PP_IF(p(139, s), BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, o(139, s))
+# define BOOST_PP_WHILE_139_I(p, o, s) BOOST_PP_IF(p(140, s), BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, o(140, s))
+# define BOOST_PP_WHILE_140_I(p, o, s) BOOST_PP_IF(p(141, s), BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, o(141, s))
+# define BOOST_PP_WHILE_141_I(p, o, s) BOOST_PP_IF(p(142, s), BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, o(142, s))
+# define BOOST_PP_WHILE_142_I(p, o, s) BOOST_PP_IF(p(143, s), BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, o(143, s))
+# define BOOST_PP_WHILE_143_I(p, o, s) BOOST_PP_IF(p(144, s), BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, o(144, s))
+# define BOOST_PP_WHILE_144_I(p, o, s) BOOST_PP_IF(p(145, s), BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, o(145, s))
+# define BOOST_PP_WHILE_145_I(p, o, s) BOOST_PP_IF(p(146, s), BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, o(146, s))
+# define BOOST_PP_WHILE_146_I(p, o, s) BOOST_PP_IF(p(147, s), BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, o(147, s))
+# define BOOST_PP_WHILE_147_I(p, o, s) BOOST_PP_IF(p(148, s), BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, o(148, s))
+# define BOOST_PP_WHILE_148_I(p, o, s) BOOST_PP_IF(p(149, s), BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, o(149, s))
+# define BOOST_PP_WHILE_149_I(p, o, s) BOOST_PP_IF(p(150, s), BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, o(150, s))
+# define BOOST_PP_WHILE_150_I(p, o, s) BOOST_PP_IF(p(151, s), BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, o(151, s))
+# define BOOST_PP_WHILE_151_I(p, o, s) BOOST_PP_IF(p(152, s), BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, o(152, s))
+# define BOOST_PP_WHILE_152_I(p, o, s) BOOST_PP_IF(p(153, s), BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, o(153, s))
+# define BOOST_PP_WHILE_153_I(p, o, s) BOOST_PP_IF(p(154, s), BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, o(154, s))
+# define BOOST_PP_WHILE_154_I(p, o, s) BOOST_PP_IF(p(155, s), BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, o(155, s))
+# define BOOST_PP_WHILE_155_I(p, o, s) BOOST_PP_IF(p(156, s), BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, o(156, s))
+# define BOOST_PP_WHILE_156_I(p, o, s) BOOST_PP_IF(p(157, s), BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, o(157, s))
+# define BOOST_PP_WHILE_157_I(p, o, s) BOOST_PP_IF(p(158, s), BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, o(158, s))
+# define BOOST_PP_WHILE_158_I(p, o, s) BOOST_PP_IF(p(159, s), BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, o(159, s))
+# define BOOST_PP_WHILE_159_I(p, o, s) BOOST_PP_IF(p(160, s), BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, o(160, s))
+# define BOOST_PP_WHILE_160_I(p, o, s) BOOST_PP_IF(p(161, s), BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, o(161, s))
+# define BOOST_PP_WHILE_161_I(p, o, s) BOOST_PP_IF(p(162, s), BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, o(162, s))
+# define BOOST_PP_WHILE_162_I(p, o, s) BOOST_PP_IF(p(163, s), BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, o(163, s))
+# define BOOST_PP_WHILE_163_I(p, o, s) BOOST_PP_IF(p(164, s), BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, o(164, s))
+# define BOOST_PP_WHILE_164_I(p, o, s) BOOST_PP_IF(p(165, s), BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, o(165, s))
+# define BOOST_PP_WHILE_165_I(p, o, s) BOOST_PP_IF(p(166, s), BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, o(166, s))
+# define BOOST_PP_WHILE_166_I(p, o, s) BOOST_PP_IF(p(167, s), BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, o(167, s))
+# define BOOST_PP_WHILE_167_I(p, o, s) BOOST_PP_IF(p(168, s), BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, o(168, s))
+# define BOOST_PP_WHILE_168_I(p, o, s) BOOST_PP_IF(p(169, s), BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, o(169, s))
+# define BOOST_PP_WHILE_169_I(p, o, s) BOOST_PP_IF(p(170, s), BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, o(170, s))
+# define BOOST_PP_WHILE_170_I(p, o, s) BOOST_PP_IF(p(171, s), BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, o(171, s))
+# define BOOST_PP_WHILE_171_I(p, o, s) BOOST_PP_IF(p(172, s), BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, o(172, s))
+# define BOOST_PP_WHILE_172_I(p, o, s) BOOST_PP_IF(p(173, s), BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, o(173, s))
+# define BOOST_PP_WHILE_173_I(p, o, s) BOOST_PP_IF(p(174, s), BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, o(174, s))
+# define BOOST_PP_WHILE_174_I(p, o, s) BOOST_PP_IF(p(175, s), BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, o(175, s))
+# define BOOST_PP_WHILE_175_I(p, o, s) BOOST_PP_IF(p(176, s), BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, o(176, s))
+# define BOOST_PP_WHILE_176_I(p, o, s) BOOST_PP_IF(p(177, s), BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, o(177, s))
+# define BOOST_PP_WHILE_177_I(p, o, s) BOOST_PP_IF(p(178, s), BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, o(178, s))
+# define BOOST_PP_WHILE_178_I(p, o, s) BOOST_PP_IF(p(179, s), BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, o(179, s))
+# define BOOST_PP_WHILE_179_I(p, o, s) BOOST_PP_IF(p(180, s), BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, o(180, s))
+# define BOOST_PP_WHILE_180_I(p, o, s) BOOST_PP_IF(p(181, s), BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, o(181, s))
+# define BOOST_PP_WHILE_181_I(p, o, s) BOOST_PP_IF(p(182, s), BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, o(182, s))
+# define BOOST_PP_WHILE_182_I(p, o, s) BOOST_PP_IF(p(183, s), BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, o(183, s))
+# define BOOST_PP_WHILE_183_I(p, o, s) BOOST_PP_IF(p(184, s), BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, o(184, s))
+# define BOOST_PP_WHILE_184_I(p, o, s) BOOST_PP_IF(p(185, s), BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, o(185, s))
+# define BOOST_PP_WHILE_185_I(p, o, s) BOOST_PP_IF(p(186, s), BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, o(186, s))
+# define BOOST_PP_WHILE_186_I(p, o, s) BOOST_PP_IF(p(187, s), BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, o(187, s))
+# define BOOST_PP_WHILE_187_I(p, o, s) BOOST_PP_IF(p(188, s), BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, o(188, s))
+# define BOOST_PP_WHILE_188_I(p, o, s) BOOST_PP_IF(p(189, s), BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, o(189, s))
+# define BOOST_PP_WHILE_189_I(p, o, s) BOOST_PP_IF(p(190, s), BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, o(190, s))
+# define BOOST_PP_WHILE_190_I(p, o, s) BOOST_PP_IF(p(191, s), BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, o(191, s))
+# define BOOST_PP_WHILE_191_I(p, o, s) BOOST_PP_IF(p(192, s), BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, o(192, s))
+# define BOOST_PP_WHILE_192_I(p, o, s) BOOST_PP_IF(p(193, s), BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, o(193, s))
+# define BOOST_PP_WHILE_193_I(p, o, s) BOOST_PP_IF(p(194, s), BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, o(194, s))
+# define BOOST_PP_WHILE_194_I(p, o, s) BOOST_PP_IF(p(195, s), BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, o(195, s))
+# define BOOST_PP_WHILE_195_I(p, o, s) BOOST_PP_IF(p(196, s), BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, o(196, s))
+# define BOOST_PP_WHILE_196_I(p, o, s) BOOST_PP_IF(p(197, s), BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, o(197, s))
+# define BOOST_PP_WHILE_197_I(p, o, s) BOOST_PP_IF(p(198, s), BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, o(198, s))
+# define BOOST_PP_WHILE_198_I(p, o, s) BOOST_PP_IF(p(199, s), BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, o(199, s))
+# define BOOST_PP_WHILE_199_I(p, o, s) BOOST_PP_IF(p(200, s), BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, o(200, s))
+# define BOOST_PP_WHILE_200_I(p, o, s) BOOST_PP_IF(p(201, s), BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, o(201, s))
+# define BOOST_PP_WHILE_201_I(p, o, s) BOOST_PP_IF(p(202, s), BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, o(202, s))
+# define BOOST_PP_WHILE_202_I(p, o, s) BOOST_PP_IF(p(203, s), BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, o(203, s))
+# define BOOST_PP_WHILE_203_I(p, o, s) BOOST_PP_IF(p(204, s), BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, o(204, s))
+# define BOOST_PP_WHILE_204_I(p, o, s) BOOST_PP_IF(p(205, s), BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, o(205, s))
+# define BOOST_PP_WHILE_205_I(p, o, s) BOOST_PP_IF(p(206, s), BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, o(206, s))
+# define BOOST_PP_WHILE_206_I(p, o, s) BOOST_PP_IF(p(207, s), BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, o(207, s))
+# define BOOST_PP_WHILE_207_I(p, o, s) BOOST_PP_IF(p(208, s), BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, o(208, s))
+# define BOOST_PP_WHILE_208_I(p, o, s) BOOST_PP_IF(p(209, s), BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, o(209, s))
+# define BOOST_PP_WHILE_209_I(p, o, s) BOOST_PP_IF(p(210, s), BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, o(210, s))
+# define BOOST_PP_WHILE_210_I(p, o, s) BOOST_PP_IF(p(211, s), BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, o(211, s))
+# define BOOST_PP_WHILE_211_I(p, o, s) BOOST_PP_IF(p(212, s), BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, o(212, s))
+# define BOOST_PP_WHILE_212_I(p, o, s) BOOST_PP_IF(p(213, s), BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, o(213, s))
+# define BOOST_PP_WHILE_213_I(p, o, s) BOOST_PP_IF(p(214, s), BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, o(214, s))
+# define BOOST_PP_WHILE_214_I(p, o, s) BOOST_PP_IF(p(215, s), BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, o(215, s))
+# define BOOST_PP_WHILE_215_I(p, o, s) BOOST_PP_IF(p(216, s), BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, o(216, s))
+# define BOOST_PP_WHILE_216_I(p, o, s) BOOST_PP_IF(p(217, s), BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, o(217, s))
+# define BOOST_PP_WHILE_217_I(p, o, s) BOOST_PP_IF(p(218, s), BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, o(218, s))
+# define BOOST_PP_WHILE_218_I(p, o, s) BOOST_PP_IF(p(219, s), BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, o(219, s))
+# define BOOST_PP_WHILE_219_I(p, o, s) BOOST_PP_IF(p(220, s), BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, o(220, s))
+# define BOOST_PP_WHILE_220_I(p, o, s) BOOST_PP_IF(p(221, s), BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, o(221, s))
+# define BOOST_PP_WHILE_221_I(p, o, s) BOOST_PP_IF(p(222, s), BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, o(222, s))
+# define BOOST_PP_WHILE_222_I(p, o, s) BOOST_PP_IF(p(223, s), BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, o(223, s))
+# define BOOST_PP_WHILE_223_I(p, o, s) BOOST_PP_IF(p(224, s), BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, o(224, s))
+# define BOOST_PP_WHILE_224_I(p, o, s) BOOST_PP_IF(p(225, s), BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, o(225, s))
+# define BOOST_PP_WHILE_225_I(p, o, s) BOOST_PP_IF(p(226, s), BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, o(226, s))
+# define BOOST_PP_WHILE_226_I(p, o, s) BOOST_PP_IF(p(227, s), BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, o(227, s))
+# define BOOST_PP_WHILE_227_I(p, o, s) BOOST_PP_IF(p(228, s), BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, o(228, s))
+# define BOOST_PP_WHILE_228_I(p, o, s) BOOST_PP_IF(p(229, s), BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, o(229, s))
+# define BOOST_PP_WHILE_229_I(p, o, s) BOOST_PP_IF(p(230, s), BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, o(230, s))
+# define BOOST_PP_WHILE_230_I(p, o, s) BOOST_PP_IF(p(231, s), BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, o(231, s))
+# define BOOST_PP_WHILE_231_I(p, o, s) BOOST_PP_IF(p(232, s), BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, o(232, s))
+# define BOOST_PP_WHILE_232_I(p, o, s) BOOST_PP_IF(p(233, s), BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, o(233, s))
+# define BOOST_PP_WHILE_233_I(p, o, s) BOOST_PP_IF(p(234, s), BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, o(234, s))
+# define BOOST_PP_WHILE_234_I(p, o, s) BOOST_PP_IF(p(235, s), BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, o(235, s))
+# define BOOST_PP_WHILE_235_I(p, o, s) BOOST_PP_IF(p(236, s), BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, o(236, s))
+# define BOOST_PP_WHILE_236_I(p, o, s) BOOST_PP_IF(p(237, s), BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, o(237, s))
+# define BOOST_PP_WHILE_237_I(p, o, s) BOOST_PP_IF(p(238, s), BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, o(238, s))
+# define BOOST_PP_WHILE_238_I(p, o, s) BOOST_PP_IF(p(239, s), BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, o(239, s))
+# define BOOST_PP_WHILE_239_I(p, o, s) BOOST_PP_IF(p(240, s), BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, o(240, s))
+# define BOOST_PP_WHILE_240_I(p, o, s) BOOST_PP_IF(p(241, s), BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, o(241, s))
+# define BOOST_PP_WHILE_241_I(p, o, s) BOOST_PP_IF(p(242, s), BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, o(242, s))
+# define BOOST_PP_WHILE_242_I(p, o, s) BOOST_PP_IF(p(243, s), BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, o(243, s))
+# define BOOST_PP_WHILE_243_I(p, o, s) BOOST_PP_IF(p(244, s), BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, o(244, s))
+# define BOOST_PP_WHILE_244_I(p, o, s) BOOST_PP_IF(p(245, s), BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, o(245, s))
+# define BOOST_PP_WHILE_245_I(p, o, s) BOOST_PP_IF(p(246, s), BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, o(246, s))
+# define BOOST_PP_WHILE_246_I(p, o, s) BOOST_PP_IF(p(247, s), BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, o(247, s))
+# define BOOST_PP_WHILE_247_I(p, o, s) BOOST_PP_IF(p(248, s), BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, o(248, s))
+# define BOOST_PP_WHILE_248_I(p, o, s) BOOST_PP_IF(p(249, s), BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, o(249, s))
+# define BOOST_PP_WHILE_249_I(p, o, s) BOOST_PP_IF(p(250, s), BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, o(250, s))
+# define BOOST_PP_WHILE_250_I(p, o, s) BOOST_PP_IF(p(251, s), BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, o(251, s))
+# define BOOST_PP_WHILE_251_I(p, o, s) BOOST_PP_IF(p(252, s), BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, o(252, s))
+# define BOOST_PP_WHILE_252_I(p, o, s) BOOST_PP_IF(p(253, s), BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, o(253, s))
+# define BOOST_PP_WHILE_253_I(p, o, s) BOOST_PP_IF(p(254, s), BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, o(254, s))
+# define BOOST_PP_WHILE_254_I(p, o, s) BOOST_PP_IF(p(255, s), BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, o(255, s))
+# define BOOST_PP_WHILE_255_I(p, o, s) BOOST_PP_IF(p(256, s), BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, o(256, s))
+# define BOOST_PP_WHILE_256_I(p, o, s) BOOST_PP_IF(p(257, s), BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, o(257, s))
+#
+# endif
index ad6f6f63e1c12fc62ba55cec9c83ce39fe03b405..d09983e032f8cfcaeb6bfe9105a61ea34f9fd0fe 100644 (file)
@@ -1,18 +1,18 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_DEBUG_HPP\r
-# define BOOST_PREPROCESSOR_DEBUG_HPP\r
-#\r
-# include <boost/preprocessor/debug/assert.hpp>\r
-# include <boost/preprocessor/debug/line.hpp>\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_DEBUG_HPP
+# define BOOST_PREPROCESSOR_DEBUG_HPP
+#
+# include <boost/preprocessor/debug/assert.hpp>
+# include <boost/preprocessor/debug/line.hpp>
+#
+# endif
index 66e333e2a8b5e1038fd3be17737df9d85dc52a2f..3380c7028a5dfd4daf5128acd28b64b8f2750ecf 100644 (file)
@@ -1,44 +1,44 @@
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_DEBUG_ASSERT_HPP\r
-# define BOOST_PREPROCESSOR_DEBUG_ASSERT_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/control/expr_iif.hpp>\r
-# include <boost/preprocessor/control/iif.hpp>\r
-# include <boost/preprocessor/logical/not.hpp>\r
-# include <boost/preprocessor/tuple/eat.hpp>\r
-#\r
-# /* BOOST_PP_ASSERT */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ASSERT BOOST_PP_ASSERT_D\r
-# else\r
-#    define BOOST_PP_ASSERT(cond) BOOST_PP_ASSERT_D(cond)\r
-# endif\r
-#\r
-# define BOOST_PP_ASSERT_D(cond) BOOST_PP_IIF(BOOST_PP_NOT(cond), BOOST_PP_ASSERT_ERROR, BOOST_PP_TUPLE_EAT_1)(...)\r
-# define BOOST_PP_ASSERT_ERROR(x, y, z)\r
-#\r
-# /* BOOST_PP_ASSERT_MSG */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ASSERT_MSG BOOST_PP_ASSERT_MSG_D\r
-# else\r
-#    define BOOST_PP_ASSERT_MSG(cond, msg) BOOST_PP_ASSERT_MSG_D(cond, msg)\r
-# endif\r
-#\r
-# define BOOST_PP_ASSERT_MSG_D(cond, msg) BOOST_PP_EXPR_IIF(BOOST_PP_NOT(cond), msg)\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_DEBUG_ASSERT_HPP
+# define BOOST_PREPROCESSOR_DEBUG_ASSERT_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/control/expr_iif.hpp>
+# include <boost/preprocessor/control/iif.hpp>
+# include <boost/preprocessor/logical/not.hpp>
+# include <boost/preprocessor/tuple/eat.hpp>
+#
+# /* BOOST_PP_ASSERT */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ASSERT BOOST_PP_ASSERT_D
+# else
+#    define BOOST_PP_ASSERT(cond) BOOST_PP_ASSERT_D(cond)
+# endif
+#
+# define BOOST_PP_ASSERT_D(cond) BOOST_PP_IIF(BOOST_PP_NOT(cond), BOOST_PP_ASSERT_ERROR, BOOST_PP_TUPLE_EAT_1)(...)
+# define BOOST_PP_ASSERT_ERROR(x, y, z)
+#
+# /* BOOST_PP_ASSERT_MSG */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ASSERT_MSG BOOST_PP_ASSERT_MSG_D
+# else
+#    define BOOST_PP_ASSERT_MSG(cond, msg) BOOST_PP_ASSERT_MSG_D(cond, msg)
+# endif
+#
+# define BOOST_PP_ASSERT_MSG_D(cond, msg) BOOST_PP_EXPR_IIF(BOOST_PP_NOT(cond), msg)
+#
+# endif
index ac96c2cf25fe84c2dfc4989b10c3f9859e518a3d..4dd1013c1a8adc46e588f9bc925beb94490a7411 100644 (file)
@@ -1,35 +1,35 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_DEBUG_LINE_HPP\r
-# define BOOST_PREPROCESSOR_DEBUG_LINE_HPP\r
-#\r
-# include <boost/preprocessor/cat.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/iteration/iterate.hpp>\r
-# include <boost/preprocessor/stringize.hpp>\r
-#\r
-# /* BOOST_PP_LINE */\r
-#\r
-# if BOOST_PP_CONFIG_EXTENDED_LINE_INFO\r
-#    define BOOST_PP_LINE(line, file) line BOOST_PP_CAT(BOOST_PP_LINE_, BOOST_PP_IS_ITERATING)(file)\r
-#    define BOOST_PP_LINE_BOOST_PP_IS_ITERATING(file) #file\r
-#    define BOOST_PP_LINE_1(file) BOOST_PP_STRINGIZE(file BOOST_PP_CAT(BOOST_PP_LINE_I_, BOOST_PP_ITERATION_DEPTH())())\r
-#    define BOOST_PP_LINE_I_1() [BOOST_PP_FRAME_ITERATION(1)]\r
-#    define BOOST_PP_LINE_I_2() BOOST_PP_LINE_I_1()[BOOST_PP_FRAME_ITERATION(2)]\r
-#    define BOOST_PP_LINE_I_3() BOOST_PP_LINE_I_2()[BOOST_PP_FRAME_ITERATION(3)]\r
-#    define BOOST_PP_LINE_I_4() BOOST_PP_LINE_I_3()[BOOST_PP_FRAME_ITERATION(4)]\r
-#    define BOOST_PP_LINE_I_5() BOOST_PP_LINE_I_4()[BOOST_PP_FRAME_ITERATION(5)]\r
-# else\r
-#    define BOOST_PP_LINE(line, file) line __FILE__\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_DEBUG_LINE_HPP
+# define BOOST_PREPROCESSOR_DEBUG_LINE_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/iteration/iterate.hpp>
+# include <boost/preprocessor/stringize.hpp>
+#
+# /* BOOST_PP_LINE */
+#
+# if BOOST_PP_CONFIG_EXTENDED_LINE_INFO
+#    define BOOST_PP_LINE(line, file) line BOOST_PP_CAT(BOOST_PP_LINE_, BOOST_PP_IS_ITERATING)(file)
+#    define BOOST_PP_LINE_BOOST_PP_IS_ITERATING(file) #file
+#    define BOOST_PP_LINE_1(file) BOOST_PP_STRINGIZE(file BOOST_PP_CAT(BOOST_PP_LINE_I_, BOOST_PP_ITERATION_DEPTH())())
+#    define BOOST_PP_LINE_I_1() [BOOST_PP_FRAME_ITERATION(1)]
+#    define BOOST_PP_LINE_I_2() BOOST_PP_LINE_I_1()[BOOST_PP_FRAME_ITERATION(2)]
+#    define BOOST_PP_LINE_I_3() BOOST_PP_LINE_I_2()[BOOST_PP_FRAME_ITERATION(3)]
+#    define BOOST_PP_LINE_I_4() BOOST_PP_LINE_I_3()[BOOST_PP_FRAME_ITERATION(4)]
+#    define BOOST_PP_LINE_I_5() BOOST_PP_LINE_I_4()[BOOST_PP_FRAME_ITERATION(5)]
+# else
+#    define BOOST_PP_LINE(line, file) line __FILE__
+# endif
+#
+# endif
index dda0ba9f784cb950e81c9e670589e54bf0535455..37fbe04157c56a56a062f7cbfde8ec8bae81aeb0 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP\r
-# define BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP\r
-#\r
-# include <boost/preprocessor/control/iif.hpp>\r
-#\r
-# /* BOOST_PP_AUTO_REC */\r
-#\r
-# define BOOST_PP_AUTO_REC(pred, n) BOOST_PP_NODE_ENTRY_ ## n(pred)\r
-#\r
-# define BOOST_PP_NODE_ENTRY_256(p) BOOST_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p)\r
-# define BOOST_PP_NODE_ENTRY_128(p) BOOST_PP_NODE_64(p)(p)(p)(p)(p)(p)(p)\r
-# define BOOST_PP_NODE_ENTRY_64(p) BOOST_PP_NODE_32(p)(p)(p)(p)(p)(p)\r
-# define BOOST_PP_NODE_ENTRY_32(p) BOOST_PP_NODE_16(p)(p)(p)(p)(p)\r
-# define BOOST_PP_NODE_ENTRY_16(p) BOOST_PP_NODE_8(p)(p)(p)(p)\r
-# define BOOST_PP_NODE_ENTRY_8(p) BOOST_PP_NODE_4(p)(p)(p)\r
-# define BOOST_PP_NODE_ENTRY_4(p) BOOST_PP_NODE_2(p)(p)\r
-# define BOOST_PP_NODE_ENTRY_2(p) BOOST_PP_NODE_1(p)\r
-#\r
-# define BOOST_PP_NODE_128(p) BOOST_PP_IIF(p##(128), BOOST_PP_NODE_64, BOOST_PP_NODE_192)\r
-#    define BOOST_PP_NODE_64(p) BOOST_PP_IIF(p##(64), BOOST_PP_NODE_32, BOOST_PP_NODE_96)\r
-#        define BOOST_PP_NODE_32(p) BOOST_PP_IIF(p##(32), BOOST_PP_NODE_16, BOOST_PP_NODE_48)\r
-#            define BOOST_PP_NODE_16(p) BOOST_PP_IIF(p##(16), BOOST_PP_NODE_8, BOOST_PP_NODE_24)\r
-#                define BOOST_PP_NODE_8(p) BOOST_PP_IIF(p##(8), BOOST_PP_NODE_4, BOOST_PP_NODE_12)\r
-#                    define BOOST_PP_NODE_4(p) BOOST_PP_IIF(p##(4), BOOST_PP_NODE_2, BOOST_PP_NODE_6)\r
-#                        define BOOST_PP_NODE_2(p) BOOST_PP_IIF(p##(2), BOOST_PP_NODE_1, BOOST_PP_NODE_3)\r
-#                            define BOOST_PP_NODE_1(p) BOOST_PP_IIF(p##(1), 1, 2)\r
-#                            define BOOST_PP_NODE_3(p) BOOST_PP_IIF(p##(3), 3, 4)\r
-#                        define BOOST_PP_NODE_6(p) BOOST_PP_IIF(p##(6), BOOST_PP_NODE_5, BOOST_PP_NODE_7)\r
-#                            define BOOST_PP_NODE_5(p) BOOST_PP_IIF(p##(5), 5, 6)\r
-#                            define BOOST_PP_NODE_7(p) BOOST_PP_IIF(p##(7), 7, 8)\r
-#                    define BOOST_PP_NODE_12(p) BOOST_PP_IIF(p##(12), BOOST_PP_NODE_10, BOOST_PP_NODE_14)\r
-#                        define BOOST_PP_NODE_10(p) BOOST_PP_IIF(p##(10), BOOST_PP_NODE_9, BOOST_PP_NODE_11)\r
-#                            define BOOST_PP_NODE_9(p) BOOST_PP_IIF(p##(9), 9, 10)\r
-#                            define BOOST_PP_NODE_11(p) BOOST_PP_IIF(p##(11), 11, 12)\r
-#                        define BOOST_PP_NODE_14(p) BOOST_PP_IIF(p##(14), BOOST_PP_NODE_13, BOOST_PP_NODE_15)\r
-#                            define BOOST_PP_NODE_13(p) BOOST_PP_IIF(p##(13), 13, 14)\r
-#                            define BOOST_PP_NODE_15(p) BOOST_PP_IIF(p##(15), 15, 16)\r
-#                define BOOST_PP_NODE_24(p) BOOST_PP_IIF(p##(24), BOOST_PP_NODE_20, BOOST_PP_NODE_28)\r
-#                    define BOOST_PP_NODE_20(p) BOOST_PP_IIF(p##(20), BOOST_PP_NODE_18, BOOST_PP_NODE_22)\r
-#                        define BOOST_PP_NODE_18(p) BOOST_PP_IIF(p##(18), BOOST_PP_NODE_17, BOOST_PP_NODE_19)\r
-#                            define BOOST_PP_NODE_17(p) BOOST_PP_IIF(p##(17), 17, 18)\r
-#                            define BOOST_PP_NODE_19(p) BOOST_PP_IIF(p##(19), 19, 20)\r
-#                        define BOOST_PP_NODE_22(p) BOOST_PP_IIF(p##(22), BOOST_PP_NODE_21, BOOST_PP_NODE_23)\r
-#                            define BOOST_PP_NODE_21(p) BOOST_PP_IIF(p##(21), 21, 22)\r
-#                            define BOOST_PP_NODE_23(p) BOOST_PP_IIF(p##(23), 23, 24)\r
-#                    define BOOST_PP_NODE_28(p) BOOST_PP_IIF(p##(28), BOOST_PP_NODE_26, BOOST_PP_NODE_30)\r
-#                        define BOOST_PP_NODE_26(p) BOOST_PP_IIF(p##(26), BOOST_PP_NODE_25, BOOST_PP_NODE_27)\r
-#                            define BOOST_PP_NODE_25(p) BOOST_PP_IIF(p##(25), 25, 26)\r
-#                            define BOOST_PP_NODE_27(p) BOOST_PP_IIF(p##(27), 27, 28)\r
-#                        define BOOST_PP_NODE_30(p) BOOST_PP_IIF(p##(30), BOOST_PP_NODE_29, BOOST_PP_NODE_31)\r
-#                            define BOOST_PP_NODE_29(p) BOOST_PP_IIF(p##(29), 29, 30)\r
-#                            define BOOST_PP_NODE_31(p) BOOST_PP_IIF(p##(31), 31, 32)\r
-#            define BOOST_PP_NODE_48(p) BOOST_PP_IIF(p##(48), BOOST_PP_NODE_40, BOOST_PP_NODE_56)\r
-#                define BOOST_PP_NODE_40(p) BOOST_PP_IIF(p##(40), BOOST_PP_NODE_36, BOOST_PP_NODE_44)\r
-#                    define BOOST_PP_NODE_36(p) BOOST_PP_IIF(p##(36), BOOST_PP_NODE_34, BOOST_PP_NODE_38)\r
-#                        define BOOST_PP_NODE_34(p) BOOST_PP_IIF(p##(34), BOOST_PP_NODE_33, BOOST_PP_NODE_35)\r
-#                            define BOOST_PP_NODE_33(p) BOOST_PP_IIF(p##(33), 33, 34)\r
-#                            define BOOST_PP_NODE_35(p) BOOST_PP_IIF(p##(35), 35, 36)\r
-#                        define BOOST_PP_NODE_38(p) BOOST_PP_IIF(p##(38), BOOST_PP_NODE_37, BOOST_PP_NODE_39)\r
-#                            define BOOST_PP_NODE_37(p) BOOST_PP_IIF(p##(37), 37, 38)\r
-#                            define BOOST_PP_NODE_39(p) BOOST_PP_IIF(p##(39), 39, 40)\r
-#                    define BOOST_PP_NODE_44(p) BOOST_PP_IIF(p##(44), BOOST_PP_NODE_42, BOOST_PP_NODE_46)\r
-#                        define BOOST_PP_NODE_42(p) BOOST_PP_IIF(p##(42), BOOST_PP_NODE_41, BOOST_PP_NODE_43)\r
-#                            define BOOST_PP_NODE_41(p) BOOST_PP_IIF(p##(41), 41, 42)\r
-#                            define BOOST_PP_NODE_43(p) BOOST_PP_IIF(p##(43), 43, 44)\r
-#                        define BOOST_PP_NODE_46(p) BOOST_PP_IIF(p##(46), BOOST_PP_NODE_45, BOOST_PP_NODE_47)\r
-#                            define BOOST_PP_NODE_45(p) BOOST_PP_IIF(p##(45), 45, 46)\r
-#                            define BOOST_PP_NODE_47(p) BOOST_PP_IIF(p##(47), 47, 48)\r
-#                define BOOST_PP_NODE_56(p) BOOST_PP_IIF(p##(56), BOOST_PP_NODE_52, BOOST_PP_NODE_60)\r
-#                    define BOOST_PP_NODE_52(p) BOOST_PP_IIF(p##(52), BOOST_PP_NODE_50, BOOST_PP_NODE_54)\r
-#                        define BOOST_PP_NODE_50(p) BOOST_PP_IIF(p##(50), BOOST_PP_NODE_49, BOOST_PP_NODE_51)\r
-#                            define BOOST_PP_NODE_49(p) BOOST_PP_IIF(p##(49), 49, 50)\r
-#                            define BOOST_PP_NODE_51(p) BOOST_PP_IIF(p##(51), 51, 52)\r
-#                        define BOOST_PP_NODE_54(p) BOOST_PP_IIF(p##(54), BOOST_PP_NODE_53, BOOST_PP_NODE_55)\r
-#                            define BOOST_PP_NODE_53(p) BOOST_PP_IIF(p##(53), 53, 54)\r
-#                            define BOOST_PP_NODE_55(p) BOOST_PP_IIF(p##(55), 55, 56)\r
-#                    define BOOST_PP_NODE_60(p) BOOST_PP_IIF(p##(60), BOOST_PP_NODE_58, BOOST_PP_NODE_62)\r
-#                        define BOOST_PP_NODE_58(p) BOOST_PP_IIF(p##(58), BOOST_PP_NODE_57, BOOST_PP_NODE_59)\r
-#                            define BOOST_PP_NODE_57(p) BOOST_PP_IIF(p##(57), 57, 58)\r
-#                            define BOOST_PP_NODE_59(p) BOOST_PP_IIF(p##(59), 59, 60)\r
-#                        define BOOST_PP_NODE_62(p) BOOST_PP_IIF(p##(62), BOOST_PP_NODE_61, BOOST_PP_NODE_63)\r
-#                            define BOOST_PP_NODE_61(p) BOOST_PP_IIF(p##(61), 61, 62)\r
-#                            define BOOST_PP_NODE_63(p) BOOST_PP_IIF(p##(63), 63, 64)\r
-#        define BOOST_PP_NODE_96(p) BOOST_PP_IIF(p##(96), BOOST_PP_NODE_80, BOOST_PP_NODE_112)\r
-#            define BOOST_PP_NODE_80(p) BOOST_PP_IIF(p##(80), BOOST_PP_NODE_72, BOOST_PP_NODE_88)\r
-#                define BOOST_PP_NODE_72(p) BOOST_PP_IIF(p##(72), BOOST_PP_NODE_68, BOOST_PP_NODE_76)\r
-#                    define BOOST_PP_NODE_68(p) BOOST_PP_IIF(p##(68), BOOST_PP_NODE_66, BOOST_PP_NODE_70)\r
-#                        define BOOST_PP_NODE_66(p) BOOST_PP_IIF(p##(66), BOOST_PP_NODE_65, BOOST_PP_NODE_67)\r
-#                            define BOOST_PP_NODE_65(p) BOOST_PP_IIF(p##(65), 65, 66)\r
-#                            define BOOST_PP_NODE_67(p) BOOST_PP_IIF(p##(67), 67, 68)\r
-#                        define BOOST_PP_NODE_70(p) BOOST_PP_IIF(p##(70), BOOST_PP_NODE_69, BOOST_PP_NODE_71)\r
-#                            define BOOST_PP_NODE_69(p) BOOST_PP_IIF(p##(69), 69, 70)\r
-#                            define BOOST_PP_NODE_71(p) BOOST_PP_IIF(p##(71), 71, 72)\r
-#                    define BOOST_PP_NODE_76(p) BOOST_PP_IIF(p##(76), BOOST_PP_NODE_74, BOOST_PP_NODE_78)\r
-#                        define BOOST_PP_NODE_74(p) BOOST_PP_IIF(p##(74), BOOST_PP_NODE_73, BOOST_PP_NODE_75)\r
-#                            define BOOST_PP_NODE_73(p) BOOST_PP_IIF(p##(73), 73, 74)\r
-#                            define BOOST_PP_NODE_75(p) BOOST_PP_IIF(p##(75), 75, 76)\r
-#                        define BOOST_PP_NODE_78(p) BOOST_PP_IIF(p##(78), BOOST_PP_NODE_77, BOOST_PP_NODE_79)\r
-#                            define BOOST_PP_NODE_77(p) BOOST_PP_IIF(p##(77), 77, 78)\r
-#                            define BOOST_PP_NODE_79(p) BOOST_PP_IIF(p##(79), 79, 80)\r
-#                define BOOST_PP_NODE_88(p) BOOST_PP_IIF(p##(88), BOOST_PP_NODE_84, BOOST_PP_NODE_92)\r
-#                    define BOOST_PP_NODE_84(p) BOOST_PP_IIF(p##(84), BOOST_PP_NODE_82, BOOST_PP_NODE_86)\r
-#                        define BOOST_PP_NODE_82(p) BOOST_PP_IIF(p##(82), BOOST_PP_NODE_81, BOOST_PP_NODE_83)\r
-#                            define BOOST_PP_NODE_81(p) BOOST_PP_IIF(p##(81), 81, 82)\r
-#                            define BOOST_PP_NODE_83(p) BOOST_PP_IIF(p##(83), 83, 84)\r
-#                        define BOOST_PP_NODE_86(p) BOOST_PP_IIF(p##(86), BOOST_PP_NODE_85, BOOST_PP_NODE_87)\r
-#                            define BOOST_PP_NODE_85(p) BOOST_PP_IIF(p##(85), 85, 86)\r
-#                            define BOOST_PP_NODE_87(p) BOOST_PP_IIF(p##(87), 87, 88)\r
-#                    define BOOST_PP_NODE_92(p) BOOST_PP_IIF(p##(92), BOOST_PP_NODE_90, BOOST_PP_NODE_94)\r
-#                        define BOOST_PP_NODE_90(p) BOOST_PP_IIF(p##(90), BOOST_PP_NODE_89, BOOST_PP_NODE_91)\r
-#                            define BOOST_PP_NODE_89(p) BOOST_PP_IIF(p##(89), 89, 90)\r
-#                            define BOOST_PP_NODE_91(p) BOOST_PP_IIF(p##(91), 91, 92)\r
-#                        define BOOST_PP_NODE_94(p) BOOST_PP_IIF(p##(94), BOOST_PP_NODE_93, BOOST_PP_NODE_95)\r
-#                            define BOOST_PP_NODE_93(p) BOOST_PP_IIF(p##(93), 93, 94)\r
-#                            define BOOST_PP_NODE_95(p) BOOST_PP_IIF(p##(95), 95, 96)\r
-#            define BOOST_PP_NODE_112(p) BOOST_PP_IIF(p##(112), BOOST_PP_NODE_104, BOOST_PP_NODE_120)\r
-#                define BOOST_PP_NODE_104(p) BOOST_PP_IIF(p##(104), BOOST_PP_NODE_100, BOOST_PP_NODE_108)\r
-#                    define BOOST_PP_NODE_100(p) BOOST_PP_IIF(p##(100), BOOST_PP_NODE_98, BOOST_PP_NODE_102)\r
-#                        define BOOST_PP_NODE_98(p) BOOST_PP_IIF(p##(98), BOOST_PP_NODE_97, BOOST_PP_NODE_99)\r
-#                            define BOOST_PP_NODE_97(p) BOOST_PP_IIF(p##(97), 97, 98)\r
-#                            define BOOST_PP_NODE_99(p) BOOST_PP_IIF(p##(99), 99, 100)\r
-#                        define BOOST_PP_NODE_102(p) BOOST_PP_IIF(p##(102), BOOST_PP_NODE_101, BOOST_PP_NODE_103)\r
-#                            define BOOST_PP_NODE_101(p) BOOST_PP_IIF(p##(101), 101, 102)\r
-#                            define BOOST_PP_NODE_103(p) BOOST_PP_IIF(p##(103), 103, 104)\r
-#                    define BOOST_PP_NODE_108(p) BOOST_PP_IIF(p##(108), BOOST_PP_NODE_106, BOOST_PP_NODE_110)\r
-#                        define BOOST_PP_NODE_106(p) BOOST_PP_IIF(p##(106), BOOST_PP_NODE_105, BOOST_PP_NODE_107)\r
-#                            define BOOST_PP_NODE_105(p) BOOST_PP_IIF(p##(105), 105, 106)\r
-#                            define BOOST_PP_NODE_107(p) BOOST_PP_IIF(p##(107), 107, 108)\r
-#                        define BOOST_PP_NODE_110(p) BOOST_PP_IIF(p##(110), BOOST_PP_NODE_109, BOOST_PP_NODE_111)\r
-#                            define BOOST_PP_NODE_109(p) BOOST_PP_IIF(p##(109), 109, 110)\r
-#                            define BOOST_PP_NODE_111(p) BOOST_PP_IIF(p##(111), 111, 112)\r
-#                define BOOST_PP_NODE_120(p) BOOST_PP_IIF(p##(120), BOOST_PP_NODE_116, BOOST_PP_NODE_124)\r
-#                    define BOOST_PP_NODE_116(p) BOOST_PP_IIF(p##(116), BOOST_PP_NODE_114, BOOST_PP_NODE_118)\r
-#                        define BOOST_PP_NODE_114(p) BOOST_PP_IIF(p##(114), BOOST_PP_NODE_113, BOOST_PP_NODE_115)\r
-#                            define BOOST_PP_NODE_113(p) BOOST_PP_IIF(p##(113), 113, 114)\r
-#                            define BOOST_PP_NODE_115(p) BOOST_PP_IIF(p##(115), 115, 116)\r
-#                        define BOOST_PP_NODE_118(p) BOOST_PP_IIF(p##(118), BOOST_PP_NODE_117, BOOST_PP_NODE_119)\r
-#                            define BOOST_PP_NODE_117(p) BOOST_PP_IIF(p##(117), 117, 118)\r
-#                            define BOOST_PP_NODE_119(p) BOOST_PP_IIF(p##(119), 119, 120)\r
-#                    define BOOST_PP_NODE_124(p) BOOST_PP_IIF(p##(124), BOOST_PP_NODE_122, BOOST_PP_NODE_126)\r
-#                        define BOOST_PP_NODE_122(p) BOOST_PP_IIF(p##(122), BOOST_PP_NODE_121, BOOST_PP_NODE_123)\r
-#                            define BOOST_PP_NODE_121(p) BOOST_PP_IIF(p##(121), 121, 122)\r
-#                            define BOOST_PP_NODE_123(p) BOOST_PP_IIF(p##(123), 123, 124)\r
-#                        define BOOST_PP_NODE_126(p) BOOST_PP_IIF(p##(126), BOOST_PP_NODE_125, BOOST_PP_NODE_127)\r
-#                            define BOOST_PP_NODE_125(p) BOOST_PP_IIF(p##(125), 125, 126)\r
-#                            define BOOST_PP_NODE_127(p) BOOST_PP_IIF(p##(127), 127, 128)\r
-#    define BOOST_PP_NODE_192(p) BOOST_PP_IIF(p##(192), BOOST_PP_NODE_160, BOOST_PP_NODE_224)\r
-#        define BOOST_PP_NODE_160(p) BOOST_PP_IIF(p##(160), BOOST_PP_NODE_144, BOOST_PP_NODE_176)\r
-#            define BOOST_PP_NODE_144(p) BOOST_PP_IIF(p##(144), BOOST_PP_NODE_136, BOOST_PP_NODE_152)\r
-#                define BOOST_PP_NODE_136(p) BOOST_PP_IIF(p##(136), BOOST_PP_NODE_132, BOOST_PP_NODE_140)\r
-#                    define BOOST_PP_NODE_132(p) BOOST_PP_IIF(p##(132), BOOST_PP_NODE_130, BOOST_PP_NODE_134)\r
-#                        define BOOST_PP_NODE_130(p) BOOST_PP_IIF(p##(130), BOOST_PP_NODE_129, BOOST_PP_NODE_131)\r
-#                            define BOOST_PP_NODE_129(p) BOOST_PP_IIF(p##(129), 129, 130)\r
-#                            define BOOST_PP_NODE_131(p) BOOST_PP_IIF(p##(131), 131, 132)\r
-#                        define BOOST_PP_NODE_134(p) BOOST_PP_IIF(p##(134), BOOST_PP_NODE_133, BOOST_PP_NODE_135)\r
-#                            define BOOST_PP_NODE_133(p) BOOST_PP_IIF(p##(133), 133, 134)\r
-#                            define BOOST_PP_NODE_135(p) BOOST_PP_IIF(p##(135), 135, 136)\r
-#                    define BOOST_PP_NODE_140(p) BOOST_PP_IIF(p##(140), BOOST_PP_NODE_138, BOOST_PP_NODE_142)\r
-#                        define BOOST_PP_NODE_138(p) BOOST_PP_IIF(p##(138), BOOST_PP_NODE_137, BOOST_PP_NODE_139)\r
-#                            define BOOST_PP_NODE_137(p) BOOST_PP_IIF(p##(137), 137, 138)\r
-#                            define BOOST_PP_NODE_139(p) BOOST_PP_IIF(p##(139), 139, 140)\r
-#                        define BOOST_PP_NODE_142(p) BOOST_PP_IIF(p##(142), BOOST_PP_NODE_141, BOOST_PP_NODE_143)\r
-#                            define BOOST_PP_NODE_141(p) BOOST_PP_IIF(p##(141), 141, 142)\r
-#                            define BOOST_PP_NODE_143(p) BOOST_PP_IIF(p##(143), 143, 144)\r
-#                define BOOST_PP_NODE_152(p) BOOST_PP_IIF(p##(152), BOOST_PP_NODE_148, BOOST_PP_NODE_156)\r
-#                    define BOOST_PP_NODE_148(p) BOOST_PP_IIF(p##(148), BOOST_PP_NODE_146, BOOST_PP_NODE_150)\r
-#                        define BOOST_PP_NODE_146(p) BOOST_PP_IIF(p##(146), BOOST_PP_NODE_145, BOOST_PP_NODE_147)\r
-#                            define BOOST_PP_NODE_145(p) BOOST_PP_IIF(p##(145), 145, 146)\r
-#                            define BOOST_PP_NODE_147(p) BOOST_PP_IIF(p##(147), 147, 148)\r
-#                        define BOOST_PP_NODE_150(p) BOOST_PP_IIF(p##(150), BOOST_PP_NODE_149, BOOST_PP_NODE_151)\r
-#                            define BOOST_PP_NODE_149(p) BOOST_PP_IIF(p##(149), 149, 150)\r
-#                            define BOOST_PP_NODE_151(p) BOOST_PP_IIF(p##(151), 151, 152)\r
-#                    define BOOST_PP_NODE_156(p) BOOST_PP_IIF(p##(156), BOOST_PP_NODE_154, BOOST_PP_NODE_158)\r
-#                        define BOOST_PP_NODE_154(p) BOOST_PP_IIF(p##(154), BOOST_PP_NODE_153, BOOST_PP_NODE_155)\r
-#                            define BOOST_PP_NODE_153(p) BOOST_PP_IIF(p##(153), 153, 154)\r
-#                            define BOOST_PP_NODE_155(p) BOOST_PP_IIF(p##(155), 155, 156)\r
-#                        define BOOST_PP_NODE_158(p) BOOST_PP_IIF(p##(158), BOOST_PP_NODE_157, BOOST_PP_NODE_159)\r
-#                            define BOOST_PP_NODE_157(p) BOOST_PP_IIF(p##(157), 157, 158)\r
-#                            define BOOST_PP_NODE_159(p) BOOST_PP_IIF(p##(159), 159, 160)\r
-#            define BOOST_PP_NODE_176(p) BOOST_PP_IIF(p##(176), BOOST_PP_NODE_168, BOOST_PP_NODE_184)\r
-#                define BOOST_PP_NODE_168(p) BOOST_PP_IIF(p##(168), BOOST_PP_NODE_164, BOOST_PP_NODE_172)\r
-#                    define BOOST_PP_NODE_164(p) BOOST_PP_IIF(p##(164), BOOST_PP_NODE_162, BOOST_PP_NODE_166)\r
-#                        define BOOST_PP_NODE_162(p) BOOST_PP_IIF(p##(162), BOOST_PP_NODE_161, BOOST_PP_NODE_163)\r
-#                            define BOOST_PP_NODE_161(p) BOOST_PP_IIF(p##(161), 161, 162)\r
-#                            define BOOST_PP_NODE_163(p) BOOST_PP_IIF(p##(163), 163, 164)\r
-#                        define BOOST_PP_NODE_166(p) BOOST_PP_IIF(p##(166), BOOST_PP_NODE_165, BOOST_PP_NODE_167)\r
-#                            define BOOST_PP_NODE_165(p) BOOST_PP_IIF(p##(165), 165, 166)\r
-#                            define BOOST_PP_NODE_167(p) BOOST_PP_IIF(p##(167), 167, 168)\r
-#                    define BOOST_PP_NODE_172(p) BOOST_PP_IIF(p##(172), BOOST_PP_NODE_170, BOOST_PP_NODE_174)\r
-#                        define BOOST_PP_NODE_170(p) BOOST_PP_IIF(p##(170), BOOST_PP_NODE_169, BOOST_PP_NODE_171)\r
-#                            define BOOST_PP_NODE_169(p) BOOST_PP_IIF(p##(169), 169, 170)\r
-#                            define BOOST_PP_NODE_171(p) BOOST_PP_IIF(p##(171), 171, 172)\r
-#                        define BOOST_PP_NODE_174(p) BOOST_PP_IIF(p##(174), BOOST_PP_NODE_173, BOOST_PP_NODE_175)\r
-#                            define BOOST_PP_NODE_173(p) BOOST_PP_IIF(p##(173), 173, 174)\r
-#                            define BOOST_PP_NODE_175(p) BOOST_PP_IIF(p##(175), 175, 176)\r
-#                define BOOST_PP_NODE_184(p) BOOST_PP_IIF(p##(184), BOOST_PP_NODE_180, BOOST_PP_NODE_188)\r
-#                    define BOOST_PP_NODE_180(p) BOOST_PP_IIF(p##(180), BOOST_PP_NODE_178, BOOST_PP_NODE_182)\r
-#                        define BOOST_PP_NODE_178(p) BOOST_PP_IIF(p##(178), BOOST_PP_NODE_177, BOOST_PP_NODE_179)\r
-#                            define BOOST_PP_NODE_177(p) BOOST_PP_IIF(p##(177), 177, 178)\r
-#                            define BOOST_PP_NODE_179(p) BOOST_PP_IIF(p##(179), 179, 180)\r
-#                        define BOOST_PP_NODE_182(p) BOOST_PP_IIF(p##(182), BOOST_PP_NODE_181, BOOST_PP_NODE_183)\r
-#                            define BOOST_PP_NODE_181(p) BOOST_PP_IIF(p##(181), 181, 182)\r
-#                            define BOOST_PP_NODE_183(p) BOOST_PP_IIF(p##(183), 183, 184)\r
-#                    define BOOST_PP_NODE_188(p) BOOST_PP_IIF(p##(188), BOOST_PP_NODE_186, BOOST_PP_NODE_190)\r
-#                        define BOOST_PP_NODE_186(p) BOOST_PP_IIF(p##(186), BOOST_PP_NODE_185, BOOST_PP_NODE_187)\r
-#                            define BOOST_PP_NODE_185(p) BOOST_PP_IIF(p##(185), 185, 186)\r
-#                            define BOOST_PP_NODE_187(p) BOOST_PP_IIF(p##(187), 187, 188)\r
-#                        define BOOST_PP_NODE_190(p) BOOST_PP_IIF(p##(190), BOOST_PP_NODE_189, BOOST_PP_NODE_191)\r
-#                            define BOOST_PP_NODE_189(p) BOOST_PP_IIF(p##(189), 189, 190)\r
-#                            define BOOST_PP_NODE_191(p) BOOST_PP_IIF(p##(191), 191, 192)\r
-#        define BOOST_PP_NODE_224(p) BOOST_PP_IIF(p##(224), BOOST_PP_NODE_208, BOOST_PP_NODE_240)\r
-#            define BOOST_PP_NODE_208(p) BOOST_PP_IIF(p##(208), BOOST_PP_NODE_200, BOOST_PP_NODE_216)\r
-#                define BOOST_PP_NODE_200(p) BOOST_PP_IIF(p##(200), BOOST_PP_NODE_196, BOOST_PP_NODE_204)\r
-#                    define BOOST_PP_NODE_196(p) BOOST_PP_IIF(p##(196), BOOST_PP_NODE_194, BOOST_PP_NODE_198)\r
-#                        define BOOST_PP_NODE_194(p) BOOST_PP_IIF(p##(194), BOOST_PP_NODE_193, BOOST_PP_NODE_195)\r
-#                            define BOOST_PP_NODE_193(p) BOOST_PP_IIF(p##(193), 193, 194)\r
-#                            define BOOST_PP_NODE_195(p) BOOST_PP_IIF(p##(195), 195, 196)\r
-#                        define BOOST_PP_NODE_198(p) BOOST_PP_IIF(p##(198), BOOST_PP_NODE_197, BOOST_PP_NODE_199)\r
-#                            define BOOST_PP_NODE_197(p) BOOST_PP_IIF(p##(197), 197, 198)\r
-#                            define BOOST_PP_NODE_199(p) BOOST_PP_IIF(p##(199), 199, 200)\r
-#                    define BOOST_PP_NODE_204(p) BOOST_PP_IIF(p##(204), BOOST_PP_NODE_202, BOOST_PP_NODE_206)\r
-#                        define BOOST_PP_NODE_202(p) BOOST_PP_IIF(p##(202), BOOST_PP_NODE_201, BOOST_PP_NODE_203)\r
-#                            define BOOST_PP_NODE_201(p) BOOST_PP_IIF(p##(201), 201, 202)\r
-#                            define BOOST_PP_NODE_203(p) BOOST_PP_IIF(p##(203), 203, 204)\r
-#                        define BOOST_PP_NODE_206(p) BOOST_PP_IIF(p##(206), BOOST_PP_NODE_205, BOOST_PP_NODE_207)\r
-#                            define BOOST_PP_NODE_205(p) BOOST_PP_IIF(p##(205), 205, 206)\r
-#                            define BOOST_PP_NODE_207(p) BOOST_PP_IIF(p##(207), 207, 208)\r
-#                define BOOST_PP_NODE_216(p) BOOST_PP_IIF(p##(216), BOOST_PP_NODE_212, BOOST_PP_NODE_220)\r
-#                    define BOOST_PP_NODE_212(p) BOOST_PP_IIF(p##(212), BOOST_PP_NODE_210, BOOST_PP_NODE_214)\r
-#                        define BOOST_PP_NODE_210(p) BOOST_PP_IIF(p##(210), BOOST_PP_NODE_209, BOOST_PP_NODE_211)\r
-#                            define BOOST_PP_NODE_209(p) BOOST_PP_IIF(p##(209), 209, 210)\r
-#                            define BOOST_PP_NODE_211(p) BOOST_PP_IIF(p##(211), 211, 212)\r
-#                        define BOOST_PP_NODE_214(p) BOOST_PP_IIF(p##(214), BOOST_PP_NODE_213, BOOST_PP_NODE_215)\r
-#                            define BOOST_PP_NODE_213(p) BOOST_PP_IIF(p##(213), 213, 214)\r
-#                            define BOOST_PP_NODE_215(p) BOOST_PP_IIF(p##(215), 215, 216)\r
-#                    define BOOST_PP_NODE_220(p) BOOST_PP_IIF(p##(220), BOOST_PP_NODE_218, BOOST_PP_NODE_222)\r
-#                        define BOOST_PP_NODE_218(p) BOOST_PP_IIF(p##(218), BOOST_PP_NODE_217, BOOST_PP_NODE_219)\r
-#                            define BOOST_PP_NODE_217(p) BOOST_PP_IIF(p##(217), 217, 218)\r
-#                            define BOOST_PP_NODE_219(p) BOOST_PP_IIF(p##(219), 219, 220)\r
-#                        define BOOST_PP_NODE_222(p) BOOST_PP_IIF(p##(222), BOOST_PP_NODE_221, BOOST_PP_NODE_223)\r
-#                            define BOOST_PP_NODE_221(p) BOOST_PP_IIF(p##(221), 221, 222)\r
-#                            define BOOST_PP_NODE_223(p) BOOST_PP_IIF(p##(223), 223, 224)\r
-#            define BOOST_PP_NODE_240(p) BOOST_PP_IIF(p##(240), BOOST_PP_NODE_232, BOOST_PP_NODE_248)\r
-#                define BOOST_PP_NODE_232(p) BOOST_PP_IIF(p##(232), BOOST_PP_NODE_228, BOOST_PP_NODE_236)\r
-#                    define BOOST_PP_NODE_228(p) BOOST_PP_IIF(p##(228), BOOST_PP_NODE_226, BOOST_PP_NODE_230)\r
-#                        define BOOST_PP_NODE_226(p) BOOST_PP_IIF(p##(226), BOOST_PP_NODE_225, BOOST_PP_NODE_227)\r
-#                            define BOOST_PP_NODE_225(p) BOOST_PP_IIF(p##(225), 225, 226)\r
-#                            define BOOST_PP_NODE_227(p) BOOST_PP_IIF(p##(227), 227, 228)\r
-#                        define BOOST_PP_NODE_230(p) BOOST_PP_IIF(p##(230), BOOST_PP_NODE_229, BOOST_PP_NODE_231)\r
-#                            define BOOST_PP_NODE_229(p) BOOST_PP_IIF(p##(229), 229, 230)\r
-#                            define BOOST_PP_NODE_231(p) BOOST_PP_IIF(p##(231), 231, 232)\r
-#                    define BOOST_PP_NODE_236(p) BOOST_PP_IIF(p##(236), BOOST_PP_NODE_234, BOOST_PP_NODE_238)\r
-#                        define BOOST_PP_NODE_234(p) BOOST_PP_IIF(p##(234), BOOST_PP_NODE_233, BOOST_PP_NODE_235)\r
-#                            define BOOST_PP_NODE_233(p) BOOST_PP_IIF(p##(233), 233, 234)\r
-#                            define BOOST_PP_NODE_235(p) BOOST_PP_IIF(p##(235), 235, 236)\r
-#                        define BOOST_PP_NODE_238(p) BOOST_PP_IIF(p##(238), BOOST_PP_NODE_237, BOOST_PP_NODE_239)\r
-#                            define BOOST_PP_NODE_237(p) BOOST_PP_IIF(p##(237), 237, 238)\r
-#                            define BOOST_PP_NODE_239(p) BOOST_PP_IIF(p##(239), 239, 240)\r
-#                define BOOST_PP_NODE_248(p) BOOST_PP_IIF(p##(248), BOOST_PP_NODE_244, BOOST_PP_NODE_252)\r
-#                    define BOOST_PP_NODE_244(p) BOOST_PP_IIF(p##(244), BOOST_PP_NODE_242, BOOST_PP_NODE_246)\r
-#                        define BOOST_PP_NODE_242(p) BOOST_PP_IIF(p##(242), BOOST_PP_NODE_241, BOOST_PP_NODE_243)\r
-#                            define BOOST_PP_NODE_241(p) BOOST_PP_IIF(p##(241), 241, 242)\r
-#                            define BOOST_PP_NODE_243(p) BOOST_PP_IIF(p##(243), 243, 244)\r
-#                        define BOOST_PP_NODE_246(p) BOOST_PP_IIF(p##(246), BOOST_PP_NODE_245, BOOST_PP_NODE_247)\r
-#                            define BOOST_PP_NODE_245(p) BOOST_PP_IIF(p##(245), 245, 246)\r
-#                            define BOOST_PP_NODE_247(p) BOOST_PP_IIF(p##(247), 247, 248)\r
-#                    define BOOST_PP_NODE_252(p) BOOST_PP_IIF(p##(252), BOOST_PP_NODE_250, BOOST_PP_NODE_254)\r
-#                        define BOOST_PP_NODE_250(p) BOOST_PP_IIF(p##(250), BOOST_PP_NODE_249, BOOST_PP_NODE_251)\r
-#                            define BOOST_PP_NODE_249(p) BOOST_PP_IIF(p##(249), 249, 250)\r
-#                            define BOOST_PP_NODE_251(p) BOOST_PP_IIF(p##(251), 251, 252)\r
-#                        define BOOST_PP_NODE_254(p) BOOST_PP_IIF(p##(254), BOOST_PP_NODE_253, BOOST_PP_NODE_255)\r
-#                            define BOOST_PP_NODE_253(p) BOOST_PP_IIF(p##(253), 253, 254)\r
-#                            define BOOST_PP_NODE_255(p) BOOST_PP_IIF(p##(255), 255, 256)\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
+# define BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
+#
+# include <boost/preprocessor/control/iif.hpp>
+#
+# /* BOOST_PP_AUTO_REC */
+#
+# define BOOST_PP_AUTO_REC(pred, n) BOOST_PP_NODE_ENTRY_ ## n(pred)
+#
+# define BOOST_PP_NODE_ENTRY_256(p) BOOST_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p)
+# define BOOST_PP_NODE_ENTRY_128(p) BOOST_PP_NODE_64(p)(p)(p)(p)(p)(p)(p)
+# define BOOST_PP_NODE_ENTRY_64(p) BOOST_PP_NODE_32(p)(p)(p)(p)(p)(p)
+# define BOOST_PP_NODE_ENTRY_32(p) BOOST_PP_NODE_16(p)(p)(p)(p)(p)
+# define BOOST_PP_NODE_ENTRY_16(p) BOOST_PP_NODE_8(p)(p)(p)(p)
+# define BOOST_PP_NODE_ENTRY_8(p) BOOST_PP_NODE_4(p)(p)(p)
+# define BOOST_PP_NODE_ENTRY_4(p) BOOST_PP_NODE_2(p)(p)
+# define BOOST_PP_NODE_ENTRY_2(p) BOOST_PP_NODE_1(p)
+#
+# define BOOST_PP_NODE_128(p) BOOST_PP_IIF(p##(128), BOOST_PP_NODE_64, BOOST_PP_NODE_192)
+#    define BOOST_PP_NODE_64(p) BOOST_PP_IIF(p##(64), BOOST_PP_NODE_32, BOOST_PP_NODE_96)
+#        define BOOST_PP_NODE_32(p) BOOST_PP_IIF(p##(32), BOOST_PP_NODE_16, BOOST_PP_NODE_48)
+#            define BOOST_PP_NODE_16(p) BOOST_PP_IIF(p##(16), BOOST_PP_NODE_8, BOOST_PP_NODE_24)
+#                define BOOST_PP_NODE_8(p) BOOST_PP_IIF(p##(8), BOOST_PP_NODE_4, BOOST_PP_NODE_12)
+#                    define BOOST_PP_NODE_4(p) BOOST_PP_IIF(p##(4), BOOST_PP_NODE_2, BOOST_PP_NODE_6)
+#                        define BOOST_PP_NODE_2(p) BOOST_PP_IIF(p##(2), BOOST_PP_NODE_1, BOOST_PP_NODE_3)
+#                            define BOOST_PP_NODE_1(p) BOOST_PP_IIF(p##(1), 1, 2)
+#                            define BOOST_PP_NODE_3(p) BOOST_PP_IIF(p##(3), 3, 4)
+#                        define BOOST_PP_NODE_6(p) BOOST_PP_IIF(p##(6), BOOST_PP_NODE_5, BOOST_PP_NODE_7)
+#                            define BOOST_PP_NODE_5(p) BOOST_PP_IIF(p##(5), 5, 6)
+#                            define BOOST_PP_NODE_7(p) BOOST_PP_IIF(p##(7), 7, 8)
+#                    define BOOST_PP_NODE_12(p) BOOST_PP_IIF(p##(12), BOOST_PP_NODE_10, BOOST_PP_NODE_14)
+#                        define BOOST_PP_NODE_10(p) BOOST_PP_IIF(p##(10), BOOST_PP_NODE_9, BOOST_PP_NODE_11)
+#                            define BOOST_PP_NODE_9(p) BOOST_PP_IIF(p##(9), 9, 10)
+#                            define BOOST_PP_NODE_11(p) BOOST_PP_IIF(p##(11), 11, 12)
+#                        define BOOST_PP_NODE_14(p) BOOST_PP_IIF(p##(14), BOOST_PP_NODE_13, BOOST_PP_NODE_15)
+#                            define BOOST_PP_NODE_13(p) BOOST_PP_IIF(p##(13), 13, 14)
+#                            define BOOST_PP_NODE_15(p) BOOST_PP_IIF(p##(15), 15, 16)
+#                define BOOST_PP_NODE_24(p) BOOST_PP_IIF(p##(24), BOOST_PP_NODE_20, BOOST_PP_NODE_28)
+#                    define BOOST_PP_NODE_20(p) BOOST_PP_IIF(p##(20), BOOST_PP_NODE_18, BOOST_PP_NODE_22)
+#                        define BOOST_PP_NODE_18(p) BOOST_PP_IIF(p##(18), BOOST_PP_NODE_17, BOOST_PP_NODE_19)
+#                            define BOOST_PP_NODE_17(p) BOOST_PP_IIF(p##(17), 17, 18)
+#                            define BOOST_PP_NODE_19(p) BOOST_PP_IIF(p##(19), 19, 20)
+#                        define BOOST_PP_NODE_22(p) BOOST_PP_IIF(p##(22), BOOST_PP_NODE_21, BOOST_PP_NODE_23)
+#                            define BOOST_PP_NODE_21(p) BOOST_PP_IIF(p##(21), 21, 22)
+#                            define BOOST_PP_NODE_23(p) BOOST_PP_IIF(p##(23), 23, 24)
+#                    define BOOST_PP_NODE_28(p) BOOST_PP_IIF(p##(28), BOOST_PP_NODE_26, BOOST_PP_NODE_30)
+#                        define BOOST_PP_NODE_26(p) BOOST_PP_IIF(p##(26), BOOST_PP_NODE_25, BOOST_PP_NODE_27)
+#                            define BOOST_PP_NODE_25(p) BOOST_PP_IIF(p##(25), 25, 26)
+#                            define BOOST_PP_NODE_27(p) BOOST_PP_IIF(p##(27), 27, 28)
+#                        define BOOST_PP_NODE_30(p) BOOST_PP_IIF(p##(30), BOOST_PP_NODE_29, BOOST_PP_NODE_31)
+#                            define BOOST_PP_NODE_29(p) BOOST_PP_IIF(p##(29), 29, 30)
+#                            define BOOST_PP_NODE_31(p) BOOST_PP_IIF(p##(31), 31, 32)
+#            define BOOST_PP_NODE_48(p) BOOST_PP_IIF(p##(48), BOOST_PP_NODE_40, BOOST_PP_NODE_56)
+#                define BOOST_PP_NODE_40(p) BOOST_PP_IIF(p##(40), BOOST_PP_NODE_36, BOOST_PP_NODE_44)
+#                    define BOOST_PP_NODE_36(p) BOOST_PP_IIF(p##(36), BOOST_PP_NODE_34, BOOST_PP_NODE_38)
+#                        define BOOST_PP_NODE_34(p) BOOST_PP_IIF(p##(34), BOOST_PP_NODE_33, BOOST_PP_NODE_35)
+#                            define BOOST_PP_NODE_33(p) BOOST_PP_IIF(p##(33), 33, 34)
+#                            define BOOST_PP_NODE_35(p) BOOST_PP_IIF(p##(35), 35, 36)
+#                        define BOOST_PP_NODE_38(p) BOOST_PP_IIF(p##(38), BOOST_PP_NODE_37, BOOST_PP_NODE_39)
+#                            define BOOST_PP_NODE_37(p) BOOST_PP_IIF(p##(37), 37, 38)
+#                            define BOOST_PP_NODE_39(p) BOOST_PP_IIF(p##(39), 39, 40)
+#                    define BOOST_PP_NODE_44(p) BOOST_PP_IIF(p##(44), BOOST_PP_NODE_42, BOOST_PP_NODE_46)
+#                        define BOOST_PP_NODE_42(p) BOOST_PP_IIF(p##(42), BOOST_PP_NODE_41, BOOST_PP_NODE_43)
+#                            define BOOST_PP_NODE_41(p) BOOST_PP_IIF(p##(41), 41, 42)
+#                            define BOOST_PP_NODE_43(p) BOOST_PP_IIF(p##(43), 43, 44)
+#                        define BOOST_PP_NODE_46(p) BOOST_PP_IIF(p##(46), BOOST_PP_NODE_45, BOOST_PP_NODE_47)
+#                            define BOOST_PP_NODE_45(p) BOOST_PP_IIF(p##(45), 45, 46)
+#                            define BOOST_PP_NODE_47(p) BOOST_PP_IIF(p##(47), 47, 48)
+#                define BOOST_PP_NODE_56(p) BOOST_PP_IIF(p##(56), BOOST_PP_NODE_52, BOOST_PP_NODE_60)
+#                    define BOOST_PP_NODE_52(p) BOOST_PP_IIF(p##(52), BOOST_PP_NODE_50, BOOST_PP_NODE_54)
+#                        define BOOST_PP_NODE_50(p) BOOST_PP_IIF(p##(50), BOOST_PP_NODE_49, BOOST_PP_NODE_51)
+#                            define BOOST_PP_NODE_49(p) BOOST_PP_IIF(p##(49), 49, 50)
+#                            define BOOST_PP_NODE_51(p) BOOST_PP_IIF(p##(51), 51, 52)
+#                        define BOOST_PP_NODE_54(p) BOOST_PP_IIF(p##(54), BOOST_PP_NODE_53, BOOST_PP_NODE_55)
+#                            define BOOST_PP_NODE_53(p) BOOST_PP_IIF(p##(53), 53, 54)
+#                            define BOOST_PP_NODE_55(p) BOOST_PP_IIF(p##(55), 55, 56)
+#                    define BOOST_PP_NODE_60(p) BOOST_PP_IIF(p##(60), BOOST_PP_NODE_58, BOOST_PP_NODE_62)
+#                        define BOOST_PP_NODE_58(p) BOOST_PP_IIF(p##(58), BOOST_PP_NODE_57, BOOST_PP_NODE_59)
+#                            define BOOST_PP_NODE_57(p) BOOST_PP_IIF(p##(57), 57, 58)
+#                            define BOOST_PP_NODE_59(p) BOOST_PP_IIF(p##(59), 59, 60)
+#                        define BOOST_PP_NODE_62(p) BOOST_PP_IIF(p##(62), BOOST_PP_NODE_61, BOOST_PP_NODE_63)
+#                            define BOOST_PP_NODE_61(p) BOOST_PP_IIF(p##(61), 61, 62)
+#                            define BOOST_PP_NODE_63(p) BOOST_PP_IIF(p##(63), 63, 64)
+#        define BOOST_PP_NODE_96(p) BOOST_PP_IIF(p##(96), BOOST_PP_NODE_80, BOOST_PP_NODE_112)
+#            define BOOST_PP_NODE_80(p) BOOST_PP_IIF(p##(80), BOOST_PP_NODE_72, BOOST_PP_NODE_88)
+#                define BOOST_PP_NODE_72(p) BOOST_PP_IIF(p##(72), BOOST_PP_NODE_68, BOOST_PP_NODE_76)
+#                    define BOOST_PP_NODE_68(p) BOOST_PP_IIF(p##(68), BOOST_PP_NODE_66, BOOST_PP_NODE_70)
+#                        define BOOST_PP_NODE_66(p) BOOST_PP_IIF(p##(66), BOOST_PP_NODE_65, BOOST_PP_NODE_67)
+#                            define BOOST_PP_NODE_65(p) BOOST_PP_IIF(p##(65), 65, 66)
+#                            define BOOST_PP_NODE_67(p) BOOST_PP_IIF(p##(67), 67, 68)
+#                        define BOOST_PP_NODE_70(p) BOOST_PP_IIF(p##(70), BOOST_PP_NODE_69, BOOST_PP_NODE_71)
+#                            define BOOST_PP_NODE_69(p) BOOST_PP_IIF(p##(69), 69, 70)
+#                            define BOOST_PP_NODE_71(p) BOOST_PP_IIF(p##(71), 71, 72)
+#                    define BOOST_PP_NODE_76(p) BOOST_PP_IIF(p##(76), BOOST_PP_NODE_74, BOOST_PP_NODE_78)
+#                        define BOOST_PP_NODE_74(p) BOOST_PP_IIF(p##(74), BOOST_PP_NODE_73, BOOST_PP_NODE_75)
+#                            define BOOST_PP_NODE_73(p) BOOST_PP_IIF(p##(73), 73, 74)
+#                            define BOOST_PP_NODE_75(p) BOOST_PP_IIF(p##(75), 75, 76)
+#                        define BOOST_PP_NODE_78(p) BOOST_PP_IIF(p##(78), BOOST_PP_NODE_77, BOOST_PP_NODE_79)
+#                            define BOOST_PP_NODE_77(p) BOOST_PP_IIF(p##(77), 77, 78)
+#                            define BOOST_PP_NODE_79(p) BOOST_PP_IIF(p##(79), 79, 80)
+#                define BOOST_PP_NODE_88(p) BOOST_PP_IIF(p##(88), BOOST_PP_NODE_84, BOOST_PP_NODE_92)
+#                    define BOOST_PP_NODE_84(p) BOOST_PP_IIF(p##(84), BOOST_PP_NODE_82, BOOST_PP_NODE_86)
+#                        define BOOST_PP_NODE_82(p) BOOST_PP_IIF(p##(82), BOOST_PP_NODE_81, BOOST_PP_NODE_83)
+#                            define BOOST_PP_NODE_81(p) BOOST_PP_IIF(p##(81), 81, 82)
+#                            define BOOST_PP_NODE_83(p) BOOST_PP_IIF(p##(83), 83, 84)
+#                        define BOOST_PP_NODE_86(p) BOOST_PP_IIF(p##(86), BOOST_PP_NODE_85, BOOST_PP_NODE_87)
+#                            define BOOST_PP_NODE_85(p) BOOST_PP_IIF(p##(85), 85, 86)
+#                            define BOOST_PP_NODE_87(p) BOOST_PP_IIF(p##(87), 87, 88)
+#                    define BOOST_PP_NODE_92(p) BOOST_PP_IIF(p##(92), BOOST_PP_NODE_90, BOOST_PP_NODE_94)
+#                        define BOOST_PP_NODE_90(p) BOOST_PP_IIF(p##(90), BOOST_PP_NODE_89, BOOST_PP_NODE_91)
+#                            define BOOST_PP_NODE_89(p) BOOST_PP_IIF(p##(89), 89, 90)
+#                            define BOOST_PP_NODE_91(p) BOOST_PP_IIF(p##(91), 91, 92)
+#                        define BOOST_PP_NODE_94(p) BOOST_PP_IIF(p##(94), BOOST_PP_NODE_93, BOOST_PP_NODE_95)
+#                            define BOOST_PP_NODE_93(p) BOOST_PP_IIF(p##(93), 93, 94)
+#                            define BOOST_PP_NODE_95(p) BOOST_PP_IIF(p##(95), 95, 96)
+#            define BOOST_PP_NODE_112(p) BOOST_PP_IIF(p##(112), BOOST_PP_NODE_104, BOOST_PP_NODE_120)
+#                define BOOST_PP_NODE_104(p) BOOST_PP_IIF(p##(104), BOOST_PP_NODE_100, BOOST_PP_NODE_108)
+#                    define BOOST_PP_NODE_100(p) BOOST_PP_IIF(p##(100), BOOST_PP_NODE_98, BOOST_PP_NODE_102)
+#                        define BOOST_PP_NODE_98(p) BOOST_PP_IIF(p##(98), BOOST_PP_NODE_97, BOOST_PP_NODE_99)
+#                            define BOOST_PP_NODE_97(p) BOOST_PP_IIF(p##(97), 97, 98)
+#                            define BOOST_PP_NODE_99(p) BOOST_PP_IIF(p##(99), 99, 100)
+#                        define BOOST_PP_NODE_102(p) BOOST_PP_IIF(p##(102), BOOST_PP_NODE_101, BOOST_PP_NODE_103)
+#                            define BOOST_PP_NODE_101(p) BOOST_PP_IIF(p##(101), 101, 102)
+#                            define BOOST_PP_NODE_103(p) BOOST_PP_IIF(p##(103), 103, 104)
+#                    define BOOST_PP_NODE_108(p) BOOST_PP_IIF(p##(108), BOOST_PP_NODE_106, BOOST_PP_NODE_110)
+#                        define BOOST_PP_NODE_106(p) BOOST_PP_IIF(p##(106), BOOST_PP_NODE_105, BOOST_PP_NODE_107)
+#                            define BOOST_PP_NODE_105(p) BOOST_PP_IIF(p##(105), 105, 106)
+#                            define BOOST_PP_NODE_107(p) BOOST_PP_IIF(p##(107), 107, 108)
+#                        define BOOST_PP_NODE_110(p) BOOST_PP_IIF(p##(110), BOOST_PP_NODE_109, BOOST_PP_NODE_111)
+#                            define BOOST_PP_NODE_109(p) BOOST_PP_IIF(p##(109), 109, 110)
+#                            define BOOST_PP_NODE_111(p) BOOST_PP_IIF(p##(111), 111, 112)
+#                define BOOST_PP_NODE_120(p) BOOST_PP_IIF(p##(120), BOOST_PP_NODE_116, BOOST_PP_NODE_124)
+#                    define BOOST_PP_NODE_116(p) BOOST_PP_IIF(p##(116), BOOST_PP_NODE_114, BOOST_PP_NODE_118)
+#                        define BOOST_PP_NODE_114(p) BOOST_PP_IIF(p##(114), BOOST_PP_NODE_113, BOOST_PP_NODE_115)
+#                            define BOOST_PP_NODE_113(p) BOOST_PP_IIF(p##(113), 113, 114)
+#                            define BOOST_PP_NODE_115(p) BOOST_PP_IIF(p##(115), 115, 116)
+#                        define BOOST_PP_NODE_118(p) BOOST_PP_IIF(p##(118), BOOST_PP_NODE_117, BOOST_PP_NODE_119)
+#                            define BOOST_PP_NODE_117(p) BOOST_PP_IIF(p##(117), 117, 118)
+#                            define BOOST_PP_NODE_119(p) BOOST_PP_IIF(p##(119), 119, 120)
+#                    define BOOST_PP_NODE_124(p) BOOST_PP_IIF(p##(124), BOOST_PP_NODE_122, BOOST_PP_NODE_126)
+#                        define BOOST_PP_NODE_122(p) BOOST_PP_IIF(p##(122), BOOST_PP_NODE_121, BOOST_PP_NODE_123)
+#                            define BOOST_PP_NODE_121(p) BOOST_PP_IIF(p##(121), 121, 122)
+#                            define BOOST_PP_NODE_123(p) BOOST_PP_IIF(p##(123), 123, 124)
+#                        define BOOST_PP_NODE_126(p) BOOST_PP_IIF(p##(126), BOOST_PP_NODE_125, BOOST_PP_NODE_127)
+#                            define BOOST_PP_NODE_125(p) BOOST_PP_IIF(p##(125), 125, 126)
+#                            define BOOST_PP_NODE_127(p) BOOST_PP_IIF(p##(127), 127, 128)
+#    define BOOST_PP_NODE_192(p) BOOST_PP_IIF(p##(192), BOOST_PP_NODE_160, BOOST_PP_NODE_224)
+#        define BOOST_PP_NODE_160(p) BOOST_PP_IIF(p##(160), BOOST_PP_NODE_144, BOOST_PP_NODE_176)
+#            define BOOST_PP_NODE_144(p) BOOST_PP_IIF(p##(144), BOOST_PP_NODE_136, BOOST_PP_NODE_152)
+#                define BOOST_PP_NODE_136(p) BOOST_PP_IIF(p##(136), BOOST_PP_NODE_132, BOOST_PP_NODE_140)
+#                    define BOOST_PP_NODE_132(p) BOOST_PP_IIF(p##(132), BOOST_PP_NODE_130, BOOST_PP_NODE_134)
+#                        define BOOST_PP_NODE_130(p) BOOST_PP_IIF(p##(130), BOOST_PP_NODE_129, BOOST_PP_NODE_131)
+#                            define BOOST_PP_NODE_129(p) BOOST_PP_IIF(p##(129), 129, 130)
+#                            define BOOST_PP_NODE_131(p) BOOST_PP_IIF(p##(131), 131, 132)
+#                        define BOOST_PP_NODE_134(p) BOOST_PP_IIF(p##(134), BOOST_PP_NODE_133, BOOST_PP_NODE_135)
+#                            define BOOST_PP_NODE_133(p) BOOST_PP_IIF(p##(133), 133, 134)
+#                            define BOOST_PP_NODE_135(p) BOOST_PP_IIF(p##(135), 135, 136)
+#                    define BOOST_PP_NODE_140(p) BOOST_PP_IIF(p##(140), BOOST_PP_NODE_138, BOOST_PP_NODE_142)
+#                        define BOOST_PP_NODE_138(p) BOOST_PP_IIF(p##(138), BOOST_PP_NODE_137, BOOST_PP_NODE_139)
+#                            define BOOST_PP_NODE_137(p) BOOST_PP_IIF(p##(137), 137, 138)
+#                            define BOOST_PP_NODE_139(p) BOOST_PP_IIF(p##(139), 139, 140)
+#                        define BOOST_PP_NODE_142(p) BOOST_PP_IIF(p##(142), BOOST_PP_NODE_141, BOOST_PP_NODE_143)
+#                            define BOOST_PP_NODE_141(p) BOOST_PP_IIF(p##(141), 141, 142)
+#                            define BOOST_PP_NODE_143(p) BOOST_PP_IIF(p##(143), 143, 144)
+#                define BOOST_PP_NODE_152(p) BOOST_PP_IIF(p##(152), BOOST_PP_NODE_148, BOOST_PP_NODE_156)
+#                    define BOOST_PP_NODE_148(p) BOOST_PP_IIF(p##(148), BOOST_PP_NODE_146, BOOST_PP_NODE_150)
+#                        define BOOST_PP_NODE_146(p) BOOST_PP_IIF(p##(146), BOOST_PP_NODE_145, BOOST_PP_NODE_147)
+#                            define BOOST_PP_NODE_145(p) BOOST_PP_IIF(p##(145), 145, 146)
+#                            define BOOST_PP_NODE_147(p) BOOST_PP_IIF(p##(147), 147, 148)
+#                        define BOOST_PP_NODE_150(p) BOOST_PP_IIF(p##(150), BOOST_PP_NODE_149, BOOST_PP_NODE_151)
+#                            define BOOST_PP_NODE_149(p) BOOST_PP_IIF(p##(149), 149, 150)
+#                            define BOOST_PP_NODE_151(p) BOOST_PP_IIF(p##(151), 151, 152)
+#                    define BOOST_PP_NODE_156(p) BOOST_PP_IIF(p##(156), BOOST_PP_NODE_154, BOOST_PP_NODE_158)
+#                        define BOOST_PP_NODE_154(p) BOOST_PP_IIF(p##(154), BOOST_PP_NODE_153, BOOST_PP_NODE_155)
+#                            define BOOST_PP_NODE_153(p) BOOST_PP_IIF(p##(153), 153, 154)
+#                            define BOOST_PP_NODE_155(p) BOOST_PP_IIF(p##(155), 155, 156)
+#                        define BOOST_PP_NODE_158(p) BOOST_PP_IIF(p##(158), BOOST_PP_NODE_157, BOOST_PP_NODE_159)
+#                            define BOOST_PP_NODE_157(p) BOOST_PP_IIF(p##(157), 157, 158)
+#                            define BOOST_PP_NODE_159(p) BOOST_PP_IIF(p##(159), 159, 160)
+#            define BOOST_PP_NODE_176(p) BOOST_PP_IIF(p##(176), BOOST_PP_NODE_168, BOOST_PP_NODE_184)
+#                define BOOST_PP_NODE_168(p) BOOST_PP_IIF(p##(168), BOOST_PP_NODE_164, BOOST_PP_NODE_172)
+#                    define BOOST_PP_NODE_164(p) BOOST_PP_IIF(p##(164), BOOST_PP_NODE_162, BOOST_PP_NODE_166)
+#                        define BOOST_PP_NODE_162(p) BOOST_PP_IIF(p##(162), BOOST_PP_NODE_161, BOOST_PP_NODE_163)
+#                            define BOOST_PP_NODE_161(p) BOOST_PP_IIF(p##(161), 161, 162)
+#                            define BOOST_PP_NODE_163(p) BOOST_PP_IIF(p##(163), 163, 164)
+#                        define BOOST_PP_NODE_166(p) BOOST_PP_IIF(p##(166), BOOST_PP_NODE_165, BOOST_PP_NODE_167)
+#                            define BOOST_PP_NODE_165(p) BOOST_PP_IIF(p##(165), 165, 166)
+#                            define BOOST_PP_NODE_167(p) BOOST_PP_IIF(p##(167), 167, 168)
+#                    define BOOST_PP_NODE_172(p) BOOST_PP_IIF(p##(172), BOOST_PP_NODE_170, BOOST_PP_NODE_174)
+#                        define BOOST_PP_NODE_170(p) BOOST_PP_IIF(p##(170), BOOST_PP_NODE_169, BOOST_PP_NODE_171)
+#                            define BOOST_PP_NODE_169(p) BOOST_PP_IIF(p##(169), 169, 170)
+#                            define BOOST_PP_NODE_171(p) BOOST_PP_IIF(p##(171), 171, 172)
+#                        define BOOST_PP_NODE_174(p) BOOST_PP_IIF(p##(174), BOOST_PP_NODE_173, BOOST_PP_NODE_175)
+#                            define BOOST_PP_NODE_173(p) BOOST_PP_IIF(p##(173), 173, 174)
+#                            define BOOST_PP_NODE_175(p) BOOST_PP_IIF(p##(175), 175, 176)
+#                define BOOST_PP_NODE_184(p) BOOST_PP_IIF(p##(184), BOOST_PP_NODE_180, BOOST_PP_NODE_188)
+#                    define BOOST_PP_NODE_180(p) BOOST_PP_IIF(p##(180), BOOST_PP_NODE_178, BOOST_PP_NODE_182)
+#                        define BOOST_PP_NODE_178(p) BOOST_PP_IIF(p##(178), BOOST_PP_NODE_177, BOOST_PP_NODE_179)
+#                            define BOOST_PP_NODE_177(p) BOOST_PP_IIF(p##(177), 177, 178)
+#                            define BOOST_PP_NODE_179(p) BOOST_PP_IIF(p##(179), 179, 180)
+#                        define BOOST_PP_NODE_182(p) BOOST_PP_IIF(p##(182), BOOST_PP_NODE_181, BOOST_PP_NODE_183)
+#                            define BOOST_PP_NODE_181(p) BOOST_PP_IIF(p##(181), 181, 182)
+#                            define BOOST_PP_NODE_183(p) BOOST_PP_IIF(p##(183), 183, 184)
+#                    define BOOST_PP_NODE_188(p) BOOST_PP_IIF(p##(188), BOOST_PP_NODE_186, BOOST_PP_NODE_190)
+#                        define BOOST_PP_NODE_186(p) BOOST_PP_IIF(p##(186), BOOST_PP_NODE_185, BOOST_PP_NODE_187)
+#                            define BOOST_PP_NODE_185(p) BOOST_PP_IIF(p##(185), 185, 186)
+#                            define BOOST_PP_NODE_187(p) BOOST_PP_IIF(p##(187), 187, 188)
+#                        define BOOST_PP_NODE_190(p) BOOST_PP_IIF(p##(190), BOOST_PP_NODE_189, BOOST_PP_NODE_191)
+#                            define BOOST_PP_NODE_189(p) BOOST_PP_IIF(p##(189), 189, 190)
+#                            define BOOST_PP_NODE_191(p) BOOST_PP_IIF(p##(191), 191, 192)
+#        define BOOST_PP_NODE_224(p) BOOST_PP_IIF(p##(224), BOOST_PP_NODE_208, BOOST_PP_NODE_240)
+#            define BOOST_PP_NODE_208(p) BOOST_PP_IIF(p##(208), BOOST_PP_NODE_200, BOOST_PP_NODE_216)
+#                define BOOST_PP_NODE_200(p) BOOST_PP_IIF(p##(200), BOOST_PP_NODE_196, BOOST_PP_NODE_204)
+#                    define BOOST_PP_NODE_196(p) BOOST_PP_IIF(p##(196), BOOST_PP_NODE_194, BOOST_PP_NODE_198)
+#                        define BOOST_PP_NODE_194(p) BOOST_PP_IIF(p##(194), BOOST_PP_NODE_193, BOOST_PP_NODE_195)
+#                            define BOOST_PP_NODE_193(p) BOOST_PP_IIF(p##(193), 193, 194)
+#                            define BOOST_PP_NODE_195(p) BOOST_PP_IIF(p##(195), 195, 196)
+#                        define BOOST_PP_NODE_198(p) BOOST_PP_IIF(p##(198), BOOST_PP_NODE_197, BOOST_PP_NODE_199)
+#                            define BOOST_PP_NODE_197(p) BOOST_PP_IIF(p##(197), 197, 198)
+#                            define BOOST_PP_NODE_199(p) BOOST_PP_IIF(p##(199), 199, 200)
+#                    define BOOST_PP_NODE_204(p) BOOST_PP_IIF(p##(204), BOOST_PP_NODE_202, BOOST_PP_NODE_206)
+#                        define BOOST_PP_NODE_202(p) BOOST_PP_IIF(p##(202), BOOST_PP_NODE_201, BOOST_PP_NODE_203)
+#                            define BOOST_PP_NODE_201(p) BOOST_PP_IIF(p##(201), 201, 202)
+#                            define BOOST_PP_NODE_203(p) BOOST_PP_IIF(p##(203), 203, 204)
+#                        define BOOST_PP_NODE_206(p) BOOST_PP_IIF(p##(206), BOOST_PP_NODE_205, BOOST_PP_NODE_207)
+#                            define BOOST_PP_NODE_205(p) BOOST_PP_IIF(p##(205), 205, 206)
+#                            define BOOST_PP_NODE_207(p) BOOST_PP_IIF(p##(207), 207, 208)
+#                define BOOST_PP_NODE_216(p) BOOST_PP_IIF(p##(216), BOOST_PP_NODE_212, BOOST_PP_NODE_220)
+#                    define BOOST_PP_NODE_212(p) BOOST_PP_IIF(p##(212), BOOST_PP_NODE_210, BOOST_PP_NODE_214)
+#                        define BOOST_PP_NODE_210(p) BOOST_PP_IIF(p##(210), BOOST_PP_NODE_209, BOOST_PP_NODE_211)
+#                            define BOOST_PP_NODE_209(p) BOOST_PP_IIF(p##(209), 209, 210)
+#                            define BOOST_PP_NODE_211(p) BOOST_PP_IIF(p##(211), 211, 212)
+#                        define BOOST_PP_NODE_214(p) BOOST_PP_IIF(p##(214), BOOST_PP_NODE_213, BOOST_PP_NODE_215)
+#                            define BOOST_PP_NODE_213(p) BOOST_PP_IIF(p##(213), 213, 214)
+#                            define BOOST_PP_NODE_215(p) BOOST_PP_IIF(p##(215), 215, 216)
+#                    define BOOST_PP_NODE_220(p) BOOST_PP_IIF(p##(220), BOOST_PP_NODE_218, BOOST_PP_NODE_222)
+#                        define BOOST_PP_NODE_218(p) BOOST_PP_IIF(p##(218), BOOST_PP_NODE_217, BOOST_PP_NODE_219)
+#                            define BOOST_PP_NODE_217(p) BOOST_PP_IIF(p##(217), 217, 218)
+#                            define BOOST_PP_NODE_219(p) BOOST_PP_IIF(p##(219), 219, 220)
+#                        define BOOST_PP_NODE_222(p) BOOST_PP_IIF(p##(222), BOOST_PP_NODE_221, BOOST_PP_NODE_223)
+#                            define BOOST_PP_NODE_221(p) BOOST_PP_IIF(p##(221), 221, 222)
+#                            define BOOST_PP_NODE_223(p) BOOST_PP_IIF(p##(223), 223, 224)
+#            define BOOST_PP_NODE_240(p) BOOST_PP_IIF(p##(240), BOOST_PP_NODE_232, BOOST_PP_NODE_248)
+#                define BOOST_PP_NODE_232(p) BOOST_PP_IIF(p##(232), BOOST_PP_NODE_228, BOOST_PP_NODE_236)
+#                    define BOOST_PP_NODE_228(p) BOOST_PP_IIF(p##(228), BOOST_PP_NODE_226, BOOST_PP_NODE_230)
+#                        define BOOST_PP_NODE_226(p) BOOST_PP_IIF(p##(226), BOOST_PP_NODE_225, BOOST_PP_NODE_227)
+#                            define BOOST_PP_NODE_225(p) BOOST_PP_IIF(p##(225), 225, 226)
+#                            define BOOST_PP_NODE_227(p) BOOST_PP_IIF(p##(227), 227, 228)
+#                        define BOOST_PP_NODE_230(p) BOOST_PP_IIF(p##(230), BOOST_PP_NODE_229, BOOST_PP_NODE_231)
+#                            define BOOST_PP_NODE_229(p) BOOST_PP_IIF(p##(229), 229, 230)
+#                            define BOOST_PP_NODE_231(p) BOOST_PP_IIF(p##(231), 231, 232)
+#                    define BOOST_PP_NODE_236(p) BOOST_PP_IIF(p##(236), BOOST_PP_NODE_234, BOOST_PP_NODE_238)
+#                        define BOOST_PP_NODE_234(p) BOOST_PP_IIF(p##(234), BOOST_PP_NODE_233, BOOST_PP_NODE_235)
+#                            define BOOST_PP_NODE_233(p) BOOST_PP_IIF(p##(233), 233, 234)
+#                            define BOOST_PP_NODE_235(p) BOOST_PP_IIF(p##(235), 235, 236)
+#                        define BOOST_PP_NODE_238(p) BOOST_PP_IIF(p##(238), BOOST_PP_NODE_237, BOOST_PP_NODE_239)
+#                            define BOOST_PP_NODE_237(p) BOOST_PP_IIF(p##(237), 237, 238)
+#                            define BOOST_PP_NODE_239(p) BOOST_PP_IIF(p##(239), 239, 240)
+#                define BOOST_PP_NODE_248(p) BOOST_PP_IIF(p##(248), BOOST_PP_NODE_244, BOOST_PP_NODE_252)
+#                    define BOOST_PP_NODE_244(p) BOOST_PP_IIF(p##(244), BOOST_PP_NODE_242, BOOST_PP_NODE_246)
+#                        define BOOST_PP_NODE_242(p) BOOST_PP_IIF(p##(242), BOOST_PP_NODE_241, BOOST_PP_NODE_243)
+#                            define BOOST_PP_NODE_241(p) BOOST_PP_IIF(p##(241), 241, 242)
+#                            define BOOST_PP_NODE_243(p) BOOST_PP_IIF(p##(243), 243, 244)
+#                        define BOOST_PP_NODE_246(p) BOOST_PP_IIF(p##(246), BOOST_PP_NODE_245, BOOST_PP_NODE_247)
+#                            define BOOST_PP_NODE_245(p) BOOST_PP_IIF(p##(245), 245, 246)
+#                            define BOOST_PP_NODE_247(p) BOOST_PP_IIF(p##(247), 247, 248)
+#                    define BOOST_PP_NODE_252(p) BOOST_PP_IIF(p##(252), BOOST_PP_NODE_250, BOOST_PP_NODE_254)
+#                        define BOOST_PP_NODE_250(p) BOOST_PP_IIF(p##(250), BOOST_PP_NODE_249, BOOST_PP_NODE_251)
+#                            define BOOST_PP_NODE_249(p) BOOST_PP_IIF(p##(249), 249, 250)
+#                            define BOOST_PP_NODE_251(p) BOOST_PP_IIF(p##(251), 251, 252)
+#                        define BOOST_PP_NODE_254(p) BOOST_PP_IIF(p##(254), BOOST_PP_NODE_253, BOOST_PP_NODE_255)
+#                            define BOOST_PP_NODE_253(p) BOOST_PP_IIF(p##(253), 253, 254)
+#                            define BOOST_PP_NODE_255(p) BOOST_PP_IIF(p##(255), 255, 256)
+#
+# endif
index a99822dbc8b136ac9c48f945f0a7afe1b32fe0a7..dee4075adb323c8adfedd7b4c49665112448ac4d 100644 (file)
@@ -1,30 +1,30 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_DETAIL_IS_NULLARY_HPP\r
-# define BOOST_PREPROCESSOR_DETAIL_IS_NULLARY_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/detail/check.hpp>\r
-#\r
-# /* BOOST_PP_IS_NULLARY */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_IS_NULLARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_NULLARY_CHECK)\r
-# else\r
-#    define BOOST_PP_IS_NULLARY(x) BOOST_PP_IS_NULLARY_I(x)\r
-#    define BOOST_PP_IS_NULLARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_NULLARY_CHECK)\r
-# endif\r
-#\r
-# define BOOST_PP_IS_NULLARY_CHECK() 1\r
-# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_NULLARY_CHECK 0, BOOST_PP_NIL\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_DETAIL_IS_NULLARY_HPP
+# define BOOST_PREPROCESSOR_DETAIL_IS_NULLARY_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/detail/check.hpp>
+#
+# /* BOOST_PP_IS_NULLARY */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_IS_NULLARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_NULLARY_CHECK)
+# else
+#    define BOOST_PP_IS_NULLARY(x) BOOST_PP_IS_NULLARY_I(x)
+#    define BOOST_PP_IS_NULLARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_NULLARY_CHECK)
+# endif
+#
+# define BOOST_PP_IS_NULLARY_CHECK() 1
+# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_NULLARY_CHECK 0, BOOST_PP_NIL
+#
+# endif
index 72486c52c5b8c5c634166936ad4a8791c1c132ad..e73cdfb76a4b0622f21fac4d218dab105dd683ad 100644 (file)
@@ -1,30 +1,30 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_DETAIL_IS_UNARY_HPP\r
-# define BOOST_PREPROCESSOR_DETAIL_IS_UNARY_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/detail/check.hpp>\r
-#\r
-# /* BOOST_PP_IS_UNARY */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_IS_UNARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_UNARY_CHECK)\r
-# else\r
-#    define BOOST_PP_IS_UNARY(x) BOOST_PP_IS_UNARY_I(x)\r
-#    define BOOST_PP_IS_UNARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_UNARY_CHECK)\r
-# endif\r
-#\r
-# define BOOST_PP_IS_UNARY_CHECK(a) 1\r
-# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_UNARY_CHECK 0, BOOST_PP_NIL\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_DETAIL_IS_UNARY_HPP
+# define BOOST_PREPROCESSOR_DETAIL_IS_UNARY_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/detail/check.hpp>
+#
+# /* BOOST_PP_IS_UNARY */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_IS_UNARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_UNARY_CHECK)
+# else
+#    define BOOST_PP_IS_UNARY(x) BOOST_PP_IS_UNARY_I(x)
+#    define BOOST_PP_IS_UNARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_UNARY_CHECK)
+# endif
+#
+# define BOOST_PP_IS_UNARY_CHECK(a) 1
+# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_UNARY_CHECK 0, BOOST_PP_NIL
+#
+# endif
index eaec7ba0584056183aea0868996e8de58ab333ab..5eb0bd4ca9ac6762260b0961552989718b90913d 100644 (file)
@@ -1,17 +1,17 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_DETAIL_NULL_HPP\r
-# define BOOST_PREPROCESSOR_DETAIL_NULL_HPP\r
-#\r
-# /* empty file */\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_DETAIL_NULL_HPP
+# define BOOST_PREPROCESSOR_DETAIL_NULL_HPP
+#
+# /* empty file */
+#
+# endif
index 99d91837f5cc95744356cda60e5da251ff261aa9..f28a72375d8852c606d4f115cf46b33d37061ed7 100644 (file)
@@ -1,35 +1,35 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_DETAIL_SPLIT_HPP\r
-# define BOOST_PREPROCESSOR_DETAIL_SPLIT_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-#\r
-# /* BOOST_PP_SPLIT */\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_SPLIT(n, im) BOOST_PP_SPLIT_I((n, im))\r
-#    define BOOST_PP_SPLIT_I(par) BOOST_PP_SPLIT_II ## par\r
-#    define BOOST_PP_SPLIT_II(n, a, b) BOOST_PP_SPLIT_ ## n(a, b)\r
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
-#    define BOOST_PP_SPLIT(n, im) BOOST_PP_SPLIT_I(n((im)))\r
-#    define BOOST_PP_SPLIT_I(n) BOOST_PP_SPLIT_ID(BOOST_PP_SPLIT_II_ ## n)\r
-#    define BOOST_PP_SPLIT_II_0(s) BOOST_PP_SPLIT_ID(BOOST_PP_SPLIT_0 s)\r
-#    define BOOST_PP_SPLIT_II_1(s) BOOST_PP_SPLIT_ID(BOOST_PP_SPLIT_1 s)\r
-#    define BOOST_PP_SPLIT_ID(id) id\r
-# else\r
-#    define BOOST_PP_SPLIT(n, im) BOOST_PP_SPLIT_I(n)(im)\r
-#    define BOOST_PP_SPLIT_I(n) BOOST_PP_SPLIT_ ## n\r
-# endif\r
-#\r
-# define BOOST_PP_SPLIT_0(a, b) a\r
-# define BOOST_PP_SPLIT_1(a, b) b\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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)
+#  *                                                                          *
+#  ************************************************************************** */
+#
+# ifndef BOOST_PREPROCESSOR_DETAIL_SPLIT_HPP
+# define BOOST_PREPROCESSOR_DETAIL_SPLIT_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+#
+# /* BOOST_PP_SPLIT */
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_SPLIT(n, im) BOOST_PP_SPLIT_I((n, im))
+#    define BOOST_PP_SPLIT_I(par) BOOST_PP_SPLIT_II ## par
+#    define BOOST_PP_SPLIT_II(n, a, b) BOOST_PP_SPLIT_ ## n(a, b)
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+#    define BOOST_PP_SPLIT(n, im) BOOST_PP_SPLIT_I(n((im)))
+#    define BOOST_PP_SPLIT_I(n) BOOST_PP_SPLIT_ID(BOOST_PP_SPLIT_II_ ## n)
+#    define BOOST_PP_SPLIT_II_0(s) BOOST_PP_SPLIT_ID(BOOST_PP_SPLIT_0 s)
+#    define BOOST_PP_SPLIT_II_1(s) BOOST_PP_SPLIT_ID(BOOST_PP_SPLIT_1 s)
+#    define BOOST_PP_SPLIT_ID(id) id
+# else
+#    define BOOST_PP_SPLIT(n, im) BOOST_PP_SPLIT_I(n)(im)
+#    define BOOST_PP_SPLIT_I(n) BOOST_PP_SPLIT_ ## n
+# endif
+#
+# define BOOST_PP_SPLIT_0(a, b) a
+# define BOOST_PP_SPLIT_1(a, b) b
+#
+# endif
index af8eb07a8d0f248a7e56afb8f2ff6f1eb7f3a6c9..ec2de24a6c4b38f03ad28e812e759274f6e2c3ee 100644 (file)
@@ -1,21 +1,21 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_FACILITIES_HPP\r
-# define BOOST_PREPROCESSOR_FACILITIES_HPP\r
-#\r
-# include <boost/preprocessor/facilities/apply.hpp>\r
-# include <boost/preprocessor/facilities/empty.hpp>\r
-# include <boost/preprocessor/facilities/expand.hpp>\r
-# include <boost/preprocessor/facilities/identity.hpp>\r
-# include <boost/preprocessor/facilities/intercept.hpp>\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_FACILITIES_HPP
+# define BOOST_PREPROCESSOR_FACILITIES_HPP
+#
+# include <boost/preprocessor/facilities/apply.hpp>
+# include <boost/preprocessor/facilities/empty.hpp>
+# include <boost/preprocessor/facilities/expand.hpp>
+# include <boost/preprocessor/facilities/identity.hpp>
+# include <boost/preprocessor/facilities/intercept.hpp>
+#
+# endif
index 360bb50e08a04629de0bbe48630e5fe544a1a1cf..e7d8c36bd5d6cbb5fca5e47dfdba0f7a983e933a 100644 (file)
@@ -1,34 +1,34 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_FACILITIES_APPLY_HPP\r
-# define BOOST_PREPROCESSOR_FACILITIES_APPLY_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/control/expr_iif.hpp>\r
-# include <boost/preprocessor/detail/is_unary.hpp>\r
-# include <boost/preprocessor/tuple/rem.hpp>\r
-#\r
-# /* BOOST_PP_APPLY */\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_APPLY(x) BOOST_PP_APPLY_I(x)\r
-#    define BOOST_PP_APPLY_I(x) BOOST_PP_EXPR_IIF(BOOST_PP_IS_UNARY(x), BOOST_PP_TUPLE_REM_1 x)\r
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC()\r
-#    define BOOST_PP_APPLY(x) BOOST_PP_APPLY_I(x)\r
-#    define BOOST_PP_APPLY_I(x) BOOST_PP_APPLY_ ## x\r
-#    define BOOST_PP_APPLY_(x) x\r
-#    define BOOST_PP_APPLY_BOOST_PP_NIL\r
-# else\r
-#    define BOOST_PP_APPLY(x) BOOST_PP_EXPR_IIF(BOOST_PP_IS_UNARY(x), BOOST_PP_TUPLE_REM_1 x)\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_FACILITIES_APPLY_HPP
+# define BOOST_PREPROCESSOR_FACILITIES_APPLY_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/control/expr_iif.hpp>
+# include <boost/preprocessor/detail/is_unary.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_APPLY */
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_APPLY(x) BOOST_PP_APPLY_I(x)
+#    define BOOST_PP_APPLY_I(x) BOOST_PP_EXPR_IIF(BOOST_PP_IS_UNARY(x), BOOST_PP_TUPLE_REM_1 x)
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC()
+#    define BOOST_PP_APPLY(x) BOOST_PP_APPLY_I(x)
+#    define BOOST_PP_APPLY_I(x) BOOST_PP_APPLY_ ## x
+#    define BOOST_PP_APPLY_(x) x
+#    define BOOST_PP_APPLY_BOOST_PP_NIL
+# else
+#    define BOOST_PP_APPLY(x) BOOST_PP_EXPR_IIF(BOOST_PP_IS_UNARY(x), BOOST_PP_TUPLE_REM_1 x)
+# endif
+#
+# endif
index 562d5fd2284abc37092ab5a11207290a8dc8ecde..c8661a1c2210f02b1afb9c96cd3d1807cf644a53 100644 (file)
@@ -1,28 +1,28 @@
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_FACILITIES_EXPAND_HPP\r
-# define BOOST_PREPROCESSOR_FACILITIES_EXPAND_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()\r
-#    define BOOST_PP_EXPAND(x) BOOST_PP_EXPAND_I(x)\r
-# else\r
-#    define BOOST_PP_EXPAND(x) BOOST_PP_EXPAND_OO((x))\r
-#    define BOOST_PP_EXPAND_OO(par) BOOST_PP_EXPAND_I ## par\r
-# endif\r
-#\r
-# define BOOST_PP_EXPAND_I(x) x\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_FACILITIES_EXPAND_HPP
+# define BOOST_PREPROCESSOR_FACILITIES_EXPAND_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
+#    define BOOST_PP_EXPAND(x) BOOST_PP_EXPAND_I(x)
+# else
+#    define BOOST_PP_EXPAND(x) BOOST_PP_EXPAND_OO((x))
+#    define BOOST_PP_EXPAND_OO(par) BOOST_PP_EXPAND_I ## par
+# endif
+#
+# define BOOST_PP_EXPAND_I(x) x
+#
+# endif
index 3cbaa67d482228f14620d51f50cb47e194628c89..41dcc6a9801848acc2a0829aba299ecc77e5abee 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP\r
-# define BOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP\r
-#\r
-# /* BOOST_PP_INTERCEPT */\r
-#\r
-# define BOOST_PP_INTERCEPT BOOST_PP_INTERCEPT_\r
-#\r
-# define BOOST_PP_INTERCEPT_0\r
-# define BOOST_PP_INTERCEPT_1\r
-# define BOOST_PP_INTERCEPT_2\r
-# define BOOST_PP_INTERCEPT_3\r
-# define BOOST_PP_INTERCEPT_4\r
-# define BOOST_PP_INTERCEPT_5\r
-# define BOOST_PP_INTERCEPT_6\r
-# define BOOST_PP_INTERCEPT_7\r
-# define BOOST_PP_INTERCEPT_8\r
-# define BOOST_PP_INTERCEPT_9\r
-# define BOOST_PP_INTERCEPT_10\r
-# define BOOST_PP_INTERCEPT_11\r
-# define BOOST_PP_INTERCEPT_12\r
-# define BOOST_PP_INTERCEPT_13\r
-# define BOOST_PP_INTERCEPT_14\r
-# define BOOST_PP_INTERCEPT_15\r
-# define BOOST_PP_INTERCEPT_16\r
-# define BOOST_PP_INTERCEPT_17\r
-# define BOOST_PP_INTERCEPT_18\r
-# define BOOST_PP_INTERCEPT_19\r
-# define BOOST_PP_INTERCEPT_20\r
-# define BOOST_PP_INTERCEPT_21\r
-# define BOOST_PP_INTERCEPT_22\r
-# define BOOST_PP_INTERCEPT_23\r
-# define BOOST_PP_INTERCEPT_24\r
-# define BOOST_PP_INTERCEPT_25\r
-# define BOOST_PP_INTERCEPT_26\r
-# define BOOST_PP_INTERCEPT_27\r
-# define BOOST_PP_INTERCEPT_28\r
-# define BOOST_PP_INTERCEPT_29\r
-# define BOOST_PP_INTERCEPT_30\r
-# define BOOST_PP_INTERCEPT_31\r
-# define BOOST_PP_INTERCEPT_32\r
-# define BOOST_PP_INTERCEPT_33\r
-# define BOOST_PP_INTERCEPT_34\r
-# define BOOST_PP_INTERCEPT_35\r
-# define BOOST_PP_INTERCEPT_36\r
-# define BOOST_PP_INTERCEPT_37\r
-# define BOOST_PP_INTERCEPT_38\r
-# define BOOST_PP_INTERCEPT_39\r
-# define BOOST_PP_INTERCEPT_40\r
-# define BOOST_PP_INTERCEPT_41\r
-# define BOOST_PP_INTERCEPT_42\r
-# define BOOST_PP_INTERCEPT_43\r
-# define BOOST_PP_INTERCEPT_44\r
-# define BOOST_PP_INTERCEPT_45\r
-# define BOOST_PP_INTERCEPT_46\r
-# define BOOST_PP_INTERCEPT_47\r
-# define BOOST_PP_INTERCEPT_48\r
-# define BOOST_PP_INTERCEPT_49\r
-# define BOOST_PP_INTERCEPT_50\r
-# define BOOST_PP_INTERCEPT_51\r
-# define BOOST_PP_INTERCEPT_52\r
-# define BOOST_PP_INTERCEPT_53\r
-# define BOOST_PP_INTERCEPT_54\r
-# define BOOST_PP_INTERCEPT_55\r
-# define BOOST_PP_INTERCEPT_56\r
-# define BOOST_PP_INTERCEPT_57\r
-# define BOOST_PP_INTERCEPT_58\r
-# define BOOST_PP_INTERCEPT_59\r
-# define BOOST_PP_INTERCEPT_60\r
-# define BOOST_PP_INTERCEPT_61\r
-# define BOOST_PP_INTERCEPT_62\r
-# define BOOST_PP_INTERCEPT_63\r
-# define BOOST_PP_INTERCEPT_64\r
-# define BOOST_PP_INTERCEPT_65\r
-# define BOOST_PP_INTERCEPT_66\r
-# define BOOST_PP_INTERCEPT_67\r
-# define BOOST_PP_INTERCEPT_68\r
-# define BOOST_PP_INTERCEPT_69\r
-# define BOOST_PP_INTERCEPT_70\r
-# define BOOST_PP_INTERCEPT_71\r
-# define BOOST_PP_INTERCEPT_72\r
-# define BOOST_PP_INTERCEPT_73\r
-# define BOOST_PP_INTERCEPT_74\r
-# define BOOST_PP_INTERCEPT_75\r
-# define BOOST_PP_INTERCEPT_76\r
-# define BOOST_PP_INTERCEPT_77\r
-# define BOOST_PP_INTERCEPT_78\r
-# define BOOST_PP_INTERCEPT_79\r
-# define BOOST_PP_INTERCEPT_80\r
-# define BOOST_PP_INTERCEPT_81\r
-# define BOOST_PP_INTERCEPT_82\r
-# define BOOST_PP_INTERCEPT_83\r
-# define BOOST_PP_INTERCEPT_84\r
-# define BOOST_PP_INTERCEPT_85\r
-# define BOOST_PP_INTERCEPT_86\r
-# define BOOST_PP_INTERCEPT_87\r
-# define BOOST_PP_INTERCEPT_88\r
-# define BOOST_PP_INTERCEPT_89\r
-# define BOOST_PP_INTERCEPT_90\r
-# define BOOST_PP_INTERCEPT_91\r
-# define BOOST_PP_INTERCEPT_92\r
-# define BOOST_PP_INTERCEPT_93\r
-# define BOOST_PP_INTERCEPT_94\r
-# define BOOST_PP_INTERCEPT_95\r
-# define BOOST_PP_INTERCEPT_96\r
-# define BOOST_PP_INTERCEPT_97\r
-# define BOOST_PP_INTERCEPT_98\r
-# define BOOST_PP_INTERCEPT_99\r
-# define BOOST_PP_INTERCEPT_100\r
-# define BOOST_PP_INTERCEPT_101\r
-# define BOOST_PP_INTERCEPT_102\r
-# define BOOST_PP_INTERCEPT_103\r
-# define BOOST_PP_INTERCEPT_104\r
-# define BOOST_PP_INTERCEPT_105\r
-# define BOOST_PP_INTERCEPT_106\r
-# define BOOST_PP_INTERCEPT_107\r
-# define BOOST_PP_INTERCEPT_108\r
-# define BOOST_PP_INTERCEPT_109\r
-# define BOOST_PP_INTERCEPT_110\r
-# define BOOST_PP_INTERCEPT_111\r
-# define BOOST_PP_INTERCEPT_112\r
-# define BOOST_PP_INTERCEPT_113\r
-# define BOOST_PP_INTERCEPT_114\r
-# define BOOST_PP_INTERCEPT_115\r
-# define BOOST_PP_INTERCEPT_116\r
-# define BOOST_PP_INTERCEPT_117\r
-# define BOOST_PP_INTERCEPT_118\r
-# define BOOST_PP_INTERCEPT_119\r
-# define BOOST_PP_INTERCEPT_120\r
-# define BOOST_PP_INTERCEPT_121\r
-# define BOOST_PP_INTERCEPT_122\r
-# define BOOST_PP_INTERCEPT_123\r
-# define BOOST_PP_INTERCEPT_124\r
-# define BOOST_PP_INTERCEPT_125\r
-# define BOOST_PP_INTERCEPT_126\r
-# define BOOST_PP_INTERCEPT_127\r
-# define BOOST_PP_INTERCEPT_128\r
-# define BOOST_PP_INTERCEPT_129\r
-# define BOOST_PP_INTERCEPT_130\r
-# define BOOST_PP_INTERCEPT_131\r
-# define BOOST_PP_INTERCEPT_132\r
-# define BOOST_PP_INTERCEPT_133\r
-# define BOOST_PP_INTERCEPT_134\r
-# define BOOST_PP_INTERCEPT_135\r
-# define BOOST_PP_INTERCEPT_136\r
-# define BOOST_PP_INTERCEPT_137\r
-# define BOOST_PP_INTERCEPT_138\r
-# define BOOST_PP_INTERCEPT_139\r
-# define BOOST_PP_INTERCEPT_140\r
-# define BOOST_PP_INTERCEPT_141\r
-# define BOOST_PP_INTERCEPT_142\r
-# define BOOST_PP_INTERCEPT_143\r
-# define BOOST_PP_INTERCEPT_144\r
-# define BOOST_PP_INTERCEPT_145\r
-# define BOOST_PP_INTERCEPT_146\r
-# define BOOST_PP_INTERCEPT_147\r
-# define BOOST_PP_INTERCEPT_148\r
-# define BOOST_PP_INTERCEPT_149\r
-# define BOOST_PP_INTERCEPT_150\r
-# define BOOST_PP_INTERCEPT_151\r
-# define BOOST_PP_INTERCEPT_152\r
-# define BOOST_PP_INTERCEPT_153\r
-# define BOOST_PP_INTERCEPT_154\r
-# define BOOST_PP_INTERCEPT_155\r
-# define BOOST_PP_INTERCEPT_156\r
-# define BOOST_PP_INTERCEPT_157\r
-# define BOOST_PP_INTERCEPT_158\r
-# define BOOST_PP_INTERCEPT_159\r
-# define BOOST_PP_INTERCEPT_160\r
-# define BOOST_PP_INTERCEPT_161\r
-# define BOOST_PP_INTERCEPT_162\r
-# define BOOST_PP_INTERCEPT_163\r
-# define BOOST_PP_INTERCEPT_164\r
-# define BOOST_PP_INTERCEPT_165\r
-# define BOOST_PP_INTERCEPT_166\r
-# define BOOST_PP_INTERCEPT_167\r
-# define BOOST_PP_INTERCEPT_168\r
-# define BOOST_PP_INTERCEPT_169\r
-# define BOOST_PP_INTERCEPT_170\r
-# define BOOST_PP_INTERCEPT_171\r
-# define BOOST_PP_INTERCEPT_172\r
-# define BOOST_PP_INTERCEPT_173\r
-# define BOOST_PP_INTERCEPT_174\r
-# define BOOST_PP_INTERCEPT_175\r
-# define BOOST_PP_INTERCEPT_176\r
-# define BOOST_PP_INTERCEPT_177\r
-# define BOOST_PP_INTERCEPT_178\r
-# define BOOST_PP_INTERCEPT_179\r
-# define BOOST_PP_INTERCEPT_180\r
-# define BOOST_PP_INTERCEPT_181\r
-# define BOOST_PP_INTERCEPT_182\r
-# define BOOST_PP_INTERCEPT_183\r
-# define BOOST_PP_INTERCEPT_184\r
-# define BOOST_PP_INTERCEPT_185\r
-# define BOOST_PP_INTERCEPT_186\r
-# define BOOST_PP_INTERCEPT_187\r
-# define BOOST_PP_INTERCEPT_188\r
-# define BOOST_PP_INTERCEPT_189\r
-# define BOOST_PP_INTERCEPT_190\r
-# define BOOST_PP_INTERCEPT_191\r
-# define BOOST_PP_INTERCEPT_192\r
-# define BOOST_PP_INTERCEPT_193\r
-# define BOOST_PP_INTERCEPT_194\r
-# define BOOST_PP_INTERCEPT_195\r
-# define BOOST_PP_INTERCEPT_196\r
-# define BOOST_PP_INTERCEPT_197\r
-# define BOOST_PP_INTERCEPT_198\r
-# define BOOST_PP_INTERCEPT_199\r
-# define BOOST_PP_INTERCEPT_200\r
-# define BOOST_PP_INTERCEPT_201\r
-# define BOOST_PP_INTERCEPT_202\r
-# define BOOST_PP_INTERCEPT_203\r
-# define BOOST_PP_INTERCEPT_204\r
-# define BOOST_PP_INTERCEPT_205\r
-# define BOOST_PP_INTERCEPT_206\r
-# define BOOST_PP_INTERCEPT_207\r
-# define BOOST_PP_INTERCEPT_208\r
-# define BOOST_PP_INTERCEPT_209\r
-# define BOOST_PP_INTERCEPT_210\r
-# define BOOST_PP_INTERCEPT_211\r
-# define BOOST_PP_INTERCEPT_212\r
-# define BOOST_PP_INTERCEPT_213\r
-# define BOOST_PP_INTERCEPT_214\r
-# define BOOST_PP_INTERCEPT_215\r
-# define BOOST_PP_INTERCEPT_216\r
-# define BOOST_PP_INTERCEPT_217\r
-# define BOOST_PP_INTERCEPT_218\r
-# define BOOST_PP_INTERCEPT_219\r
-# define BOOST_PP_INTERCEPT_220\r
-# define BOOST_PP_INTERCEPT_221\r
-# define BOOST_PP_INTERCEPT_222\r
-# define BOOST_PP_INTERCEPT_223\r
-# define BOOST_PP_INTERCEPT_224\r
-# define BOOST_PP_INTERCEPT_225\r
-# define BOOST_PP_INTERCEPT_226\r
-# define BOOST_PP_INTERCEPT_227\r
-# define BOOST_PP_INTERCEPT_228\r
-# define BOOST_PP_INTERCEPT_229\r
-# define BOOST_PP_INTERCEPT_230\r
-# define BOOST_PP_INTERCEPT_231\r
-# define BOOST_PP_INTERCEPT_232\r
-# define BOOST_PP_INTERCEPT_233\r
-# define BOOST_PP_INTERCEPT_234\r
-# define BOOST_PP_INTERCEPT_235\r
-# define BOOST_PP_INTERCEPT_236\r
-# define BOOST_PP_INTERCEPT_237\r
-# define BOOST_PP_INTERCEPT_238\r
-# define BOOST_PP_INTERCEPT_239\r
-# define BOOST_PP_INTERCEPT_240\r
-# define BOOST_PP_INTERCEPT_241\r
-# define BOOST_PP_INTERCEPT_242\r
-# define BOOST_PP_INTERCEPT_243\r
-# define BOOST_PP_INTERCEPT_244\r
-# define BOOST_PP_INTERCEPT_245\r
-# define BOOST_PP_INTERCEPT_246\r
-# define BOOST_PP_INTERCEPT_247\r
-# define BOOST_PP_INTERCEPT_248\r
-# define BOOST_PP_INTERCEPT_249\r
-# define BOOST_PP_INTERCEPT_250\r
-# define BOOST_PP_INTERCEPT_251\r
-# define BOOST_PP_INTERCEPT_252\r
-# define BOOST_PP_INTERCEPT_253\r
-# define BOOST_PP_INTERCEPT_254\r
-# define BOOST_PP_INTERCEPT_255\r
-# define BOOST_PP_INTERCEPT_256\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP
+# define BOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP
+#
+# /* BOOST_PP_INTERCEPT */
+#
+# define BOOST_PP_INTERCEPT BOOST_PP_INTERCEPT_
+#
+# define BOOST_PP_INTERCEPT_0
+# define BOOST_PP_INTERCEPT_1
+# define BOOST_PP_INTERCEPT_2
+# define BOOST_PP_INTERCEPT_3
+# define BOOST_PP_INTERCEPT_4
+# define BOOST_PP_INTERCEPT_5
+# define BOOST_PP_INTERCEPT_6
+# define BOOST_PP_INTERCEPT_7
+# define BOOST_PP_INTERCEPT_8
+# define BOOST_PP_INTERCEPT_9
+# define BOOST_PP_INTERCEPT_10
+# define BOOST_PP_INTERCEPT_11
+# define BOOST_PP_INTERCEPT_12
+# define BOOST_PP_INTERCEPT_13
+# define BOOST_PP_INTERCEPT_14
+# define BOOST_PP_INTERCEPT_15
+# define BOOST_PP_INTERCEPT_16
+# define BOOST_PP_INTERCEPT_17
+# define BOOST_PP_INTERCEPT_18
+# define BOOST_PP_INTERCEPT_19
+# define BOOST_PP_INTERCEPT_20
+# define BOOST_PP_INTERCEPT_21
+# define BOOST_PP_INTERCEPT_22
+# define BOOST_PP_INTERCEPT_23
+# define BOOST_PP_INTERCEPT_24
+# define BOOST_PP_INTERCEPT_25
+# define BOOST_PP_INTERCEPT_26
+# define BOOST_PP_INTERCEPT_27
+# define BOOST_PP_INTERCEPT_28
+# define BOOST_PP_INTERCEPT_29
+# define BOOST_PP_INTERCEPT_30
+# define BOOST_PP_INTERCEPT_31
+# define BOOST_PP_INTERCEPT_32
+# define BOOST_PP_INTERCEPT_33
+# define BOOST_PP_INTERCEPT_34
+# define BOOST_PP_INTERCEPT_35
+# define BOOST_PP_INTERCEPT_36
+# define BOOST_PP_INTERCEPT_37
+# define BOOST_PP_INTERCEPT_38
+# define BOOST_PP_INTERCEPT_39
+# define BOOST_PP_INTERCEPT_40
+# define BOOST_PP_INTERCEPT_41
+# define BOOST_PP_INTERCEPT_42
+# define BOOST_PP_INTERCEPT_43
+# define BOOST_PP_INTERCEPT_44
+# define BOOST_PP_INTERCEPT_45
+# define BOOST_PP_INTERCEPT_46
+# define BOOST_PP_INTERCEPT_47
+# define BOOST_PP_INTERCEPT_48
+# define BOOST_PP_INTERCEPT_49
+# define BOOST_PP_INTERCEPT_50
+# define BOOST_PP_INTERCEPT_51
+# define BOOST_PP_INTERCEPT_52
+# define BOOST_PP_INTERCEPT_53
+# define BOOST_PP_INTERCEPT_54
+# define BOOST_PP_INTERCEPT_55
+# define BOOST_PP_INTERCEPT_56
+# define BOOST_PP_INTERCEPT_57
+# define BOOST_PP_INTERCEPT_58
+# define BOOST_PP_INTERCEPT_59
+# define BOOST_PP_INTERCEPT_60
+# define BOOST_PP_INTERCEPT_61
+# define BOOST_PP_INTERCEPT_62
+# define BOOST_PP_INTERCEPT_63
+# define BOOST_PP_INTERCEPT_64
+# define BOOST_PP_INTERCEPT_65
+# define BOOST_PP_INTERCEPT_66
+# define BOOST_PP_INTERCEPT_67
+# define BOOST_PP_INTERCEPT_68
+# define BOOST_PP_INTERCEPT_69
+# define BOOST_PP_INTERCEPT_70
+# define BOOST_PP_INTERCEPT_71
+# define BOOST_PP_INTERCEPT_72
+# define BOOST_PP_INTERCEPT_73
+# define BOOST_PP_INTERCEPT_74
+# define BOOST_PP_INTERCEPT_75
+# define BOOST_PP_INTERCEPT_76
+# define BOOST_PP_INTERCEPT_77
+# define BOOST_PP_INTERCEPT_78
+# define BOOST_PP_INTERCEPT_79
+# define BOOST_PP_INTERCEPT_80
+# define BOOST_PP_INTERCEPT_81
+# define BOOST_PP_INTERCEPT_82
+# define BOOST_PP_INTERCEPT_83
+# define BOOST_PP_INTERCEPT_84
+# define BOOST_PP_INTERCEPT_85
+# define BOOST_PP_INTERCEPT_86
+# define BOOST_PP_INTERCEPT_87
+# define BOOST_PP_INTERCEPT_88
+# define BOOST_PP_INTERCEPT_89
+# define BOOST_PP_INTERCEPT_90
+# define BOOST_PP_INTERCEPT_91
+# define BOOST_PP_INTERCEPT_92
+# define BOOST_PP_INTERCEPT_93
+# define BOOST_PP_INTERCEPT_94
+# define BOOST_PP_INTERCEPT_95
+# define BOOST_PP_INTERCEPT_96
+# define BOOST_PP_INTERCEPT_97
+# define BOOST_PP_INTERCEPT_98
+# define BOOST_PP_INTERCEPT_99
+# define BOOST_PP_INTERCEPT_100
+# define BOOST_PP_INTERCEPT_101
+# define BOOST_PP_INTERCEPT_102
+# define BOOST_PP_INTERCEPT_103
+# define BOOST_PP_INTERCEPT_104
+# define BOOST_PP_INTERCEPT_105
+# define BOOST_PP_INTERCEPT_106
+# define BOOST_PP_INTERCEPT_107
+# define BOOST_PP_INTERCEPT_108
+# define BOOST_PP_INTERCEPT_109
+# define BOOST_PP_INTERCEPT_110
+# define BOOST_PP_INTERCEPT_111
+# define BOOST_PP_INTERCEPT_112
+# define BOOST_PP_INTERCEPT_113
+# define BOOST_PP_INTERCEPT_114
+# define BOOST_PP_INTERCEPT_115
+# define BOOST_PP_INTERCEPT_116
+# define BOOST_PP_INTERCEPT_117
+# define BOOST_PP_INTERCEPT_118
+# define BOOST_PP_INTERCEPT_119
+# define BOOST_PP_INTERCEPT_120
+# define BOOST_PP_INTERCEPT_121
+# define BOOST_PP_INTERCEPT_122
+# define BOOST_PP_INTERCEPT_123
+# define BOOST_PP_INTERCEPT_124
+# define BOOST_PP_INTERCEPT_125
+# define BOOST_PP_INTERCEPT_126
+# define BOOST_PP_INTERCEPT_127
+# define BOOST_PP_INTERCEPT_128
+# define BOOST_PP_INTERCEPT_129
+# define BOOST_PP_INTERCEPT_130
+# define BOOST_PP_INTERCEPT_131
+# define BOOST_PP_INTERCEPT_132
+# define BOOST_PP_INTERCEPT_133
+# define BOOST_PP_INTERCEPT_134
+# define BOOST_PP_INTERCEPT_135
+# define BOOST_PP_INTERCEPT_136
+# define BOOST_PP_INTERCEPT_137
+# define BOOST_PP_INTERCEPT_138
+# define BOOST_PP_INTERCEPT_139
+# define BOOST_PP_INTERCEPT_140
+# define BOOST_PP_INTERCEPT_141
+# define BOOST_PP_INTERCEPT_142
+# define BOOST_PP_INTERCEPT_143
+# define BOOST_PP_INTERCEPT_144
+# define BOOST_PP_INTERCEPT_145
+# define BOOST_PP_INTERCEPT_146
+# define BOOST_PP_INTERCEPT_147
+# define BOOST_PP_INTERCEPT_148
+# define BOOST_PP_INTERCEPT_149
+# define BOOST_PP_INTERCEPT_150
+# define BOOST_PP_INTERCEPT_151
+# define BOOST_PP_INTERCEPT_152
+# define BOOST_PP_INTERCEPT_153
+# define BOOST_PP_INTERCEPT_154
+# define BOOST_PP_INTERCEPT_155
+# define BOOST_PP_INTERCEPT_156
+# define BOOST_PP_INTERCEPT_157
+# define BOOST_PP_INTERCEPT_158
+# define BOOST_PP_INTERCEPT_159
+# define BOOST_PP_INTERCEPT_160
+# define BOOST_PP_INTERCEPT_161
+# define BOOST_PP_INTERCEPT_162
+# define BOOST_PP_INTERCEPT_163
+# define BOOST_PP_INTERCEPT_164
+# define BOOST_PP_INTERCEPT_165
+# define BOOST_PP_INTERCEPT_166
+# define BOOST_PP_INTERCEPT_167
+# define BOOST_PP_INTERCEPT_168
+# define BOOST_PP_INTERCEPT_169
+# define BOOST_PP_INTERCEPT_170
+# define BOOST_PP_INTERCEPT_171
+# define BOOST_PP_INTERCEPT_172
+# define BOOST_PP_INTERCEPT_173
+# define BOOST_PP_INTERCEPT_174
+# define BOOST_PP_INTERCEPT_175
+# define BOOST_PP_INTERCEPT_176
+# define BOOST_PP_INTERCEPT_177
+# define BOOST_PP_INTERCEPT_178
+# define BOOST_PP_INTERCEPT_179
+# define BOOST_PP_INTERCEPT_180
+# define BOOST_PP_INTERCEPT_181
+# define BOOST_PP_INTERCEPT_182
+# define BOOST_PP_INTERCEPT_183
+# define BOOST_PP_INTERCEPT_184
+# define BOOST_PP_INTERCEPT_185
+# define BOOST_PP_INTERCEPT_186
+# define BOOST_PP_INTERCEPT_187
+# define BOOST_PP_INTERCEPT_188
+# define BOOST_PP_INTERCEPT_189
+# define BOOST_PP_INTERCEPT_190
+# define BOOST_PP_INTERCEPT_191
+# define BOOST_PP_INTERCEPT_192
+# define BOOST_PP_INTERCEPT_193
+# define BOOST_PP_INTERCEPT_194
+# define BOOST_PP_INTERCEPT_195
+# define BOOST_PP_INTERCEPT_196
+# define BOOST_PP_INTERCEPT_197
+# define BOOST_PP_INTERCEPT_198
+# define BOOST_PP_INTERCEPT_199
+# define BOOST_PP_INTERCEPT_200
+# define BOOST_PP_INTERCEPT_201
+# define BOOST_PP_INTERCEPT_202
+# define BOOST_PP_INTERCEPT_203
+# define BOOST_PP_INTERCEPT_204
+# define BOOST_PP_INTERCEPT_205
+# define BOOST_PP_INTERCEPT_206
+# define BOOST_PP_INTERCEPT_207
+# define BOOST_PP_INTERCEPT_208
+# define BOOST_PP_INTERCEPT_209
+# define BOOST_PP_INTERCEPT_210
+# define BOOST_PP_INTERCEPT_211
+# define BOOST_PP_INTERCEPT_212
+# define BOOST_PP_INTERCEPT_213
+# define BOOST_PP_INTERCEPT_214
+# define BOOST_PP_INTERCEPT_215
+# define BOOST_PP_INTERCEPT_216
+# define BOOST_PP_INTERCEPT_217
+# define BOOST_PP_INTERCEPT_218
+# define BOOST_PP_INTERCEPT_219
+# define BOOST_PP_INTERCEPT_220
+# define BOOST_PP_INTERCEPT_221
+# define BOOST_PP_INTERCEPT_222
+# define BOOST_PP_INTERCEPT_223
+# define BOOST_PP_INTERCEPT_224
+# define BOOST_PP_INTERCEPT_225
+# define BOOST_PP_INTERCEPT_226
+# define BOOST_PP_INTERCEPT_227
+# define BOOST_PP_INTERCEPT_228
+# define BOOST_PP_INTERCEPT_229
+# define BOOST_PP_INTERCEPT_230
+# define BOOST_PP_INTERCEPT_231
+# define BOOST_PP_INTERCEPT_232
+# define BOOST_PP_INTERCEPT_233
+# define BOOST_PP_INTERCEPT_234
+# define BOOST_PP_INTERCEPT_235
+# define BOOST_PP_INTERCEPT_236
+# define BOOST_PP_INTERCEPT_237
+# define BOOST_PP_INTERCEPT_238
+# define BOOST_PP_INTERCEPT_239
+# define BOOST_PP_INTERCEPT_240
+# define BOOST_PP_INTERCEPT_241
+# define BOOST_PP_INTERCEPT_242
+# define BOOST_PP_INTERCEPT_243
+# define BOOST_PP_INTERCEPT_244
+# define BOOST_PP_INTERCEPT_245
+# define BOOST_PP_INTERCEPT_246
+# define BOOST_PP_INTERCEPT_247
+# define BOOST_PP_INTERCEPT_248
+# define BOOST_PP_INTERCEPT_249
+# define BOOST_PP_INTERCEPT_250
+# define BOOST_PP_INTERCEPT_251
+# define BOOST_PP_INTERCEPT_252
+# define BOOST_PP_INTERCEPT_253
+# define BOOST_PP_INTERCEPT_254
+# define BOOST_PP_INTERCEPT_255
+# define BOOST_PP_INTERCEPT_256
+#
+# endif
index b3dba6d69b67e872b85da9b73cc91c93742f8a40..f286dcdd19be26f7558013c4e71a90385b698641 100644 (file)
@@ -1,23 +1,23 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2003.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_FACILITIES_IS_1_HPP\r
-# define BOOST_PREPROCESSOR_FACILITIES_IS_1_HPP\r
-#\r
-# include <boost/preprocessor/cat.hpp>\r
-# include <boost/preprocessor/facilities/is_empty.hpp>\r
-#\r
-# /* BOOST_PP_IS_1 */\r
-#\r
-# define BOOST_PP_IS_1(x) BOOST_PP_IS_EMPTY(BOOST_PP_CAT(BOOST_PP_IS_1_HELPER_, x))\r
-# define BOOST_PP_IS_1_HELPER_1\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (C) Copyright Paul Mensonides 2003.
+#  *     Distributed under the Boost Software License, Version 1.0. (See
+#  *     accompanying file LICENSE_1_0.txt or copy at
+#  *     http://www.boost.org/LICENSE_1_0.txt)
+#  *                                                                          *
+#  ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_FACILITIES_IS_1_HPP
+# define BOOST_PREPROCESSOR_FACILITIES_IS_1_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/facilities/is_empty.hpp>
+#
+# /* BOOST_PP_IS_1 */
+#
+# define BOOST_PP_IS_1(x) BOOST_PP_IS_EMPTY(BOOST_PP_CAT(BOOST_PP_IS_1_HELPER_, x))
+# define BOOST_PP_IS_1_HELPER_1
+#
+# endif
index 3f6eebae6c87214e39a2b2189ab5b86b81c6744e..638265c57f8fac61438017c0468c5241459f95d0 100644 (file)
@@ -1,43 +1,43 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2003.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP\r
-# define BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/cat.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-# include <boost/preprocessor/facilities/empty.hpp>\r
-# include <boost/preprocessor/detail/split.hpp>\r
-#\r
-# /* BOOST_PP_IS_EMPTY */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I(x BOOST_PP_IS_EMPTY_HELPER)\r
-#    define BOOST_PP_IS_EMPTY_I(contents) BOOST_PP_TUPLE_ELEM(2, 1, (BOOST_PP_IS_EMPTY_DEF_ ## contents()))\r
-#    define BOOST_PP_IS_EMPTY_DEF_BOOST_PP_IS_EMPTY_HELPER 1, 1 BOOST_PP_EMPTY\r
-#    define BOOST_PP_IS_EMPTY_HELPER() , 0\r
-# else\r
-#    if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
-#        define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I(BOOST_PP_IS_EMPTY_HELPER x ())\r
-#        define BOOST_PP_IS_EMPTY_I(test) BOOST_PP_IS_EMPTY_II(BOOST_PP_SPLIT(0, BOOST_PP_CAT(BOOST_PP_IS_EMPTY_DEF_, test)))\r
-#        define BOOST_PP_IS_EMPTY_II(id) id\r
-#    else\r
-#        define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I((BOOST_PP_IS_EMPTY_HELPER x ()))\r
-#        define BOOST_PP_IS_EMPTY_I(par) BOOST_PP_IS_EMPTY_II ## par\r
-#        define BOOST_PP_IS_EMPTY_II(test) BOOST_PP_SPLIT(0, BOOST_PP_CAT(BOOST_PP_IS_EMPTY_DEF_, test))\r
-#    endif\r
-#    define BOOST_PP_IS_EMPTY_HELPER() 1\r
-#    define BOOST_PP_IS_EMPTY_DEF_1 1, BOOST_PP_NIL\r
-#    define BOOST_PP_IS_EMPTY_DEF_BOOST_PP_IS_EMPTY_HELPER 0, BOOST_PP_NIL\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (C) Copyright Paul Mensonides 2003.
+#  *     Distributed under the Boost Software License, Version 1.0. (See
+#  *     accompanying file LICENSE_1_0.txt or copy at
+#  *     http://www.boost.org/LICENSE_1_0.txt)
+#  *                                                                          *
+#  ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP
+# define BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/facilities/empty.hpp>
+# include <boost/preprocessor/detail/split.hpp>
+#
+# /* BOOST_PP_IS_EMPTY */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I(x BOOST_PP_IS_EMPTY_HELPER)
+#    define BOOST_PP_IS_EMPTY_I(contents) BOOST_PP_TUPLE_ELEM(2, 1, (BOOST_PP_IS_EMPTY_DEF_ ## contents()))
+#    define BOOST_PP_IS_EMPTY_DEF_BOOST_PP_IS_EMPTY_HELPER 1, 1 BOOST_PP_EMPTY
+#    define BOOST_PP_IS_EMPTY_HELPER() , 0
+# else
+#    if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+#        define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I(BOOST_PP_IS_EMPTY_HELPER x ())
+#        define BOOST_PP_IS_EMPTY_I(test) BOOST_PP_IS_EMPTY_II(BOOST_PP_SPLIT(0, BOOST_PP_CAT(BOOST_PP_IS_EMPTY_DEF_, test)))
+#        define BOOST_PP_IS_EMPTY_II(id) id
+#    else
+#        define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I((BOOST_PP_IS_EMPTY_HELPER x ()))
+#        define BOOST_PP_IS_EMPTY_I(par) BOOST_PP_IS_EMPTY_II ## par
+#        define BOOST_PP_IS_EMPTY_II(test) BOOST_PP_SPLIT(0, BOOST_PP_CAT(BOOST_PP_IS_EMPTY_DEF_, test))
+#    endif
+#    define BOOST_PP_IS_EMPTY_HELPER() 1
+#    define BOOST_PP_IS_EMPTY_DEF_1 1, BOOST_PP_NIL
+#    define BOOST_PP_IS_EMPTY_DEF_BOOST_PP_IS_EMPTY_HELPER 0, BOOST_PP_NIL
+# endif
+#
+# endif
index b437d1e985e2b35859671d5520c025ad4b56e035..baa5da9a656d556679cb9af678bc25b6a9806aa7 100644 (file)
@@ -1,30 +1,30 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2003.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_OR_1_HPP\r
-# define BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_OR_1_HPP\r
-#\r
-# include <boost/preprocessor/control/iif.hpp>\r
-# include <boost/preprocessor/facilities/empty.hpp>\r
-# include <boost/preprocessor/facilities/is_1.hpp>\r
-# include <boost/preprocessor/facilities/is_empty.hpp>\r
-#\r
-# /* BOOST_PP_IS_EMPTY_OR_1 */\r
-#\r
-# define BOOST_PP_IS_EMPTY_OR_1(x) \\r
-    BOOST_PP_IIF( \\r
-        BOOST_PP_IS_EMPTY(x BOOST_PP_EMPTY()), \\r
-        1 BOOST_PP_EMPTY, \\r
-        BOOST_PP_IS_1 \\r
-    )(x) \\r
-    /**/\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (C) Copyright Paul Mensonides 2003.
+#  *     Distributed under the Boost Software License, Version 1.0. (See
+#  *     accompanying file LICENSE_1_0.txt or copy at
+#  *     http://www.boost.org/LICENSE_1_0.txt)
+#  *                                                                          *
+#  ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_OR_1_HPP
+# define BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_OR_1_HPP
+#
+# include <boost/preprocessor/control/iif.hpp>
+# include <boost/preprocessor/facilities/empty.hpp>
+# include <boost/preprocessor/facilities/is_1.hpp>
+# include <boost/preprocessor/facilities/is_empty.hpp>
+#
+# /* BOOST_PP_IS_EMPTY_OR_1 */
+#
+# define BOOST_PP_IS_EMPTY_OR_1(x) \
+    BOOST_PP_IIF( \
+        BOOST_PP_IS_EMPTY(x BOOST_PP_EMPTY()), \
+        1 BOOST_PP_EMPTY, \
+        BOOST_PP_IS_1 \
+    )(x) \
+    /**/
+#
+# endif
index bd2541e7de54e62e0e8ffa27aef265722a6733d4..1055ac00a9c76300b4cd2c9e0028a091bc0ddfcf 100644 (file)
@@ -1,19 +1,19 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_ITERATION_HPP\r
-# define BOOST_PREPROCESSOR_ITERATION_HPP\r
-#\r
-# include <boost/preprocessor/iteration/iterate.hpp>\r
-# include <boost/preprocessor/iteration/local.hpp>\r
-# include <boost/preprocessor/iteration/self.hpp>\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_ITERATION_HPP
+# define BOOST_PREPROCESSOR_ITERATION_HPP
+#
+# include <boost/preprocessor/iteration/iterate.hpp>
+# include <boost/preprocessor/iteration/local.hpp>
+# include <boost/preprocessor/iteration/self.hpp>
+#
+# endif
index 29cf19db64e14d020d40b9c65ad1a3754c5eb974..ece21fc810e389405c6b0df310fa15d388fb8332 100644 (file)
@@ -1,99 +1,99 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_ITERATION_START_2\r
-#\r
-# undef BOOST_PP_ITERATION_START_2_DIGIT_1\r
-# undef BOOST_PP_ITERATION_START_2_DIGIT_2\r
-# undef BOOST_PP_ITERATION_START_2_DIGIT_3\r
-# undef BOOST_PP_ITERATION_START_2_DIGIT_4\r
-# undef BOOST_PP_ITERATION_START_2_DIGIT_5\r
-# undef BOOST_PP_ITERATION_START_2_DIGIT_6\r
-# undef BOOST_PP_ITERATION_START_2_DIGIT_7\r
-# undef BOOST_PP_ITERATION_START_2_DIGIT_8\r
-# undef BOOST_PP_ITERATION_START_2_DIGIT_9\r
-# undef BOOST_PP_ITERATION_START_2_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_ITERATION_START_2_DIGIT_3\r
-#    define BOOST_PP_ITERATION_START_2 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_2_DIGIT_3, BOOST_PP_ITERATION_START_2_DIGIT_2, BOOST_PP_ITERATION_START_2_DIGIT_1)\r
-# elif BOOST_PP_ITERATION_START_2_DIGIT_2\r
-#    define BOOST_PP_ITERATION_START_2 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_2_DIGIT_2, BOOST_PP_ITERATION_START_2_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_ITERATION_START_2 BOOST_PP_ITERATION_START_2_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_ITERATION_START_2
+#
+# undef BOOST_PP_ITERATION_START_2_DIGIT_1
+# undef BOOST_PP_ITERATION_START_2_DIGIT_2
+# undef BOOST_PP_ITERATION_START_2_DIGIT_3
+# undef BOOST_PP_ITERATION_START_2_DIGIT_4
+# undef BOOST_PP_ITERATION_START_2_DIGIT_5
+# undef BOOST_PP_ITERATION_START_2_DIGIT_6
+# undef BOOST_PP_ITERATION_START_2_DIGIT_7
+# undef BOOST_PP_ITERATION_START_2_DIGIT_8
+# undef BOOST_PP_ITERATION_START_2_DIGIT_9
+# undef BOOST_PP_ITERATION_START_2_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_ITERATION_START_2_DIGIT_3
+#    define BOOST_PP_ITERATION_START_2 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_2_DIGIT_3, BOOST_PP_ITERATION_START_2_DIGIT_2, BOOST_PP_ITERATION_START_2_DIGIT_1)
+# elif BOOST_PP_ITERATION_START_2_DIGIT_2
+#    define BOOST_PP_ITERATION_START_2 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_2_DIGIT_2, BOOST_PP_ITERATION_START_2_DIGIT_1)
+# else
+#    define BOOST_PP_ITERATION_START_2 BOOST_PP_ITERATION_START_2_DIGIT_1
+# endif
index fe5f6580554b21aff35236f601e112bba36aa3c2..8429eac7a104ab9a6313f305872a7e2ba95a75c4 100644 (file)
@@ -1,99 +1,99 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_ITERATION_START_3\r
-#\r
-# undef BOOST_PP_ITERATION_START_3_DIGIT_1\r
-# undef BOOST_PP_ITERATION_START_3_DIGIT_2\r
-# undef BOOST_PP_ITERATION_START_3_DIGIT_3\r
-# undef BOOST_PP_ITERATION_START_3_DIGIT_4\r
-# undef BOOST_PP_ITERATION_START_3_DIGIT_5\r
-# undef BOOST_PP_ITERATION_START_3_DIGIT_6\r
-# undef BOOST_PP_ITERATION_START_3_DIGIT_7\r
-# undef BOOST_PP_ITERATION_START_3_DIGIT_8\r
-# undef BOOST_PP_ITERATION_START_3_DIGIT_9\r
-# undef BOOST_PP_ITERATION_START_3_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_ITERATION_START_3_DIGIT_3\r
-#    define BOOST_PP_ITERATION_START_3 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_3_DIGIT_3, BOOST_PP_ITERATION_START_3_DIGIT_2, BOOST_PP_ITERATION_START_3_DIGIT_1)\r
-# elif BOOST_PP_ITERATION_START_3_DIGIT_2\r
-#    define BOOST_PP_ITERATION_START_3 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_3_DIGIT_2, BOOST_PP_ITERATION_START_3_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_ITERATION_START_3 BOOST_PP_ITERATION_START_3_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_ITERATION_START_3
+#
+# undef BOOST_PP_ITERATION_START_3_DIGIT_1
+# undef BOOST_PP_ITERATION_START_3_DIGIT_2
+# undef BOOST_PP_ITERATION_START_3_DIGIT_3
+# undef BOOST_PP_ITERATION_START_3_DIGIT_4
+# undef BOOST_PP_ITERATION_START_3_DIGIT_5
+# undef BOOST_PP_ITERATION_START_3_DIGIT_6
+# undef BOOST_PP_ITERATION_START_3_DIGIT_7
+# undef BOOST_PP_ITERATION_START_3_DIGIT_8
+# undef BOOST_PP_ITERATION_START_3_DIGIT_9
+# undef BOOST_PP_ITERATION_START_3_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_ITERATION_START_3_DIGIT_3
+#    define BOOST_PP_ITERATION_START_3 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_3_DIGIT_3, BOOST_PP_ITERATION_START_3_DIGIT_2, BOOST_PP_ITERATION_START_3_DIGIT_1)
+# elif BOOST_PP_ITERATION_START_3_DIGIT_2
+#    define BOOST_PP_ITERATION_START_3 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_3_DIGIT_2, BOOST_PP_ITERATION_START_3_DIGIT_1)
+# else
+#    define BOOST_PP_ITERATION_START_3 BOOST_PP_ITERATION_START_3_DIGIT_1
+# endif
index 0a5a3986fd85c8baae4eba81be6f5d1fcd275cd9..ba0832f284aee4c949057df705271c51b2872c31 100644 (file)
@@ -1,99 +1,99 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_ITERATION_START_4\r
-#\r
-# undef BOOST_PP_ITERATION_START_4_DIGIT_1\r
-# undef BOOST_PP_ITERATION_START_4_DIGIT_2\r
-# undef BOOST_PP_ITERATION_START_4_DIGIT_3\r
-# undef BOOST_PP_ITERATION_START_4_DIGIT_4\r
-# undef BOOST_PP_ITERATION_START_4_DIGIT_5\r
-# undef BOOST_PP_ITERATION_START_4_DIGIT_6\r
-# undef BOOST_PP_ITERATION_START_4_DIGIT_7\r
-# undef BOOST_PP_ITERATION_START_4_DIGIT_8\r
-# undef BOOST_PP_ITERATION_START_4_DIGIT_9\r
-# undef BOOST_PP_ITERATION_START_4_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_ITERATION_START_4_DIGIT_3\r
-#    define BOOST_PP_ITERATION_START_4 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_4_DIGIT_3, BOOST_PP_ITERATION_START_4_DIGIT_2, BOOST_PP_ITERATION_START_4_DIGIT_1)\r
-# elif BOOST_PP_ITERATION_START_4_DIGIT_2\r
-#    define BOOST_PP_ITERATION_START_4 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_4_DIGIT_2, BOOST_PP_ITERATION_START_4_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_ITERATION_START_4 BOOST_PP_ITERATION_START_4_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_ITERATION_START_4
+#
+# undef BOOST_PP_ITERATION_START_4_DIGIT_1
+# undef BOOST_PP_ITERATION_START_4_DIGIT_2
+# undef BOOST_PP_ITERATION_START_4_DIGIT_3
+# undef BOOST_PP_ITERATION_START_4_DIGIT_4
+# undef BOOST_PP_ITERATION_START_4_DIGIT_5
+# undef BOOST_PP_ITERATION_START_4_DIGIT_6
+# undef BOOST_PP_ITERATION_START_4_DIGIT_7
+# undef BOOST_PP_ITERATION_START_4_DIGIT_8
+# undef BOOST_PP_ITERATION_START_4_DIGIT_9
+# undef BOOST_PP_ITERATION_START_4_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_ITERATION_START_4_DIGIT_3
+#    define BOOST_PP_ITERATION_START_4 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_4_DIGIT_3, BOOST_PP_ITERATION_START_4_DIGIT_2, BOOST_PP_ITERATION_START_4_DIGIT_1)
+# elif BOOST_PP_ITERATION_START_4_DIGIT_2
+#    define BOOST_PP_ITERATION_START_4 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_4_DIGIT_2, BOOST_PP_ITERATION_START_4_DIGIT_1)
+# else
+#    define BOOST_PP_ITERATION_START_4 BOOST_PP_ITERATION_START_4_DIGIT_1
+# endif
index 227efde9085c02144487dc0e0b1a3de8fcba2c53..f4888c7b57dd4de2f10ee43344a6879456c85dc7 100644 (file)
@@ -1,99 +1,99 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_ITERATION_START_5\r
-#\r
-# undef BOOST_PP_ITERATION_START_5_DIGIT_1\r
-# undef BOOST_PP_ITERATION_START_5_DIGIT_2\r
-# undef BOOST_PP_ITERATION_START_5_DIGIT_3\r
-# undef BOOST_PP_ITERATION_START_5_DIGIT_4\r
-# undef BOOST_PP_ITERATION_START_5_DIGIT_5\r
-# undef BOOST_PP_ITERATION_START_5_DIGIT_6\r
-# undef BOOST_PP_ITERATION_START_5_DIGIT_7\r
-# undef BOOST_PP_ITERATION_START_5_DIGIT_8\r
-# undef BOOST_PP_ITERATION_START_5_DIGIT_9\r
-# undef BOOST_PP_ITERATION_START_5_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_ITERATION_START_5_DIGIT_3\r
-#    define BOOST_PP_ITERATION_START_5 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_5_DIGIT_3, BOOST_PP_ITERATION_START_5_DIGIT_2, BOOST_PP_ITERATION_START_5_DIGIT_1)\r
-# elif BOOST_PP_ITERATION_START_5_DIGIT_2\r
-#    define BOOST_PP_ITERATION_START_5 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_5_DIGIT_2, BOOST_PP_ITERATION_START_5_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_ITERATION_START_5 BOOST_PP_ITERATION_START_5_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_ITERATION_START_5
+#
+# undef BOOST_PP_ITERATION_START_5_DIGIT_1
+# undef BOOST_PP_ITERATION_START_5_DIGIT_2
+# undef BOOST_PP_ITERATION_START_5_DIGIT_3
+# undef BOOST_PP_ITERATION_START_5_DIGIT_4
+# undef BOOST_PP_ITERATION_START_5_DIGIT_5
+# undef BOOST_PP_ITERATION_START_5_DIGIT_6
+# undef BOOST_PP_ITERATION_START_5_DIGIT_7
+# undef BOOST_PP_ITERATION_START_5_DIGIT_8
+# undef BOOST_PP_ITERATION_START_5_DIGIT_9
+# undef BOOST_PP_ITERATION_START_5_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_ITERATION_START_5_DIGIT_3
+#    define BOOST_PP_ITERATION_START_5 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_5_DIGIT_3, BOOST_PP_ITERATION_START_5_DIGIT_2, BOOST_PP_ITERATION_START_5_DIGIT_1)
+# elif BOOST_PP_ITERATION_START_5_DIGIT_2
+#    define BOOST_PP_ITERATION_START_5 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_5_DIGIT_2, BOOST_PP_ITERATION_START_5_DIGIT_1)
+# else
+#    define BOOST_PP_ITERATION_START_5 BOOST_PP_ITERATION_START_5_DIGIT_1
+# endif
index fd053c054ef447144a3c0016bb3c3b5e098718a0..faef6f49e33f8b713079c52ce0fe9010460c9408 100644 (file)
@@ -1,99 +1,99 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_ITERATION_FINISH_2\r
-#\r
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_1\r
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_2\r
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_3\r
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_4\r
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_5\r
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_6\r
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_7\r
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_8\r
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_9\r
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_ITERATION_FINISH_2_DIGIT_3\r
-#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_2_DIGIT_3, BOOST_PP_ITERATION_FINISH_2_DIGIT_2, BOOST_PP_ITERATION_FINISH_2_DIGIT_1)\r
-# elif BOOST_PP_ITERATION_FINISH_2_DIGIT_2\r
-#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_2_DIGIT_2, BOOST_PP_ITERATION_FINISH_2_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_ITERATION_FINISH_2_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_ITERATION_FINISH_2
+#
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_1
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_2
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_3
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_4
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_5
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_6
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_7
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_8
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_9
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_ITERATION_FINISH_2_DIGIT_3
+#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_2_DIGIT_3, BOOST_PP_ITERATION_FINISH_2_DIGIT_2, BOOST_PP_ITERATION_FINISH_2_DIGIT_1)
+# elif BOOST_PP_ITERATION_FINISH_2_DIGIT_2
+#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_2_DIGIT_2, BOOST_PP_ITERATION_FINISH_2_DIGIT_1)
+# else
+#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_ITERATION_FINISH_2_DIGIT_1
+# endif
index f6838f069e1be305eca3a5e065bce90f55f60218..38d9adec4608998f358d3e119b46b8c6f9502470 100644 (file)
@@ -1,99 +1,99 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_ITERATION_FINISH_3\r
-#\r
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_1\r
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_2\r
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_3\r
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_4\r
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_5\r
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_6\r
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_7\r
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_8\r
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_9\r
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_ITERATION_FINISH_3_DIGIT_3\r
-#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_3_DIGIT_3, BOOST_PP_ITERATION_FINISH_3_DIGIT_2, BOOST_PP_ITERATION_FINISH_3_DIGIT_1)\r
-# elif BOOST_PP_ITERATION_FINISH_3_DIGIT_2\r
-#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_3_DIGIT_2, BOOST_PP_ITERATION_FINISH_3_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_ITERATION_FINISH_3_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_ITERATION_FINISH_3
+#
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_1
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_2
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_3
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_4
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_5
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_6
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_7
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_8
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_9
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_ITERATION_FINISH_3_DIGIT_3
+#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_3_DIGIT_3, BOOST_PP_ITERATION_FINISH_3_DIGIT_2, BOOST_PP_ITERATION_FINISH_3_DIGIT_1)
+# elif BOOST_PP_ITERATION_FINISH_3_DIGIT_2
+#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_3_DIGIT_2, BOOST_PP_ITERATION_FINISH_3_DIGIT_1)
+# else
+#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_ITERATION_FINISH_3_DIGIT_1
+# endif
index 904973207e4eabc7c2fe48a50bd212839a112e6b..7f771c2ce7a765f99b3a299b9fcc62f1b1e75a9c 100644 (file)
@@ -1,99 +1,99 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_ITERATION_FINISH_4\r
-#\r
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_1\r
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_2\r
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_3\r
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_4\r
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_5\r
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_6\r
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_7\r
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_8\r
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_9\r
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_ITERATION_FINISH_4_DIGIT_3\r
-#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_4_DIGIT_3, BOOST_PP_ITERATION_FINISH_4_DIGIT_2, BOOST_PP_ITERATION_FINISH_4_DIGIT_1)\r
-# elif BOOST_PP_ITERATION_FINISH_4_DIGIT_2\r
-#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_4_DIGIT_2, BOOST_PP_ITERATION_FINISH_4_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_ITERATION_FINISH_4_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_ITERATION_FINISH_4
+#
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_1
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_2
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_3
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_4
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_5
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_6
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_7
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_8
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_9
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_ITERATION_FINISH_4_DIGIT_3
+#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_4_DIGIT_3, BOOST_PP_ITERATION_FINISH_4_DIGIT_2, BOOST_PP_ITERATION_FINISH_4_DIGIT_1)
+# elif BOOST_PP_ITERATION_FINISH_4_DIGIT_2
+#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_4_DIGIT_2, BOOST_PP_ITERATION_FINISH_4_DIGIT_1)
+# else
+#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_ITERATION_FINISH_4_DIGIT_1
+# endif
index 3fddffdd382a54ffdff54d3bc854b0306c7958df..9f27d5884d48bc99b3347eab1998ca76dcc0e2bc 100644 (file)
@@ -1,99 +1,99 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_ITERATION_FINISH_5\r
-#\r
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_1\r
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_2\r
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_3\r
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_4\r
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_5\r
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_6\r
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_7\r
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_8\r
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_9\r
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_ITERATION_FINISH_5_DIGIT_3\r
-#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_5_DIGIT_3, BOOST_PP_ITERATION_FINISH_5_DIGIT_2, BOOST_PP_ITERATION_FINISH_5_DIGIT_1)\r
-# elif BOOST_PP_ITERATION_FINISH_5_DIGIT_2\r
-#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_5_DIGIT_2, BOOST_PP_ITERATION_FINISH_5_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_ITERATION_FINISH_5_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_ITERATION_FINISH_5
+#
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_1
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_2
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_3
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_4
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_5
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_6
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_7
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_8
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_9
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_ITERATION_FINISH_5_DIGIT_3
+#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_5_DIGIT_3, BOOST_PP_ITERATION_FINISH_5_DIGIT_2, BOOST_PP_ITERATION_FINISH_5_DIGIT_1)
+# elif BOOST_PP_ITERATION_FINISH_5_DIGIT_2
+#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_5_DIGIT_2, BOOST_PP_ITERATION_FINISH_5_DIGIT_1)
+# else
+#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_ITERATION_FINISH_5_DIGIT_1
+# endif
index 7fbd1ff07a503c07333f2cbb7258af51b6f09326..0236944cac2f9690c6f69a06eded32e1806cdfe3 100644 (file)
@@ -1,99 +1,99 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_LOCAL_FE\r
-#\r
-# undef BOOST_PP_LOCAL_FE_DIGIT_1\r
-# undef BOOST_PP_LOCAL_FE_DIGIT_2\r
-# undef BOOST_PP_LOCAL_FE_DIGIT_3\r
-# undef BOOST_PP_LOCAL_FE_DIGIT_4\r
-# undef BOOST_PP_LOCAL_FE_DIGIT_5\r
-# undef BOOST_PP_LOCAL_FE_DIGIT_6\r
-# undef BOOST_PP_LOCAL_FE_DIGIT_7\r
-# undef BOOST_PP_LOCAL_FE_DIGIT_8\r
-# undef BOOST_PP_LOCAL_FE_DIGIT_9\r
-# undef BOOST_PP_LOCAL_FE_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_LOCAL_FE_DIGIT_3\r
-#    define BOOST_PP_LOCAL_FE() BOOST_PP_SLOT_CC_3(BOOST_PP_LOCAL_FE_DIGIT_3, BOOST_PP_LOCAL_FE_DIGIT_2, BOOST_PP_LOCAL_FE_DIGIT_1)\r
-# elif BOOST_PP_LOCAL_FE_DIGIT_2\r
-#    define BOOST_PP_LOCAL_FE() BOOST_PP_SLOT_CC_2(BOOST_PP_LOCAL_FE_DIGIT_2, BOOST_PP_LOCAL_FE_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_LOCAL_FE() BOOST_PP_LOCAL_FE_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_LOCAL_FE
+#
+# undef BOOST_PP_LOCAL_FE_DIGIT_1
+# undef BOOST_PP_LOCAL_FE_DIGIT_2
+# undef BOOST_PP_LOCAL_FE_DIGIT_3
+# undef BOOST_PP_LOCAL_FE_DIGIT_4
+# undef BOOST_PP_LOCAL_FE_DIGIT_5
+# undef BOOST_PP_LOCAL_FE_DIGIT_6
+# undef BOOST_PP_LOCAL_FE_DIGIT_7
+# undef BOOST_PP_LOCAL_FE_DIGIT_8
+# undef BOOST_PP_LOCAL_FE_DIGIT_9
+# undef BOOST_PP_LOCAL_FE_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_LOCAL_FE_DIGIT_3
+#    define BOOST_PP_LOCAL_FE() BOOST_PP_SLOT_CC_3(BOOST_PP_LOCAL_FE_DIGIT_3, BOOST_PP_LOCAL_FE_DIGIT_2, BOOST_PP_LOCAL_FE_DIGIT_1)
+# elif BOOST_PP_LOCAL_FE_DIGIT_2
+#    define BOOST_PP_LOCAL_FE() BOOST_PP_SLOT_CC_2(BOOST_PP_LOCAL_FE_DIGIT_2, BOOST_PP_LOCAL_FE_DIGIT_1)
+# else
+#    define BOOST_PP_LOCAL_FE() BOOST_PP_LOCAL_FE_DIGIT_1
+# endif
index 33e2ddac40f639107bcaa3cfd6ef4f4225852bf4..b689f634f9a99908fa5ee4969593e6d20a5c0ad7 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# if defined(BOOST_PP_ITERATION_LIMITS)\r
-#    if !defined(BOOST_PP_FILENAME_2)\r
-#        error BOOST_PP_ERROR:  depth #2 filename is not defined\r
-#    endif\r
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)\r
-#    include <boost/preprocessor/iteration/detail/bounds/lower2.hpp>\r
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)\r
-#    include <boost/preprocessor/iteration/detail/bounds/upper2.hpp>\r
-#    define BOOST_PP_ITERATION_FLAGS_2 0\r
-#    undef BOOST_PP_ITERATION_LIMITS\r
-# elif defined(BOOST_PP_ITERATION_PARAMS_2)\r
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_2)\r
-#    include <boost/preprocessor/iteration/detail/bounds/lower2.hpp>\r
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_2)\r
-#    include <boost/preprocessor/iteration/detail/bounds/upper2.hpp>\r
-#    define BOOST_PP_FILENAME_2 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_2)\r
-#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_2) >= 4\r
-#        define BOOST_PP_ITERATION_FLAGS_2 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_2)\r
-#    else\r
-#        define BOOST_PP_ITERATION_FLAGS_2 0\r
-#    endif\r
-# else\r
-#    error BOOST_PP_ERROR:  depth #2 iteration boundaries or filename not defined\r
-# endif\r
-#\r
-# undef BOOST_PP_ITERATION_DEPTH\r
-# define BOOST_PP_ITERATION_DEPTH() 2\r
-#\r
-# if (BOOST_PP_ITERATION_START_2) > (BOOST_PP_ITERATION_FINISH_2)\r
-#    include <boost/preprocessor/iteration/detail/iter/reverse2.hpp>\r
-# else\r
-#    if BOOST_PP_ITERATION_START_2 <= 0 && BOOST_PP_ITERATION_FINISH_2 >= 0\r
-#        define BOOST_PP_ITERATION_2 0\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 1 && BOOST_PP_ITERATION_FINISH_2 >= 1\r
-#        define BOOST_PP_ITERATION_2 1\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 2 && BOOST_PP_ITERATION_FINISH_2 >= 2\r
-#        define BOOST_PP_ITERATION_2 2\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 3 && BOOST_PP_ITERATION_FINISH_2 >= 3\r
-#        define BOOST_PP_ITERATION_2 3\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 4 && BOOST_PP_ITERATION_FINISH_2 >= 4\r
-#        define BOOST_PP_ITERATION_2 4\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 5 && BOOST_PP_ITERATION_FINISH_2 >= 5\r
-#        define BOOST_PP_ITERATION_2 5\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 6 && BOOST_PP_ITERATION_FINISH_2 >= 6\r
-#        define BOOST_PP_ITERATION_2 6\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 7 && BOOST_PP_ITERATION_FINISH_2 >= 7\r
-#        define BOOST_PP_ITERATION_2 7\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 8 && BOOST_PP_ITERATION_FINISH_2 >= 8\r
-#        define BOOST_PP_ITERATION_2 8\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 9 && BOOST_PP_ITERATION_FINISH_2 >= 9\r
-#        define BOOST_PP_ITERATION_2 9\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 10 && BOOST_PP_ITERATION_FINISH_2 >= 10\r
-#        define BOOST_PP_ITERATION_2 10\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 11 && BOOST_PP_ITERATION_FINISH_2 >= 11\r
-#        define BOOST_PP_ITERATION_2 11\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 12 && BOOST_PP_ITERATION_FINISH_2 >= 12\r
-#        define BOOST_PP_ITERATION_2 12\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 13 && BOOST_PP_ITERATION_FINISH_2 >= 13\r
-#        define BOOST_PP_ITERATION_2 13\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 14 && BOOST_PP_ITERATION_FINISH_2 >= 14\r
-#        define BOOST_PP_ITERATION_2 14\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 15 && BOOST_PP_ITERATION_FINISH_2 >= 15\r
-#        define BOOST_PP_ITERATION_2 15\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 16 && BOOST_PP_ITERATION_FINISH_2 >= 16\r
-#        define BOOST_PP_ITERATION_2 16\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 17 && BOOST_PP_ITERATION_FINISH_2 >= 17\r
-#        define BOOST_PP_ITERATION_2 17\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 18 && BOOST_PP_ITERATION_FINISH_2 >= 18\r
-#        define BOOST_PP_ITERATION_2 18\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 19 && BOOST_PP_ITERATION_FINISH_2 >= 19\r
-#        define BOOST_PP_ITERATION_2 19\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 20 && BOOST_PP_ITERATION_FINISH_2 >= 20\r
-#        define BOOST_PP_ITERATION_2 20\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 21 && BOOST_PP_ITERATION_FINISH_2 >= 21\r
-#        define BOOST_PP_ITERATION_2 21\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 22 && BOOST_PP_ITERATION_FINISH_2 >= 22\r
-#        define BOOST_PP_ITERATION_2 22\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 23 && BOOST_PP_ITERATION_FINISH_2 >= 23\r
-#        define BOOST_PP_ITERATION_2 23\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 24 && BOOST_PP_ITERATION_FINISH_2 >= 24\r
-#        define BOOST_PP_ITERATION_2 24\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 25 && BOOST_PP_ITERATION_FINISH_2 >= 25\r
-#        define BOOST_PP_ITERATION_2 25\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 26 && BOOST_PP_ITERATION_FINISH_2 >= 26\r
-#        define BOOST_PP_ITERATION_2 26\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 27 && BOOST_PP_ITERATION_FINISH_2 >= 27\r
-#        define BOOST_PP_ITERATION_2 27\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 28 && BOOST_PP_ITERATION_FINISH_2 >= 28\r
-#        define BOOST_PP_ITERATION_2 28\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 29 && BOOST_PP_ITERATION_FINISH_2 >= 29\r
-#        define BOOST_PP_ITERATION_2 29\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 30 && BOOST_PP_ITERATION_FINISH_2 >= 30\r
-#        define BOOST_PP_ITERATION_2 30\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 31 && BOOST_PP_ITERATION_FINISH_2 >= 31\r
-#        define BOOST_PP_ITERATION_2 31\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 32 && BOOST_PP_ITERATION_FINISH_2 >= 32\r
-#        define BOOST_PP_ITERATION_2 32\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 33 && BOOST_PP_ITERATION_FINISH_2 >= 33\r
-#        define BOOST_PP_ITERATION_2 33\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 34 && BOOST_PP_ITERATION_FINISH_2 >= 34\r
-#        define BOOST_PP_ITERATION_2 34\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 35 && BOOST_PP_ITERATION_FINISH_2 >= 35\r
-#        define BOOST_PP_ITERATION_2 35\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 36 && BOOST_PP_ITERATION_FINISH_2 >= 36\r
-#        define BOOST_PP_ITERATION_2 36\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 37 && BOOST_PP_ITERATION_FINISH_2 >= 37\r
-#        define BOOST_PP_ITERATION_2 37\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 38 && BOOST_PP_ITERATION_FINISH_2 >= 38\r
-#        define BOOST_PP_ITERATION_2 38\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 39 && BOOST_PP_ITERATION_FINISH_2 >= 39\r
-#        define BOOST_PP_ITERATION_2 39\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 40 && BOOST_PP_ITERATION_FINISH_2 >= 40\r
-#        define BOOST_PP_ITERATION_2 40\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 41 && BOOST_PP_ITERATION_FINISH_2 >= 41\r
-#        define BOOST_PP_ITERATION_2 41\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 42 && BOOST_PP_ITERATION_FINISH_2 >= 42\r
-#        define BOOST_PP_ITERATION_2 42\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 43 && BOOST_PP_ITERATION_FINISH_2 >= 43\r
-#        define BOOST_PP_ITERATION_2 43\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 44 && BOOST_PP_ITERATION_FINISH_2 >= 44\r
-#        define BOOST_PP_ITERATION_2 44\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 45 && BOOST_PP_ITERATION_FINISH_2 >= 45\r
-#        define BOOST_PP_ITERATION_2 45\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 46 && BOOST_PP_ITERATION_FINISH_2 >= 46\r
-#        define BOOST_PP_ITERATION_2 46\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 47 && BOOST_PP_ITERATION_FINISH_2 >= 47\r
-#        define BOOST_PP_ITERATION_2 47\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 48 && BOOST_PP_ITERATION_FINISH_2 >= 48\r
-#        define BOOST_PP_ITERATION_2 48\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 49 && BOOST_PP_ITERATION_FINISH_2 >= 49\r
-#        define BOOST_PP_ITERATION_2 49\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 50 && BOOST_PP_ITERATION_FINISH_2 >= 50\r
-#        define BOOST_PP_ITERATION_2 50\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 51 && BOOST_PP_ITERATION_FINISH_2 >= 51\r
-#        define BOOST_PP_ITERATION_2 51\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 52 && BOOST_PP_ITERATION_FINISH_2 >= 52\r
-#        define BOOST_PP_ITERATION_2 52\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 53 && BOOST_PP_ITERATION_FINISH_2 >= 53\r
-#        define BOOST_PP_ITERATION_2 53\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 54 && BOOST_PP_ITERATION_FINISH_2 >= 54\r
-#        define BOOST_PP_ITERATION_2 54\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 55 && BOOST_PP_ITERATION_FINISH_2 >= 55\r
-#        define BOOST_PP_ITERATION_2 55\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 56 && BOOST_PP_ITERATION_FINISH_2 >= 56\r
-#        define BOOST_PP_ITERATION_2 56\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 57 && BOOST_PP_ITERATION_FINISH_2 >= 57\r
-#        define BOOST_PP_ITERATION_2 57\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 58 && BOOST_PP_ITERATION_FINISH_2 >= 58\r
-#        define BOOST_PP_ITERATION_2 58\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 59 && BOOST_PP_ITERATION_FINISH_2 >= 59\r
-#        define BOOST_PP_ITERATION_2 59\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 60 && BOOST_PP_ITERATION_FINISH_2 >= 60\r
-#        define BOOST_PP_ITERATION_2 60\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 61 && BOOST_PP_ITERATION_FINISH_2 >= 61\r
-#        define BOOST_PP_ITERATION_2 61\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 62 && BOOST_PP_ITERATION_FINISH_2 >= 62\r
-#        define BOOST_PP_ITERATION_2 62\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 63 && BOOST_PP_ITERATION_FINISH_2 >= 63\r
-#        define BOOST_PP_ITERATION_2 63\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 64 && BOOST_PP_ITERATION_FINISH_2 >= 64\r
-#        define BOOST_PP_ITERATION_2 64\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 65 && BOOST_PP_ITERATION_FINISH_2 >= 65\r
-#        define BOOST_PP_ITERATION_2 65\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 66 && BOOST_PP_ITERATION_FINISH_2 >= 66\r
-#        define BOOST_PP_ITERATION_2 66\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 67 && BOOST_PP_ITERATION_FINISH_2 >= 67\r
-#        define BOOST_PP_ITERATION_2 67\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 68 && BOOST_PP_ITERATION_FINISH_2 >= 68\r
-#        define BOOST_PP_ITERATION_2 68\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 69 && BOOST_PP_ITERATION_FINISH_2 >= 69\r
-#        define BOOST_PP_ITERATION_2 69\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 70 && BOOST_PP_ITERATION_FINISH_2 >= 70\r
-#        define BOOST_PP_ITERATION_2 70\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 71 && BOOST_PP_ITERATION_FINISH_2 >= 71\r
-#        define BOOST_PP_ITERATION_2 71\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 72 && BOOST_PP_ITERATION_FINISH_2 >= 72\r
-#        define BOOST_PP_ITERATION_2 72\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 73 && BOOST_PP_ITERATION_FINISH_2 >= 73\r
-#        define BOOST_PP_ITERATION_2 73\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 74 && BOOST_PP_ITERATION_FINISH_2 >= 74\r
-#        define BOOST_PP_ITERATION_2 74\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 75 && BOOST_PP_ITERATION_FINISH_2 >= 75\r
-#        define BOOST_PP_ITERATION_2 75\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 76 && BOOST_PP_ITERATION_FINISH_2 >= 76\r
-#        define BOOST_PP_ITERATION_2 76\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 77 && BOOST_PP_ITERATION_FINISH_2 >= 77\r
-#        define BOOST_PP_ITERATION_2 77\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 78 && BOOST_PP_ITERATION_FINISH_2 >= 78\r
-#        define BOOST_PP_ITERATION_2 78\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 79 && BOOST_PP_ITERATION_FINISH_2 >= 79\r
-#        define BOOST_PP_ITERATION_2 79\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 80 && BOOST_PP_ITERATION_FINISH_2 >= 80\r
-#        define BOOST_PP_ITERATION_2 80\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 81 && BOOST_PP_ITERATION_FINISH_2 >= 81\r
-#        define BOOST_PP_ITERATION_2 81\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 82 && BOOST_PP_ITERATION_FINISH_2 >= 82\r
-#        define BOOST_PP_ITERATION_2 82\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 83 && BOOST_PP_ITERATION_FINISH_2 >= 83\r
-#        define BOOST_PP_ITERATION_2 83\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 84 && BOOST_PP_ITERATION_FINISH_2 >= 84\r
-#        define BOOST_PP_ITERATION_2 84\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 85 && BOOST_PP_ITERATION_FINISH_2 >= 85\r
-#        define BOOST_PP_ITERATION_2 85\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 86 && BOOST_PP_ITERATION_FINISH_2 >= 86\r
-#        define BOOST_PP_ITERATION_2 86\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 87 && BOOST_PP_ITERATION_FINISH_2 >= 87\r
-#        define BOOST_PP_ITERATION_2 87\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 88 && BOOST_PP_ITERATION_FINISH_2 >= 88\r
-#        define BOOST_PP_ITERATION_2 88\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 89 && BOOST_PP_ITERATION_FINISH_2 >= 89\r
-#        define BOOST_PP_ITERATION_2 89\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 90 && BOOST_PP_ITERATION_FINISH_2 >= 90\r
-#        define BOOST_PP_ITERATION_2 90\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 91 && BOOST_PP_ITERATION_FINISH_2 >= 91\r
-#        define BOOST_PP_ITERATION_2 91\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 92 && BOOST_PP_ITERATION_FINISH_2 >= 92\r
-#        define BOOST_PP_ITERATION_2 92\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 93 && BOOST_PP_ITERATION_FINISH_2 >= 93\r
-#        define BOOST_PP_ITERATION_2 93\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 94 && BOOST_PP_ITERATION_FINISH_2 >= 94\r
-#        define BOOST_PP_ITERATION_2 94\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 95 && BOOST_PP_ITERATION_FINISH_2 >= 95\r
-#        define BOOST_PP_ITERATION_2 95\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 96 && BOOST_PP_ITERATION_FINISH_2 >= 96\r
-#        define BOOST_PP_ITERATION_2 96\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 97 && BOOST_PP_ITERATION_FINISH_2 >= 97\r
-#        define BOOST_PP_ITERATION_2 97\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 98 && BOOST_PP_ITERATION_FINISH_2 >= 98\r
-#        define BOOST_PP_ITERATION_2 98\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 99 && BOOST_PP_ITERATION_FINISH_2 >= 99\r
-#        define BOOST_PP_ITERATION_2 99\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 100 && BOOST_PP_ITERATION_FINISH_2 >= 100\r
-#        define BOOST_PP_ITERATION_2 100\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 101 && BOOST_PP_ITERATION_FINISH_2 >= 101\r
-#        define BOOST_PP_ITERATION_2 101\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 102 && BOOST_PP_ITERATION_FINISH_2 >= 102\r
-#        define BOOST_PP_ITERATION_2 102\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 103 && BOOST_PP_ITERATION_FINISH_2 >= 103\r
-#        define BOOST_PP_ITERATION_2 103\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 104 && BOOST_PP_ITERATION_FINISH_2 >= 104\r
-#        define BOOST_PP_ITERATION_2 104\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 105 && BOOST_PP_ITERATION_FINISH_2 >= 105\r
-#        define BOOST_PP_ITERATION_2 105\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 106 && BOOST_PP_ITERATION_FINISH_2 >= 106\r
-#        define BOOST_PP_ITERATION_2 106\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 107 && BOOST_PP_ITERATION_FINISH_2 >= 107\r
-#        define BOOST_PP_ITERATION_2 107\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 108 && BOOST_PP_ITERATION_FINISH_2 >= 108\r
-#        define BOOST_PP_ITERATION_2 108\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 109 && BOOST_PP_ITERATION_FINISH_2 >= 109\r
-#        define BOOST_PP_ITERATION_2 109\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 110 && BOOST_PP_ITERATION_FINISH_2 >= 110\r
-#        define BOOST_PP_ITERATION_2 110\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 111 && BOOST_PP_ITERATION_FINISH_2 >= 111\r
-#        define BOOST_PP_ITERATION_2 111\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 112 && BOOST_PP_ITERATION_FINISH_2 >= 112\r
-#        define BOOST_PP_ITERATION_2 112\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 113 && BOOST_PP_ITERATION_FINISH_2 >= 113\r
-#        define BOOST_PP_ITERATION_2 113\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 114 && BOOST_PP_ITERATION_FINISH_2 >= 114\r
-#        define BOOST_PP_ITERATION_2 114\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 115 && BOOST_PP_ITERATION_FINISH_2 >= 115\r
-#        define BOOST_PP_ITERATION_2 115\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 116 && BOOST_PP_ITERATION_FINISH_2 >= 116\r
-#        define BOOST_PP_ITERATION_2 116\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 117 && BOOST_PP_ITERATION_FINISH_2 >= 117\r
-#        define BOOST_PP_ITERATION_2 117\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 118 && BOOST_PP_ITERATION_FINISH_2 >= 118\r
-#        define BOOST_PP_ITERATION_2 118\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 119 && BOOST_PP_ITERATION_FINISH_2 >= 119\r
-#        define BOOST_PP_ITERATION_2 119\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 120 && BOOST_PP_ITERATION_FINISH_2 >= 120\r
-#        define BOOST_PP_ITERATION_2 120\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 121 && BOOST_PP_ITERATION_FINISH_2 >= 121\r
-#        define BOOST_PP_ITERATION_2 121\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 122 && BOOST_PP_ITERATION_FINISH_2 >= 122\r
-#        define BOOST_PP_ITERATION_2 122\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 123 && BOOST_PP_ITERATION_FINISH_2 >= 123\r
-#        define BOOST_PP_ITERATION_2 123\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 124 && BOOST_PP_ITERATION_FINISH_2 >= 124\r
-#        define BOOST_PP_ITERATION_2 124\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 125 && BOOST_PP_ITERATION_FINISH_2 >= 125\r
-#        define BOOST_PP_ITERATION_2 125\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 126 && BOOST_PP_ITERATION_FINISH_2 >= 126\r
-#        define BOOST_PP_ITERATION_2 126\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 127 && BOOST_PP_ITERATION_FINISH_2 >= 127\r
-#        define BOOST_PP_ITERATION_2 127\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 128 && BOOST_PP_ITERATION_FINISH_2 >= 128\r
-#        define BOOST_PP_ITERATION_2 128\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 129 && BOOST_PP_ITERATION_FINISH_2 >= 129\r
-#        define BOOST_PP_ITERATION_2 129\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 130 && BOOST_PP_ITERATION_FINISH_2 >= 130\r
-#        define BOOST_PP_ITERATION_2 130\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 131 && BOOST_PP_ITERATION_FINISH_2 >= 131\r
-#        define BOOST_PP_ITERATION_2 131\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 132 && BOOST_PP_ITERATION_FINISH_2 >= 132\r
-#        define BOOST_PP_ITERATION_2 132\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 133 && BOOST_PP_ITERATION_FINISH_2 >= 133\r
-#        define BOOST_PP_ITERATION_2 133\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 134 && BOOST_PP_ITERATION_FINISH_2 >= 134\r
-#        define BOOST_PP_ITERATION_2 134\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 135 && BOOST_PP_ITERATION_FINISH_2 >= 135\r
-#        define BOOST_PP_ITERATION_2 135\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 136 && BOOST_PP_ITERATION_FINISH_2 >= 136\r
-#        define BOOST_PP_ITERATION_2 136\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 137 && BOOST_PP_ITERATION_FINISH_2 >= 137\r
-#        define BOOST_PP_ITERATION_2 137\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 138 && BOOST_PP_ITERATION_FINISH_2 >= 138\r
-#        define BOOST_PP_ITERATION_2 138\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 139 && BOOST_PP_ITERATION_FINISH_2 >= 139\r
-#        define BOOST_PP_ITERATION_2 139\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 140 && BOOST_PP_ITERATION_FINISH_2 >= 140\r
-#        define BOOST_PP_ITERATION_2 140\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 141 && BOOST_PP_ITERATION_FINISH_2 >= 141\r
-#        define BOOST_PP_ITERATION_2 141\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 142 && BOOST_PP_ITERATION_FINISH_2 >= 142\r
-#        define BOOST_PP_ITERATION_2 142\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 143 && BOOST_PP_ITERATION_FINISH_2 >= 143\r
-#        define BOOST_PP_ITERATION_2 143\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 144 && BOOST_PP_ITERATION_FINISH_2 >= 144\r
-#        define BOOST_PP_ITERATION_2 144\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 145 && BOOST_PP_ITERATION_FINISH_2 >= 145\r
-#        define BOOST_PP_ITERATION_2 145\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 146 && BOOST_PP_ITERATION_FINISH_2 >= 146\r
-#        define BOOST_PP_ITERATION_2 146\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 147 && BOOST_PP_ITERATION_FINISH_2 >= 147\r
-#        define BOOST_PP_ITERATION_2 147\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 148 && BOOST_PP_ITERATION_FINISH_2 >= 148\r
-#        define BOOST_PP_ITERATION_2 148\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 149 && BOOST_PP_ITERATION_FINISH_2 >= 149\r
-#        define BOOST_PP_ITERATION_2 149\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 150 && BOOST_PP_ITERATION_FINISH_2 >= 150\r
-#        define BOOST_PP_ITERATION_2 150\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 151 && BOOST_PP_ITERATION_FINISH_2 >= 151\r
-#        define BOOST_PP_ITERATION_2 151\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 152 && BOOST_PP_ITERATION_FINISH_2 >= 152\r
-#        define BOOST_PP_ITERATION_2 152\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 153 && BOOST_PP_ITERATION_FINISH_2 >= 153\r
-#        define BOOST_PP_ITERATION_2 153\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 154 && BOOST_PP_ITERATION_FINISH_2 >= 154\r
-#        define BOOST_PP_ITERATION_2 154\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 155 && BOOST_PP_ITERATION_FINISH_2 >= 155\r
-#        define BOOST_PP_ITERATION_2 155\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 156 && BOOST_PP_ITERATION_FINISH_2 >= 156\r
-#        define BOOST_PP_ITERATION_2 156\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 157 && BOOST_PP_ITERATION_FINISH_2 >= 157\r
-#        define BOOST_PP_ITERATION_2 157\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 158 && BOOST_PP_ITERATION_FINISH_2 >= 158\r
-#        define BOOST_PP_ITERATION_2 158\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 159 && BOOST_PP_ITERATION_FINISH_2 >= 159\r
-#        define BOOST_PP_ITERATION_2 159\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 160 && BOOST_PP_ITERATION_FINISH_2 >= 160\r
-#        define BOOST_PP_ITERATION_2 160\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 161 && BOOST_PP_ITERATION_FINISH_2 >= 161\r
-#        define BOOST_PP_ITERATION_2 161\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 162 && BOOST_PP_ITERATION_FINISH_2 >= 162\r
-#        define BOOST_PP_ITERATION_2 162\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 163 && BOOST_PP_ITERATION_FINISH_2 >= 163\r
-#        define BOOST_PP_ITERATION_2 163\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 164 && BOOST_PP_ITERATION_FINISH_2 >= 164\r
-#        define BOOST_PP_ITERATION_2 164\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 165 && BOOST_PP_ITERATION_FINISH_2 >= 165\r
-#        define BOOST_PP_ITERATION_2 165\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 166 && BOOST_PP_ITERATION_FINISH_2 >= 166\r
-#        define BOOST_PP_ITERATION_2 166\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 167 && BOOST_PP_ITERATION_FINISH_2 >= 167\r
-#        define BOOST_PP_ITERATION_2 167\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 168 && BOOST_PP_ITERATION_FINISH_2 >= 168\r
-#        define BOOST_PP_ITERATION_2 168\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 169 && BOOST_PP_ITERATION_FINISH_2 >= 169\r
-#        define BOOST_PP_ITERATION_2 169\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 170 && BOOST_PP_ITERATION_FINISH_2 >= 170\r
-#        define BOOST_PP_ITERATION_2 170\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 171 && BOOST_PP_ITERATION_FINISH_2 >= 171\r
-#        define BOOST_PP_ITERATION_2 171\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 172 && BOOST_PP_ITERATION_FINISH_2 >= 172\r
-#        define BOOST_PP_ITERATION_2 172\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 173 && BOOST_PP_ITERATION_FINISH_2 >= 173\r
-#        define BOOST_PP_ITERATION_2 173\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 174 && BOOST_PP_ITERATION_FINISH_2 >= 174\r
-#        define BOOST_PP_ITERATION_2 174\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 175 && BOOST_PP_ITERATION_FINISH_2 >= 175\r
-#        define BOOST_PP_ITERATION_2 175\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 176 && BOOST_PP_ITERATION_FINISH_2 >= 176\r
-#        define BOOST_PP_ITERATION_2 176\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 177 && BOOST_PP_ITERATION_FINISH_2 >= 177\r
-#        define BOOST_PP_ITERATION_2 177\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 178 && BOOST_PP_ITERATION_FINISH_2 >= 178\r
-#        define BOOST_PP_ITERATION_2 178\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 179 && BOOST_PP_ITERATION_FINISH_2 >= 179\r
-#        define BOOST_PP_ITERATION_2 179\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 180 && BOOST_PP_ITERATION_FINISH_2 >= 180\r
-#        define BOOST_PP_ITERATION_2 180\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 181 && BOOST_PP_ITERATION_FINISH_2 >= 181\r
-#        define BOOST_PP_ITERATION_2 181\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 182 && BOOST_PP_ITERATION_FINISH_2 >= 182\r
-#        define BOOST_PP_ITERATION_2 182\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 183 && BOOST_PP_ITERATION_FINISH_2 >= 183\r
-#        define BOOST_PP_ITERATION_2 183\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 184 && BOOST_PP_ITERATION_FINISH_2 >= 184\r
-#        define BOOST_PP_ITERATION_2 184\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 185 && BOOST_PP_ITERATION_FINISH_2 >= 185\r
-#        define BOOST_PP_ITERATION_2 185\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 186 && BOOST_PP_ITERATION_FINISH_2 >= 186\r
-#        define BOOST_PP_ITERATION_2 186\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 187 && BOOST_PP_ITERATION_FINISH_2 >= 187\r
-#        define BOOST_PP_ITERATION_2 187\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 188 && BOOST_PP_ITERATION_FINISH_2 >= 188\r
-#        define BOOST_PP_ITERATION_2 188\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 189 && BOOST_PP_ITERATION_FINISH_2 >= 189\r
-#        define BOOST_PP_ITERATION_2 189\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 190 && BOOST_PP_ITERATION_FINISH_2 >= 190\r
-#        define BOOST_PP_ITERATION_2 190\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 191 && BOOST_PP_ITERATION_FINISH_2 >= 191\r
-#        define BOOST_PP_ITERATION_2 191\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 192 && BOOST_PP_ITERATION_FINISH_2 >= 192\r
-#        define BOOST_PP_ITERATION_2 192\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 193 && BOOST_PP_ITERATION_FINISH_2 >= 193\r
-#        define BOOST_PP_ITERATION_2 193\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 194 && BOOST_PP_ITERATION_FINISH_2 >= 194\r
-#        define BOOST_PP_ITERATION_2 194\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 195 && BOOST_PP_ITERATION_FINISH_2 >= 195\r
-#        define BOOST_PP_ITERATION_2 195\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 196 && BOOST_PP_ITERATION_FINISH_2 >= 196\r
-#        define BOOST_PP_ITERATION_2 196\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 197 && BOOST_PP_ITERATION_FINISH_2 >= 197\r
-#        define BOOST_PP_ITERATION_2 197\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 198 && BOOST_PP_ITERATION_FINISH_2 >= 198\r
-#        define BOOST_PP_ITERATION_2 198\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 199 && BOOST_PP_ITERATION_FINISH_2 >= 199\r
-#        define BOOST_PP_ITERATION_2 199\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 200 && BOOST_PP_ITERATION_FINISH_2 >= 200\r
-#        define BOOST_PP_ITERATION_2 200\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 201 && BOOST_PP_ITERATION_FINISH_2 >= 201\r
-#        define BOOST_PP_ITERATION_2 201\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 202 && BOOST_PP_ITERATION_FINISH_2 >= 202\r
-#        define BOOST_PP_ITERATION_2 202\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 203 && BOOST_PP_ITERATION_FINISH_2 >= 203\r
-#        define BOOST_PP_ITERATION_2 203\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 204 && BOOST_PP_ITERATION_FINISH_2 >= 204\r
-#        define BOOST_PP_ITERATION_2 204\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 205 && BOOST_PP_ITERATION_FINISH_2 >= 205\r
-#        define BOOST_PP_ITERATION_2 205\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 206 && BOOST_PP_ITERATION_FINISH_2 >= 206\r
-#        define BOOST_PP_ITERATION_2 206\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 207 && BOOST_PP_ITERATION_FINISH_2 >= 207\r
-#        define BOOST_PP_ITERATION_2 207\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 208 && BOOST_PP_ITERATION_FINISH_2 >= 208\r
-#        define BOOST_PP_ITERATION_2 208\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 209 && BOOST_PP_ITERATION_FINISH_2 >= 209\r
-#        define BOOST_PP_ITERATION_2 209\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 210 && BOOST_PP_ITERATION_FINISH_2 >= 210\r
-#        define BOOST_PP_ITERATION_2 210\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 211 && BOOST_PP_ITERATION_FINISH_2 >= 211\r
-#        define BOOST_PP_ITERATION_2 211\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 212 && BOOST_PP_ITERATION_FINISH_2 >= 212\r
-#        define BOOST_PP_ITERATION_2 212\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 213 && BOOST_PP_ITERATION_FINISH_2 >= 213\r
-#        define BOOST_PP_ITERATION_2 213\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 214 && BOOST_PP_ITERATION_FINISH_2 >= 214\r
-#        define BOOST_PP_ITERATION_2 214\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 215 && BOOST_PP_ITERATION_FINISH_2 >= 215\r
-#        define BOOST_PP_ITERATION_2 215\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 216 && BOOST_PP_ITERATION_FINISH_2 >= 216\r
-#        define BOOST_PP_ITERATION_2 216\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 217 && BOOST_PP_ITERATION_FINISH_2 >= 217\r
-#        define BOOST_PP_ITERATION_2 217\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 218 && BOOST_PP_ITERATION_FINISH_2 >= 218\r
-#        define BOOST_PP_ITERATION_2 218\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 219 && BOOST_PP_ITERATION_FINISH_2 >= 219\r
-#        define BOOST_PP_ITERATION_2 219\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 220 && BOOST_PP_ITERATION_FINISH_2 >= 220\r
-#        define BOOST_PP_ITERATION_2 220\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 221 && BOOST_PP_ITERATION_FINISH_2 >= 221\r
-#        define BOOST_PP_ITERATION_2 221\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 222 && BOOST_PP_ITERATION_FINISH_2 >= 222\r
-#        define BOOST_PP_ITERATION_2 222\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 223 && BOOST_PP_ITERATION_FINISH_2 >= 223\r
-#        define BOOST_PP_ITERATION_2 223\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 224 && BOOST_PP_ITERATION_FINISH_2 >= 224\r
-#        define BOOST_PP_ITERATION_2 224\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 225 && BOOST_PP_ITERATION_FINISH_2 >= 225\r
-#        define BOOST_PP_ITERATION_2 225\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 226 && BOOST_PP_ITERATION_FINISH_2 >= 226\r
-#        define BOOST_PP_ITERATION_2 226\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 227 && BOOST_PP_ITERATION_FINISH_2 >= 227\r
-#        define BOOST_PP_ITERATION_2 227\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 228 && BOOST_PP_ITERATION_FINISH_2 >= 228\r
-#        define BOOST_PP_ITERATION_2 228\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 229 && BOOST_PP_ITERATION_FINISH_2 >= 229\r
-#        define BOOST_PP_ITERATION_2 229\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 230 && BOOST_PP_ITERATION_FINISH_2 >= 230\r
-#        define BOOST_PP_ITERATION_2 230\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 231 && BOOST_PP_ITERATION_FINISH_2 >= 231\r
-#        define BOOST_PP_ITERATION_2 231\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 232 && BOOST_PP_ITERATION_FINISH_2 >= 232\r
-#        define BOOST_PP_ITERATION_2 232\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 233 && BOOST_PP_ITERATION_FINISH_2 >= 233\r
-#        define BOOST_PP_ITERATION_2 233\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 234 && BOOST_PP_ITERATION_FINISH_2 >= 234\r
-#        define BOOST_PP_ITERATION_2 234\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 235 && BOOST_PP_ITERATION_FINISH_2 >= 235\r
-#        define BOOST_PP_ITERATION_2 235\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 236 && BOOST_PP_ITERATION_FINISH_2 >= 236\r
-#        define BOOST_PP_ITERATION_2 236\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 237 && BOOST_PP_ITERATION_FINISH_2 >= 237\r
-#        define BOOST_PP_ITERATION_2 237\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 238 && BOOST_PP_ITERATION_FINISH_2 >= 238\r
-#        define BOOST_PP_ITERATION_2 238\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 239 && BOOST_PP_ITERATION_FINISH_2 >= 239\r
-#        define BOOST_PP_ITERATION_2 239\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 240 && BOOST_PP_ITERATION_FINISH_2 >= 240\r
-#        define BOOST_PP_ITERATION_2 240\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 241 && BOOST_PP_ITERATION_FINISH_2 >= 241\r
-#        define BOOST_PP_ITERATION_2 241\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 242 && BOOST_PP_ITERATION_FINISH_2 >= 242\r
-#        define BOOST_PP_ITERATION_2 242\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 243 && BOOST_PP_ITERATION_FINISH_2 >= 243\r
-#        define BOOST_PP_ITERATION_2 243\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 244 && BOOST_PP_ITERATION_FINISH_2 >= 244\r
-#        define BOOST_PP_ITERATION_2 244\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 245 && BOOST_PP_ITERATION_FINISH_2 >= 245\r
-#        define BOOST_PP_ITERATION_2 245\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 246 && BOOST_PP_ITERATION_FINISH_2 >= 246\r
-#        define BOOST_PP_ITERATION_2 246\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 247 && BOOST_PP_ITERATION_FINISH_2 >= 247\r
-#        define BOOST_PP_ITERATION_2 247\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 248 && BOOST_PP_ITERATION_FINISH_2 >= 248\r
-#        define BOOST_PP_ITERATION_2 248\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 249 && BOOST_PP_ITERATION_FINISH_2 >= 249\r
-#        define BOOST_PP_ITERATION_2 249\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 250 && BOOST_PP_ITERATION_FINISH_2 >= 250\r
-#        define BOOST_PP_ITERATION_2 250\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 251 && BOOST_PP_ITERATION_FINISH_2 >= 251\r
-#        define BOOST_PP_ITERATION_2 251\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 252 && BOOST_PP_ITERATION_FINISH_2 >= 252\r
-#        define BOOST_PP_ITERATION_2 252\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 253 && BOOST_PP_ITERATION_FINISH_2 >= 253\r
-#        define BOOST_PP_ITERATION_2 253\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 254 && BOOST_PP_ITERATION_FINISH_2 >= 254\r
-#        define BOOST_PP_ITERATION_2 254\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 255 && BOOST_PP_ITERATION_FINISH_2 >= 255\r
-#        define BOOST_PP_ITERATION_2 255\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_2 <= 256 && BOOST_PP_ITERATION_FINISH_2 >= 256\r
-#        define BOOST_PP_ITERATION_2 256\r
-#        include BOOST_PP_FILENAME_2\r
-#        undef BOOST_PP_ITERATION_2\r
-#    endif\r
-# endif\r
-#\r
-# undef BOOST_PP_ITERATION_DEPTH\r
-# define BOOST_PP_ITERATION_DEPTH() 1\r
-#\r
-# undef BOOST_PP_ITERATION_START_2\r
-# undef BOOST_PP_ITERATION_FINISH_2\r
-# undef BOOST_PP_FILENAME_2\r
-#\r
-# undef BOOST_PP_ITERATION_FLAGS_2\r
-# undef BOOST_PP_ITERATION_PARAMS_2\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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_2)
+#        error BOOST_PP_ERROR:  depth #2 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/lower2.hpp>
+#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
+#    include <boost/preprocessor/iteration/detail/bounds/upper2.hpp>
+#    define BOOST_PP_ITERATION_FLAGS_2 0
+#    undef BOOST_PP_ITERATION_LIMITS
+# elif defined(BOOST_PP_ITERATION_PARAMS_2)
+#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_2)
+#    include <boost/preprocessor/iteration/detail/bounds/lower2.hpp>
+#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_2)
+#    include <boost/preprocessor/iteration/detail/bounds/upper2.hpp>
+#    define BOOST_PP_FILENAME_2 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_2)
+#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_2) >= 4
+#        define BOOST_PP_ITERATION_FLAGS_2 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_2)
+#    else
+#        define BOOST_PP_ITERATION_FLAGS_2 0
+#    endif
+# else
+#    error BOOST_PP_ERROR:  depth #2 iteration boundaries or filename not defined
+# endif
+#
+# undef BOOST_PP_ITERATION_DEPTH
+# define BOOST_PP_ITERATION_DEPTH() 2
+#
+# if (BOOST_PP_ITERATION_START_2) > (BOOST_PP_ITERATION_FINISH_2)
+#    include <boost/preprocessor/iteration/detail/iter/reverse2.hpp>
+# else
+#    if BOOST_PP_ITERATION_START_2 <= 0 && BOOST_PP_ITERATION_FINISH_2 >= 0
+#        define BOOST_PP_ITERATION_2 0
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 1 && BOOST_PP_ITERATION_FINISH_2 >= 1
+#        define BOOST_PP_ITERATION_2 1
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 2 && BOOST_PP_ITERATION_FINISH_2 >= 2
+#        define BOOST_PP_ITERATION_2 2
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 3 && BOOST_PP_ITERATION_FINISH_2 >= 3
+#        define BOOST_PP_ITERATION_2 3
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 4 && BOOST_PP_ITERATION_FINISH_2 >= 4
+#        define BOOST_PP_ITERATION_2 4
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 5 && BOOST_PP_ITERATION_FINISH_2 >= 5
+#        define BOOST_PP_ITERATION_2 5
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 6 && BOOST_PP_ITERATION_FINISH_2 >= 6
+#        define BOOST_PP_ITERATION_2 6
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 7 && BOOST_PP_ITERATION_FINISH_2 >= 7
+#        define BOOST_PP_ITERATION_2 7
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 8 && BOOST_PP_ITERATION_FINISH_2 >= 8
+#        define BOOST_PP_ITERATION_2 8
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 9 && BOOST_PP_ITERATION_FINISH_2 >= 9
+#        define BOOST_PP_ITERATION_2 9
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 10 && BOOST_PP_ITERATION_FINISH_2 >= 10
+#        define BOOST_PP_ITERATION_2 10
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 11 && BOOST_PP_ITERATION_FINISH_2 >= 11
+#        define BOOST_PP_ITERATION_2 11
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 12 && BOOST_PP_ITERATION_FINISH_2 >= 12
+#        define BOOST_PP_ITERATION_2 12
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 13 && BOOST_PP_ITERATION_FINISH_2 >= 13
+#        define BOOST_PP_ITERATION_2 13
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 14 && BOOST_PP_ITERATION_FINISH_2 >= 14
+#        define BOOST_PP_ITERATION_2 14
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 15 && BOOST_PP_ITERATION_FINISH_2 >= 15
+#        define BOOST_PP_ITERATION_2 15
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 16 && BOOST_PP_ITERATION_FINISH_2 >= 16
+#        define BOOST_PP_ITERATION_2 16
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 17 && BOOST_PP_ITERATION_FINISH_2 >= 17
+#        define BOOST_PP_ITERATION_2 17
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 18 && BOOST_PP_ITERATION_FINISH_2 >= 18
+#        define BOOST_PP_ITERATION_2 18
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 19 && BOOST_PP_ITERATION_FINISH_2 >= 19
+#        define BOOST_PP_ITERATION_2 19
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 20 && BOOST_PP_ITERATION_FINISH_2 >= 20
+#        define BOOST_PP_ITERATION_2 20
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 21 && BOOST_PP_ITERATION_FINISH_2 >= 21
+#        define BOOST_PP_ITERATION_2 21
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 22 && BOOST_PP_ITERATION_FINISH_2 >= 22
+#        define BOOST_PP_ITERATION_2 22
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 23 && BOOST_PP_ITERATION_FINISH_2 >= 23
+#        define BOOST_PP_ITERATION_2 23
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 24 && BOOST_PP_ITERATION_FINISH_2 >= 24
+#        define BOOST_PP_ITERATION_2 24
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 25 && BOOST_PP_ITERATION_FINISH_2 >= 25
+#        define BOOST_PP_ITERATION_2 25
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 26 && BOOST_PP_ITERATION_FINISH_2 >= 26
+#        define BOOST_PP_ITERATION_2 26
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 27 && BOOST_PP_ITERATION_FINISH_2 >= 27
+#        define BOOST_PP_ITERATION_2 27
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 28 && BOOST_PP_ITERATION_FINISH_2 >= 28
+#        define BOOST_PP_ITERATION_2 28
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 29 && BOOST_PP_ITERATION_FINISH_2 >= 29
+#        define BOOST_PP_ITERATION_2 29
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 30 && BOOST_PP_ITERATION_FINISH_2 >= 30
+#        define BOOST_PP_ITERATION_2 30
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 31 && BOOST_PP_ITERATION_FINISH_2 >= 31
+#        define BOOST_PP_ITERATION_2 31
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 32 && BOOST_PP_ITERATION_FINISH_2 >= 32
+#        define BOOST_PP_ITERATION_2 32
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 33 && BOOST_PP_ITERATION_FINISH_2 >= 33
+#        define BOOST_PP_ITERATION_2 33
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 34 && BOOST_PP_ITERATION_FINISH_2 >= 34
+#        define BOOST_PP_ITERATION_2 34
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 35 && BOOST_PP_ITERATION_FINISH_2 >= 35
+#        define BOOST_PP_ITERATION_2 35
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 36 && BOOST_PP_ITERATION_FINISH_2 >= 36
+#        define BOOST_PP_ITERATION_2 36
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 37 && BOOST_PP_ITERATION_FINISH_2 >= 37
+#        define BOOST_PP_ITERATION_2 37
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 38 && BOOST_PP_ITERATION_FINISH_2 >= 38
+#        define BOOST_PP_ITERATION_2 38
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 39 && BOOST_PP_ITERATION_FINISH_2 >= 39
+#        define BOOST_PP_ITERATION_2 39
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 40 && BOOST_PP_ITERATION_FINISH_2 >= 40
+#        define BOOST_PP_ITERATION_2 40
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 41 && BOOST_PP_ITERATION_FINISH_2 >= 41
+#        define BOOST_PP_ITERATION_2 41
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 42 && BOOST_PP_ITERATION_FINISH_2 >= 42
+#        define BOOST_PP_ITERATION_2 42
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 43 && BOOST_PP_ITERATION_FINISH_2 >= 43
+#        define BOOST_PP_ITERATION_2 43
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 44 && BOOST_PP_ITERATION_FINISH_2 >= 44
+#        define BOOST_PP_ITERATION_2 44
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 45 && BOOST_PP_ITERATION_FINISH_2 >= 45
+#        define BOOST_PP_ITERATION_2 45
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 46 && BOOST_PP_ITERATION_FINISH_2 >= 46
+#        define BOOST_PP_ITERATION_2 46
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 47 && BOOST_PP_ITERATION_FINISH_2 >= 47
+#        define BOOST_PP_ITERATION_2 47
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 48 && BOOST_PP_ITERATION_FINISH_2 >= 48
+#        define BOOST_PP_ITERATION_2 48
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 49 && BOOST_PP_ITERATION_FINISH_2 >= 49
+#        define BOOST_PP_ITERATION_2 49
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 50 && BOOST_PP_ITERATION_FINISH_2 >= 50
+#        define BOOST_PP_ITERATION_2 50
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 51 && BOOST_PP_ITERATION_FINISH_2 >= 51
+#        define BOOST_PP_ITERATION_2 51
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 52 && BOOST_PP_ITERATION_FINISH_2 >= 52
+#        define BOOST_PP_ITERATION_2 52
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 53 && BOOST_PP_ITERATION_FINISH_2 >= 53
+#        define BOOST_PP_ITERATION_2 53
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 54 && BOOST_PP_ITERATION_FINISH_2 >= 54
+#        define BOOST_PP_ITERATION_2 54
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 55 && BOOST_PP_ITERATION_FINISH_2 >= 55
+#        define BOOST_PP_ITERATION_2 55
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 56 && BOOST_PP_ITERATION_FINISH_2 >= 56
+#        define BOOST_PP_ITERATION_2 56
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 57 && BOOST_PP_ITERATION_FINISH_2 >= 57
+#        define BOOST_PP_ITERATION_2 57
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 58 && BOOST_PP_ITERATION_FINISH_2 >= 58
+#        define BOOST_PP_ITERATION_2 58
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 59 && BOOST_PP_ITERATION_FINISH_2 >= 59
+#        define BOOST_PP_ITERATION_2 59
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 60 && BOOST_PP_ITERATION_FINISH_2 >= 60
+#        define BOOST_PP_ITERATION_2 60
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 61 && BOOST_PP_ITERATION_FINISH_2 >= 61
+#        define BOOST_PP_ITERATION_2 61
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 62 && BOOST_PP_ITERATION_FINISH_2 >= 62
+#        define BOOST_PP_ITERATION_2 62
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 63 && BOOST_PP_ITERATION_FINISH_2 >= 63
+#        define BOOST_PP_ITERATION_2 63
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 64 && BOOST_PP_ITERATION_FINISH_2 >= 64
+#        define BOOST_PP_ITERATION_2 64
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 65 && BOOST_PP_ITERATION_FINISH_2 >= 65
+#        define BOOST_PP_ITERATION_2 65
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 66 && BOOST_PP_ITERATION_FINISH_2 >= 66
+#        define BOOST_PP_ITERATION_2 66
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 67 && BOOST_PP_ITERATION_FINISH_2 >= 67
+#        define BOOST_PP_ITERATION_2 67
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 68 && BOOST_PP_ITERATION_FINISH_2 >= 68
+#        define BOOST_PP_ITERATION_2 68
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 69 && BOOST_PP_ITERATION_FINISH_2 >= 69
+#        define BOOST_PP_ITERATION_2 69
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 70 && BOOST_PP_ITERATION_FINISH_2 >= 70
+#        define BOOST_PP_ITERATION_2 70
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 71 && BOOST_PP_ITERATION_FINISH_2 >= 71
+#        define BOOST_PP_ITERATION_2 71
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 72 && BOOST_PP_ITERATION_FINISH_2 >= 72
+#        define BOOST_PP_ITERATION_2 72
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 73 && BOOST_PP_ITERATION_FINISH_2 >= 73
+#        define BOOST_PP_ITERATION_2 73
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 74 && BOOST_PP_ITERATION_FINISH_2 >= 74
+#        define BOOST_PP_ITERATION_2 74
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 75 && BOOST_PP_ITERATION_FINISH_2 >= 75
+#        define BOOST_PP_ITERATION_2 75
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 76 && BOOST_PP_ITERATION_FINISH_2 >= 76
+#        define BOOST_PP_ITERATION_2 76
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 77 && BOOST_PP_ITERATION_FINISH_2 >= 77
+#        define BOOST_PP_ITERATION_2 77
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 78 && BOOST_PP_ITERATION_FINISH_2 >= 78
+#        define BOOST_PP_ITERATION_2 78
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 79 && BOOST_PP_ITERATION_FINISH_2 >= 79
+#        define BOOST_PP_ITERATION_2 79
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 80 && BOOST_PP_ITERATION_FINISH_2 >= 80
+#        define BOOST_PP_ITERATION_2 80
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 81 && BOOST_PP_ITERATION_FINISH_2 >= 81
+#        define BOOST_PP_ITERATION_2 81
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 82 && BOOST_PP_ITERATION_FINISH_2 >= 82
+#        define BOOST_PP_ITERATION_2 82
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 83 && BOOST_PP_ITERATION_FINISH_2 >= 83
+#        define BOOST_PP_ITERATION_2 83
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 84 && BOOST_PP_ITERATION_FINISH_2 >= 84
+#        define BOOST_PP_ITERATION_2 84
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 85 && BOOST_PP_ITERATION_FINISH_2 >= 85
+#        define BOOST_PP_ITERATION_2 85
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 86 && BOOST_PP_ITERATION_FINISH_2 >= 86
+#        define BOOST_PP_ITERATION_2 86
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 87 && BOOST_PP_ITERATION_FINISH_2 >= 87
+#        define BOOST_PP_ITERATION_2 87
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 88 && BOOST_PP_ITERATION_FINISH_2 >= 88
+#        define BOOST_PP_ITERATION_2 88
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 89 && BOOST_PP_ITERATION_FINISH_2 >= 89
+#        define BOOST_PP_ITERATION_2 89
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 90 && BOOST_PP_ITERATION_FINISH_2 >= 90
+#        define BOOST_PP_ITERATION_2 90
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 91 && BOOST_PP_ITERATION_FINISH_2 >= 91
+#        define BOOST_PP_ITERATION_2 91
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 92 && BOOST_PP_ITERATION_FINISH_2 >= 92
+#        define BOOST_PP_ITERATION_2 92
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 93 && BOOST_PP_ITERATION_FINISH_2 >= 93
+#        define BOOST_PP_ITERATION_2 93
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 94 && BOOST_PP_ITERATION_FINISH_2 >= 94
+#        define BOOST_PP_ITERATION_2 94
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 95 && BOOST_PP_ITERATION_FINISH_2 >= 95
+#        define BOOST_PP_ITERATION_2 95
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 96 && BOOST_PP_ITERATION_FINISH_2 >= 96
+#        define BOOST_PP_ITERATION_2 96
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 97 && BOOST_PP_ITERATION_FINISH_2 >= 97
+#        define BOOST_PP_ITERATION_2 97
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 98 && BOOST_PP_ITERATION_FINISH_2 >= 98
+#        define BOOST_PP_ITERATION_2 98
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 99 && BOOST_PP_ITERATION_FINISH_2 >= 99
+#        define BOOST_PP_ITERATION_2 99
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 100 && BOOST_PP_ITERATION_FINISH_2 >= 100
+#        define BOOST_PP_ITERATION_2 100
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 101 && BOOST_PP_ITERATION_FINISH_2 >= 101
+#        define BOOST_PP_ITERATION_2 101
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 102 && BOOST_PP_ITERATION_FINISH_2 >= 102
+#        define BOOST_PP_ITERATION_2 102
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 103 && BOOST_PP_ITERATION_FINISH_2 >= 103
+#        define BOOST_PP_ITERATION_2 103
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 104 && BOOST_PP_ITERATION_FINISH_2 >= 104
+#        define BOOST_PP_ITERATION_2 104
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 105 && BOOST_PP_ITERATION_FINISH_2 >= 105
+#        define BOOST_PP_ITERATION_2 105
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 106 && BOOST_PP_ITERATION_FINISH_2 >= 106
+#        define BOOST_PP_ITERATION_2 106
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 107 && BOOST_PP_ITERATION_FINISH_2 >= 107
+#        define BOOST_PP_ITERATION_2 107
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 108 && BOOST_PP_ITERATION_FINISH_2 >= 108
+#        define BOOST_PP_ITERATION_2 108
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 109 && BOOST_PP_ITERATION_FINISH_2 >= 109
+#        define BOOST_PP_ITERATION_2 109
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 110 && BOOST_PP_ITERATION_FINISH_2 >= 110
+#        define BOOST_PP_ITERATION_2 110
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 111 && BOOST_PP_ITERATION_FINISH_2 >= 111
+#        define BOOST_PP_ITERATION_2 111
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 112 && BOOST_PP_ITERATION_FINISH_2 >= 112
+#        define BOOST_PP_ITERATION_2 112
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 113 && BOOST_PP_ITERATION_FINISH_2 >= 113
+#        define BOOST_PP_ITERATION_2 113
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 114 && BOOST_PP_ITERATION_FINISH_2 >= 114
+#        define BOOST_PP_ITERATION_2 114
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 115 && BOOST_PP_ITERATION_FINISH_2 >= 115
+#        define BOOST_PP_ITERATION_2 115
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 116 && BOOST_PP_ITERATION_FINISH_2 >= 116
+#        define BOOST_PP_ITERATION_2 116
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 117 && BOOST_PP_ITERATION_FINISH_2 >= 117
+#        define BOOST_PP_ITERATION_2 117
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 118 && BOOST_PP_ITERATION_FINISH_2 >= 118
+#        define BOOST_PP_ITERATION_2 118
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 119 && BOOST_PP_ITERATION_FINISH_2 >= 119
+#        define BOOST_PP_ITERATION_2 119
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 120 && BOOST_PP_ITERATION_FINISH_2 >= 120
+#        define BOOST_PP_ITERATION_2 120
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 121 && BOOST_PP_ITERATION_FINISH_2 >= 121
+#        define BOOST_PP_ITERATION_2 121
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 122 && BOOST_PP_ITERATION_FINISH_2 >= 122
+#        define BOOST_PP_ITERATION_2 122
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 123 && BOOST_PP_ITERATION_FINISH_2 >= 123
+#        define BOOST_PP_ITERATION_2 123
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 124 && BOOST_PP_ITERATION_FINISH_2 >= 124
+#        define BOOST_PP_ITERATION_2 124
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 125 && BOOST_PP_ITERATION_FINISH_2 >= 125
+#        define BOOST_PP_ITERATION_2 125
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 126 && BOOST_PP_ITERATION_FINISH_2 >= 126
+#        define BOOST_PP_ITERATION_2 126
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 127 && BOOST_PP_ITERATION_FINISH_2 >= 127
+#        define BOOST_PP_ITERATION_2 127
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 128 && BOOST_PP_ITERATION_FINISH_2 >= 128
+#        define BOOST_PP_ITERATION_2 128
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 129 && BOOST_PP_ITERATION_FINISH_2 >= 129
+#        define BOOST_PP_ITERATION_2 129
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 130 && BOOST_PP_ITERATION_FINISH_2 >= 130
+#        define BOOST_PP_ITERATION_2 130
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 131 && BOOST_PP_ITERATION_FINISH_2 >= 131
+#        define BOOST_PP_ITERATION_2 131
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 132 && BOOST_PP_ITERATION_FINISH_2 >= 132
+#        define BOOST_PP_ITERATION_2 132
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 133 && BOOST_PP_ITERATION_FINISH_2 >= 133
+#        define BOOST_PP_ITERATION_2 133
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 134 && BOOST_PP_ITERATION_FINISH_2 >= 134
+#        define BOOST_PP_ITERATION_2 134
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 135 && BOOST_PP_ITERATION_FINISH_2 >= 135
+#        define BOOST_PP_ITERATION_2 135
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 136 && BOOST_PP_ITERATION_FINISH_2 >= 136
+#        define BOOST_PP_ITERATION_2 136
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 137 && BOOST_PP_ITERATION_FINISH_2 >= 137
+#        define BOOST_PP_ITERATION_2 137
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 138 && BOOST_PP_ITERATION_FINISH_2 >= 138
+#        define BOOST_PP_ITERATION_2 138
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 139 && BOOST_PP_ITERATION_FINISH_2 >= 139
+#        define BOOST_PP_ITERATION_2 139
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 140 && BOOST_PP_ITERATION_FINISH_2 >= 140
+#        define BOOST_PP_ITERATION_2 140
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 141 && BOOST_PP_ITERATION_FINISH_2 >= 141
+#        define BOOST_PP_ITERATION_2 141
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 142 && BOOST_PP_ITERATION_FINISH_2 >= 142
+#        define BOOST_PP_ITERATION_2 142
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 143 && BOOST_PP_ITERATION_FINISH_2 >= 143
+#        define BOOST_PP_ITERATION_2 143
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 144 && BOOST_PP_ITERATION_FINISH_2 >= 144
+#        define BOOST_PP_ITERATION_2 144
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 145 && BOOST_PP_ITERATION_FINISH_2 >= 145
+#        define BOOST_PP_ITERATION_2 145
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 146 && BOOST_PP_ITERATION_FINISH_2 >= 146
+#        define BOOST_PP_ITERATION_2 146
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 147 && BOOST_PP_ITERATION_FINISH_2 >= 147
+#        define BOOST_PP_ITERATION_2 147
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 148 && BOOST_PP_ITERATION_FINISH_2 >= 148
+#        define BOOST_PP_ITERATION_2 148
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 149 && BOOST_PP_ITERATION_FINISH_2 >= 149
+#        define BOOST_PP_ITERATION_2 149
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 150 && BOOST_PP_ITERATION_FINISH_2 >= 150
+#        define BOOST_PP_ITERATION_2 150
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 151 && BOOST_PP_ITERATION_FINISH_2 >= 151
+#        define BOOST_PP_ITERATION_2 151
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 152 && BOOST_PP_ITERATION_FINISH_2 >= 152
+#        define BOOST_PP_ITERATION_2 152
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 153 && BOOST_PP_ITERATION_FINISH_2 >= 153
+#        define BOOST_PP_ITERATION_2 153
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 154 && BOOST_PP_ITERATION_FINISH_2 >= 154
+#        define BOOST_PP_ITERATION_2 154
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 155 && BOOST_PP_ITERATION_FINISH_2 >= 155
+#        define BOOST_PP_ITERATION_2 155
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 156 && BOOST_PP_ITERATION_FINISH_2 >= 156
+#        define BOOST_PP_ITERATION_2 156
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 157 && BOOST_PP_ITERATION_FINISH_2 >= 157
+#        define BOOST_PP_ITERATION_2 157
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 158 && BOOST_PP_ITERATION_FINISH_2 >= 158
+#        define BOOST_PP_ITERATION_2 158
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 159 && BOOST_PP_ITERATION_FINISH_2 >= 159
+#        define BOOST_PP_ITERATION_2 159
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 160 && BOOST_PP_ITERATION_FINISH_2 >= 160
+#        define BOOST_PP_ITERATION_2 160
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 161 && BOOST_PP_ITERATION_FINISH_2 >= 161
+#        define BOOST_PP_ITERATION_2 161
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 162 && BOOST_PP_ITERATION_FINISH_2 >= 162
+#        define BOOST_PP_ITERATION_2 162
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 163 && BOOST_PP_ITERATION_FINISH_2 >= 163
+#        define BOOST_PP_ITERATION_2 163
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 164 && BOOST_PP_ITERATION_FINISH_2 >= 164
+#        define BOOST_PP_ITERATION_2 164
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 165 && BOOST_PP_ITERATION_FINISH_2 >= 165
+#        define BOOST_PP_ITERATION_2 165
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 166 && BOOST_PP_ITERATION_FINISH_2 >= 166
+#        define BOOST_PP_ITERATION_2 166
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 167 && BOOST_PP_ITERATION_FINISH_2 >= 167
+#        define BOOST_PP_ITERATION_2 167
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 168 && BOOST_PP_ITERATION_FINISH_2 >= 168
+#        define BOOST_PP_ITERATION_2 168
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 169 && BOOST_PP_ITERATION_FINISH_2 >= 169
+#        define BOOST_PP_ITERATION_2 169
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 170 && BOOST_PP_ITERATION_FINISH_2 >= 170
+#        define BOOST_PP_ITERATION_2 170
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 171 && BOOST_PP_ITERATION_FINISH_2 >= 171
+#        define BOOST_PP_ITERATION_2 171
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 172 && BOOST_PP_ITERATION_FINISH_2 >= 172
+#        define BOOST_PP_ITERATION_2 172
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 173 && BOOST_PP_ITERATION_FINISH_2 >= 173
+#        define BOOST_PP_ITERATION_2 173
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 174 && BOOST_PP_ITERATION_FINISH_2 >= 174
+#        define BOOST_PP_ITERATION_2 174
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 175 && BOOST_PP_ITERATION_FINISH_2 >= 175
+#        define BOOST_PP_ITERATION_2 175
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 176 && BOOST_PP_ITERATION_FINISH_2 >= 176
+#        define BOOST_PP_ITERATION_2 176
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 177 && BOOST_PP_ITERATION_FINISH_2 >= 177
+#        define BOOST_PP_ITERATION_2 177
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 178 && BOOST_PP_ITERATION_FINISH_2 >= 178
+#        define BOOST_PP_ITERATION_2 178
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 179 && BOOST_PP_ITERATION_FINISH_2 >= 179
+#        define BOOST_PP_ITERATION_2 179
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 180 && BOOST_PP_ITERATION_FINISH_2 >= 180
+#        define BOOST_PP_ITERATION_2 180
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 181 && BOOST_PP_ITERATION_FINISH_2 >= 181
+#        define BOOST_PP_ITERATION_2 181
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 182 && BOOST_PP_ITERATION_FINISH_2 >= 182
+#        define BOOST_PP_ITERATION_2 182
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 183 && BOOST_PP_ITERATION_FINISH_2 >= 183
+#        define BOOST_PP_ITERATION_2 183
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 184 && BOOST_PP_ITERATION_FINISH_2 >= 184
+#        define BOOST_PP_ITERATION_2 184
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 185 && BOOST_PP_ITERATION_FINISH_2 >= 185
+#        define BOOST_PP_ITERATION_2 185
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 186 && BOOST_PP_ITERATION_FINISH_2 >= 186
+#        define BOOST_PP_ITERATION_2 186
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 187 && BOOST_PP_ITERATION_FINISH_2 >= 187
+#        define BOOST_PP_ITERATION_2 187
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 188 && BOOST_PP_ITERATION_FINISH_2 >= 188
+#        define BOOST_PP_ITERATION_2 188
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 189 && BOOST_PP_ITERATION_FINISH_2 >= 189
+#        define BOOST_PP_ITERATION_2 189
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 190 && BOOST_PP_ITERATION_FINISH_2 >= 190
+#        define BOOST_PP_ITERATION_2 190
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 191 && BOOST_PP_ITERATION_FINISH_2 >= 191
+#        define BOOST_PP_ITERATION_2 191
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 192 && BOOST_PP_ITERATION_FINISH_2 >= 192
+#        define BOOST_PP_ITERATION_2 192
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 193 && BOOST_PP_ITERATION_FINISH_2 >= 193
+#        define BOOST_PP_ITERATION_2 193
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 194 && BOOST_PP_ITERATION_FINISH_2 >= 194
+#        define BOOST_PP_ITERATION_2 194
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 195 && BOOST_PP_ITERATION_FINISH_2 >= 195
+#        define BOOST_PP_ITERATION_2 195
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 196 && BOOST_PP_ITERATION_FINISH_2 >= 196
+#        define BOOST_PP_ITERATION_2 196
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 197 && BOOST_PP_ITERATION_FINISH_2 >= 197
+#        define BOOST_PP_ITERATION_2 197
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 198 && BOOST_PP_ITERATION_FINISH_2 >= 198
+#        define BOOST_PP_ITERATION_2 198
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 199 && BOOST_PP_ITERATION_FINISH_2 >= 199
+#        define BOOST_PP_ITERATION_2 199
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 200 && BOOST_PP_ITERATION_FINISH_2 >= 200
+#        define BOOST_PP_ITERATION_2 200
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 201 && BOOST_PP_ITERATION_FINISH_2 >= 201
+#        define BOOST_PP_ITERATION_2 201
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 202 && BOOST_PP_ITERATION_FINISH_2 >= 202
+#        define BOOST_PP_ITERATION_2 202
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 203 && BOOST_PP_ITERATION_FINISH_2 >= 203
+#        define BOOST_PP_ITERATION_2 203
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 204 && BOOST_PP_ITERATION_FINISH_2 >= 204
+#        define BOOST_PP_ITERATION_2 204
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 205 && BOOST_PP_ITERATION_FINISH_2 >= 205
+#        define BOOST_PP_ITERATION_2 205
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 206 && BOOST_PP_ITERATION_FINISH_2 >= 206
+#        define BOOST_PP_ITERATION_2 206
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 207 && BOOST_PP_ITERATION_FINISH_2 >= 207
+#        define BOOST_PP_ITERATION_2 207
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 208 && BOOST_PP_ITERATION_FINISH_2 >= 208
+#        define BOOST_PP_ITERATION_2 208
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 209 && BOOST_PP_ITERATION_FINISH_2 >= 209
+#        define BOOST_PP_ITERATION_2 209
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 210 && BOOST_PP_ITERATION_FINISH_2 >= 210
+#        define BOOST_PP_ITERATION_2 210
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 211 && BOOST_PP_ITERATION_FINISH_2 >= 211
+#        define BOOST_PP_ITERATION_2 211
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 212 && BOOST_PP_ITERATION_FINISH_2 >= 212
+#        define BOOST_PP_ITERATION_2 212
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 213 && BOOST_PP_ITERATION_FINISH_2 >= 213
+#        define BOOST_PP_ITERATION_2 213
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 214 && BOOST_PP_ITERATION_FINISH_2 >= 214
+#        define BOOST_PP_ITERATION_2 214
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 215 && BOOST_PP_ITERATION_FINISH_2 >= 215
+#        define BOOST_PP_ITERATION_2 215
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 216 && BOOST_PP_ITERATION_FINISH_2 >= 216
+#        define BOOST_PP_ITERATION_2 216
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 217 && BOOST_PP_ITERATION_FINISH_2 >= 217
+#        define BOOST_PP_ITERATION_2 217
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 218 && BOOST_PP_ITERATION_FINISH_2 >= 218
+#        define BOOST_PP_ITERATION_2 218
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 219 && BOOST_PP_ITERATION_FINISH_2 >= 219
+#        define BOOST_PP_ITERATION_2 219
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 220 && BOOST_PP_ITERATION_FINISH_2 >= 220
+#        define BOOST_PP_ITERATION_2 220
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 221 && BOOST_PP_ITERATION_FINISH_2 >= 221
+#        define BOOST_PP_ITERATION_2 221
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 222 && BOOST_PP_ITERATION_FINISH_2 >= 222
+#        define BOOST_PP_ITERATION_2 222
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 223 && BOOST_PP_ITERATION_FINISH_2 >= 223
+#        define BOOST_PP_ITERATION_2 223
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 224 && BOOST_PP_ITERATION_FINISH_2 >= 224
+#        define BOOST_PP_ITERATION_2 224
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 225 && BOOST_PP_ITERATION_FINISH_2 >= 225
+#        define BOOST_PP_ITERATION_2 225
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 226 && BOOST_PP_ITERATION_FINISH_2 >= 226
+#        define BOOST_PP_ITERATION_2 226
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 227 && BOOST_PP_ITERATION_FINISH_2 >= 227
+#        define BOOST_PP_ITERATION_2 227
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 228 && BOOST_PP_ITERATION_FINISH_2 >= 228
+#        define BOOST_PP_ITERATION_2 228
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 229 && BOOST_PP_ITERATION_FINISH_2 >= 229
+#        define BOOST_PP_ITERATION_2 229
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 230 && BOOST_PP_ITERATION_FINISH_2 >= 230
+#        define BOOST_PP_ITERATION_2 230
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 231 && BOOST_PP_ITERATION_FINISH_2 >= 231
+#        define BOOST_PP_ITERATION_2 231
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 232 && BOOST_PP_ITERATION_FINISH_2 >= 232
+#        define BOOST_PP_ITERATION_2 232
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 233 && BOOST_PP_ITERATION_FINISH_2 >= 233
+#        define BOOST_PP_ITERATION_2 233
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 234 && BOOST_PP_ITERATION_FINISH_2 >= 234
+#        define BOOST_PP_ITERATION_2 234
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 235 && BOOST_PP_ITERATION_FINISH_2 >= 235
+#        define BOOST_PP_ITERATION_2 235
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 236 && BOOST_PP_ITERATION_FINISH_2 >= 236
+#        define BOOST_PP_ITERATION_2 236
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 237 && BOOST_PP_ITERATION_FINISH_2 >= 237
+#        define BOOST_PP_ITERATION_2 237
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 238 && BOOST_PP_ITERATION_FINISH_2 >= 238
+#        define BOOST_PP_ITERATION_2 238
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 239 && BOOST_PP_ITERATION_FINISH_2 >= 239
+#        define BOOST_PP_ITERATION_2 239
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 240 && BOOST_PP_ITERATION_FINISH_2 >= 240
+#        define BOOST_PP_ITERATION_2 240
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 241 && BOOST_PP_ITERATION_FINISH_2 >= 241
+#        define BOOST_PP_ITERATION_2 241
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 242 && BOOST_PP_ITERATION_FINISH_2 >= 242
+#        define BOOST_PP_ITERATION_2 242
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 243 && BOOST_PP_ITERATION_FINISH_2 >= 243
+#        define BOOST_PP_ITERATION_2 243
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 244 && BOOST_PP_ITERATION_FINISH_2 >= 244
+#        define BOOST_PP_ITERATION_2 244
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 245 && BOOST_PP_ITERATION_FINISH_2 >= 245
+#        define BOOST_PP_ITERATION_2 245
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 246 && BOOST_PP_ITERATION_FINISH_2 >= 246
+#        define BOOST_PP_ITERATION_2 246
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 247 && BOOST_PP_ITERATION_FINISH_2 >= 247
+#        define BOOST_PP_ITERATION_2 247
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 248 && BOOST_PP_ITERATION_FINISH_2 >= 248
+#        define BOOST_PP_ITERATION_2 248
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 249 && BOOST_PP_ITERATION_FINISH_2 >= 249
+#        define BOOST_PP_ITERATION_2 249
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 250 && BOOST_PP_ITERATION_FINISH_2 >= 250
+#        define BOOST_PP_ITERATION_2 250
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 251 && BOOST_PP_ITERATION_FINISH_2 >= 251
+#        define BOOST_PP_ITERATION_2 251
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 252 && BOOST_PP_ITERATION_FINISH_2 >= 252
+#        define BOOST_PP_ITERATION_2 252
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 253 && BOOST_PP_ITERATION_FINISH_2 >= 253
+#        define BOOST_PP_ITERATION_2 253
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 254 && BOOST_PP_ITERATION_FINISH_2 >= 254
+#        define BOOST_PP_ITERATION_2 254
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 255 && BOOST_PP_ITERATION_FINISH_2 >= 255
+#        define BOOST_PP_ITERATION_2 255
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+#    if BOOST_PP_ITERATION_START_2 <= 256 && BOOST_PP_ITERATION_FINISH_2 >= 256
+#        define BOOST_PP_ITERATION_2 256
+#        include BOOST_PP_FILENAME_2
+#        undef BOOST_PP_ITERATION_2
+#    endif
+# endif
+#
+# undef BOOST_PP_ITERATION_DEPTH
+# define BOOST_PP_ITERATION_DEPTH() 1
+#
+# undef BOOST_PP_ITERATION_START_2
+# undef BOOST_PP_ITERATION_FINISH_2
+# undef BOOST_PP_FILENAME_2
+#
+# undef BOOST_PP_ITERATION_FLAGS_2
+# undef BOOST_PP_ITERATION_PARAMS_2
index e0a95f3d9c1e7376538ae7bcb1ba400b350250db..a25d0de189f9ea20fc8010a41e45874b22751741 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# if defined(BOOST_PP_ITERATION_LIMITS)\r
-#    if !defined(BOOST_PP_FILENAME_3)\r
-#        error BOOST_PP_ERROR:  depth #3 filename is not defined\r
-#    endif\r
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)\r
-#    include <boost/preprocessor/iteration/detail/bounds/lower3.hpp>\r
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)\r
-#    include <boost/preprocessor/iteration/detail/bounds/upper3.hpp>\r
-#    define BOOST_PP_ITERATION_FLAGS_3 0\r
-#    undef BOOST_PP_ITERATION_LIMITS\r
-# elif defined(BOOST_PP_ITERATION_PARAMS_3)\r
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_3)\r
-#    include <boost/preprocessor/iteration/detail/bounds/lower3.hpp>\r
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_3)\r
-#    include <boost/preprocessor/iteration/detail/bounds/upper3.hpp>\r
-#    define BOOST_PP_FILENAME_3 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_3)\r
-#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_3) >= 4\r
-#        define BOOST_PP_ITERATION_FLAGS_3 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_3)\r
-#    else\r
-#        define BOOST_PP_ITERATION_FLAGS_3 0\r
-#    endif\r
-# else\r
-#    error BOOST_PP_ERROR:  depth #3 iteration boundaries or filename not defined\r
-# endif\r
-#\r
-# undef BOOST_PP_ITERATION_DEPTH\r
-# define BOOST_PP_ITERATION_DEPTH() 3\r
-#\r
-# if (BOOST_PP_ITERATION_START_3) > (BOOST_PP_ITERATION_FINISH_3)\r
-#    include <boost/preprocessor/iteration/detail/iter/reverse3.hpp>\r
-# else\r
-#    if BOOST_PP_ITERATION_START_3 <= 0 && BOOST_PP_ITERATION_FINISH_3 >= 0\r
-#        define BOOST_PP_ITERATION_3 0\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 1 && BOOST_PP_ITERATION_FINISH_3 >= 1\r
-#        define BOOST_PP_ITERATION_3 1\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 2 && BOOST_PP_ITERATION_FINISH_3 >= 2\r
-#        define BOOST_PP_ITERATION_3 2\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 3 && BOOST_PP_ITERATION_FINISH_3 >= 3\r
-#        define BOOST_PP_ITERATION_3 3\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 4 && BOOST_PP_ITERATION_FINISH_3 >= 4\r
-#        define BOOST_PP_ITERATION_3 4\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 5 && BOOST_PP_ITERATION_FINISH_3 >= 5\r
-#        define BOOST_PP_ITERATION_3 5\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 6 && BOOST_PP_ITERATION_FINISH_3 >= 6\r
-#        define BOOST_PP_ITERATION_3 6\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 7 && BOOST_PP_ITERATION_FINISH_3 >= 7\r
-#        define BOOST_PP_ITERATION_3 7\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 8 && BOOST_PP_ITERATION_FINISH_3 >= 8\r
-#        define BOOST_PP_ITERATION_3 8\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 9 && BOOST_PP_ITERATION_FINISH_3 >= 9\r
-#        define BOOST_PP_ITERATION_3 9\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 10 && BOOST_PP_ITERATION_FINISH_3 >= 10\r
-#        define BOOST_PP_ITERATION_3 10\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 11 && BOOST_PP_ITERATION_FINISH_3 >= 11\r
-#        define BOOST_PP_ITERATION_3 11\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 12 && BOOST_PP_ITERATION_FINISH_3 >= 12\r
-#        define BOOST_PP_ITERATION_3 12\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 13 && BOOST_PP_ITERATION_FINISH_3 >= 13\r
-#        define BOOST_PP_ITERATION_3 13\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 14 && BOOST_PP_ITERATION_FINISH_3 >= 14\r
-#        define BOOST_PP_ITERATION_3 14\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 15 && BOOST_PP_ITERATION_FINISH_3 >= 15\r
-#        define BOOST_PP_ITERATION_3 15\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 16 && BOOST_PP_ITERATION_FINISH_3 >= 16\r
-#        define BOOST_PP_ITERATION_3 16\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 17 && BOOST_PP_ITERATION_FINISH_3 >= 17\r
-#        define BOOST_PP_ITERATION_3 17\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 18 && BOOST_PP_ITERATION_FINISH_3 >= 18\r
-#        define BOOST_PP_ITERATION_3 18\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 19 && BOOST_PP_ITERATION_FINISH_3 >= 19\r
-#        define BOOST_PP_ITERATION_3 19\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 20 && BOOST_PP_ITERATION_FINISH_3 >= 20\r
-#        define BOOST_PP_ITERATION_3 20\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 21 && BOOST_PP_ITERATION_FINISH_3 >= 21\r
-#        define BOOST_PP_ITERATION_3 21\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 22 && BOOST_PP_ITERATION_FINISH_3 >= 22\r
-#        define BOOST_PP_ITERATION_3 22\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 23 && BOOST_PP_ITERATION_FINISH_3 >= 23\r
-#        define BOOST_PP_ITERATION_3 23\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 24 && BOOST_PP_ITERATION_FINISH_3 >= 24\r
-#        define BOOST_PP_ITERATION_3 24\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 25 && BOOST_PP_ITERATION_FINISH_3 >= 25\r
-#        define BOOST_PP_ITERATION_3 25\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 26 && BOOST_PP_ITERATION_FINISH_3 >= 26\r
-#        define BOOST_PP_ITERATION_3 26\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 27 && BOOST_PP_ITERATION_FINISH_3 >= 27\r
-#        define BOOST_PP_ITERATION_3 27\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 28 && BOOST_PP_ITERATION_FINISH_3 >= 28\r
-#        define BOOST_PP_ITERATION_3 28\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 29 && BOOST_PP_ITERATION_FINISH_3 >= 29\r
-#        define BOOST_PP_ITERATION_3 29\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 30 && BOOST_PP_ITERATION_FINISH_3 >= 30\r
-#        define BOOST_PP_ITERATION_3 30\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 31 && BOOST_PP_ITERATION_FINISH_3 >= 31\r
-#        define BOOST_PP_ITERATION_3 31\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 32 && BOOST_PP_ITERATION_FINISH_3 >= 32\r
-#        define BOOST_PP_ITERATION_3 32\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 33 && BOOST_PP_ITERATION_FINISH_3 >= 33\r
-#        define BOOST_PP_ITERATION_3 33\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 34 && BOOST_PP_ITERATION_FINISH_3 >= 34\r
-#        define BOOST_PP_ITERATION_3 34\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 35 && BOOST_PP_ITERATION_FINISH_3 >= 35\r
-#        define BOOST_PP_ITERATION_3 35\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 36 && BOOST_PP_ITERATION_FINISH_3 >= 36\r
-#        define BOOST_PP_ITERATION_3 36\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 37 && BOOST_PP_ITERATION_FINISH_3 >= 37\r
-#        define BOOST_PP_ITERATION_3 37\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 38 && BOOST_PP_ITERATION_FINISH_3 >= 38\r
-#        define BOOST_PP_ITERATION_3 38\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 39 && BOOST_PP_ITERATION_FINISH_3 >= 39\r
-#        define BOOST_PP_ITERATION_3 39\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 40 && BOOST_PP_ITERATION_FINISH_3 >= 40\r
-#        define BOOST_PP_ITERATION_3 40\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 41 && BOOST_PP_ITERATION_FINISH_3 >= 41\r
-#        define BOOST_PP_ITERATION_3 41\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 42 && BOOST_PP_ITERATION_FINISH_3 >= 42\r
-#        define BOOST_PP_ITERATION_3 42\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 43 && BOOST_PP_ITERATION_FINISH_3 >= 43\r
-#        define BOOST_PP_ITERATION_3 43\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 44 && BOOST_PP_ITERATION_FINISH_3 >= 44\r
-#        define BOOST_PP_ITERATION_3 44\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 45 && BOOST_PP_ITERATION_FINISH_3 >= 45\r
-#        define BOOST_PP_ITERATION_3 45\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 46 && BOOST_PP_ITERATION_FINISH_3 >= 46\r
-#        define BOOST_PP_ITERATION_3 46\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 47 && BOOST_PP_ITERATION_FINISH_3 >= 47\r
-#        define BOOST_PP_ITERATION_3 47\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 48 && BOOST_PP_ITERATION_FINISH_3 >= 48\r
-#        define BOOST_PP_ITERATION_3 48\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 49 && BOOST_PP_ITERATION_FINISH_3 >= 49\r
-#        define BOOST_PP_ITERATION_3 49\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 50 && BOOST_PP_ITERATION_FINISH_3 >= 50\r
-#        define BOOST_PP_ITERATION_3 50\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 51 && BOOST_PP_ITERATION_FINISH_3 >= 51\r
-#        define BOOST_PP_ITERATION_3 51\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 52 && BOOST_PP_ITERATION_FINISH_3 >= 52\r
-#        define BOOST_PP_ITERATION_3 52\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 53 && BOOST_PP_ITERATION_FINISH_3 >= 53\r
-#        define BOOST_PP_ITERATION_3 53\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 54 && BOOST_PP_ITERATION_FINISH_3 >= 54\r
-#        define BOOST_PP_ITERATION_3 54\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 55 && BOOST_PP_ITERATION_FINISH_3 >= 55\r
-#        define BOOST_PP_ITERATION_3 55\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 56 && BOOST_PP_ITERATION_FINISH_3 >= 56\r
-#        define BOOST_PP_ITERATION_3 56\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 57 && BOOST_PP_ITERATION_FINISH_3 >= 57\r
-#        define BOOST_PP_ITERATION_3 57\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 58 && BOOST_PP_ITERATION_FINISH_3 >= 58\r
-#        define BOOST_PP_ITERATION_3 58\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 59 && BOOST_PP_ITERATION_FINISH_3 >= 59\r
-#        define BOOST_PP_ITERATION_3 59\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 60 && BOOST_PP_ITERATION_FINISH_3 >= 60\r
-#        define BOOST_PP_ITERATION_3 60\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 61 && BOOST_PP_ITERATION_FINISH_3 >= 61\r
-#        define BOOST_PP_ITERATION_3 61\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 62 && BOOST_PP_ITERATION_FINISH_3 >= 62\r
-#        define BOOST_PP_ITERATION_3 62\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 63 && BOOST_PP_ITERATION_FINISH_3 >= 63\r
-#        define BOOST_PP_ITERATION_3 63\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 64 && BOOST_PP_ITERATION_FINISH_3 >= 64\r
-#        define BOOST_PP_ITERATION_3 64\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 65 && BOOST_PP_ITERATION_FINISH_3 >= 65\r
-#        define BOOST_PP_ITERATION_3 65\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 66 && BOOST_PP_ITERATION_FINISH_3 >= 66\r
-#        define BOOST_PP_ITERATION_3 66\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 67 && BOOST_PP_ITERATION_FINISH_3 >= 67\r
-#        define BOOST_PP_ITERATION_3 67\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 68 && BOOST_PP_ITERATION_FINISH_3 >= 68\r
-#        define BOOST_PP_ITERATION_3 68\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 69 && BOOST_PP_ITERATION_FINISH_3 >= 69\r
-#        define BOOST_PP_ITERATION_3 69\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 70 && BOOST_PP_ITERATION_FINISH_3 >= 70\r
-#        define BOOST_PP_ITERATION_3 70\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 71 && BOOST_PP_ITERATION_FINISH_3 >= 71\r
-#        define BOOST_PP_ITERATION_3 71\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 72 && BOOST_PP_ITERATION_FINISH_3 >= 72\r
-#        define BOOST_PP_ITERATION_3 72\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 73 && BOOST_PP_ITERATION_FINISH_3 >= 73\r
-#        define BOOST_PP_ITERATION_3 73\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 74 && BOOST_PP_ITERATION_FINISH_3 >= 74\r
-#        define BOOST_PP_ITERATION_3 74\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 75 && BOOST_PP_ITERATION_FINISH_3 >= 75\r
-#        define BOOST_PP_ITERATION_3 75\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 76 && BOOST_PP_ITERATION_FINISH_3 >= 76\r
-#        define BOOST_PP_ITERATION_3 76\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 77 && BOOST_PP_ITERATION_FINISH_3 >= 77\r
-#        define BOOST_PP_ITERATION_3 77\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 78 && BOOST_PP_ITERATION_FINISH_3 >= 78\r
-#        define BOOST_PP_ITERATION_3 78\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 79 && BOOST_PP_ITERATION_FINISH_3 >= 79\r
-#        define BOOST_PP_ITERATION_3 79\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 80 && BOOST_PP_ITERATION_FINISH_3 >= 80\r
-#        define BOOST_PP_ITERATION_3 80\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 81 && BOOST_PP_ITERATION_FINISH_3 >= 81\r
-#        define BOOST_PP_ITERATION_3 81\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 82 && BOOST_PP_ITERATION_FINISH_3 >= 82\r
-#        define BOOST_PP_ITERATION_3 82\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 83 && BOOST_PP_ITERATION_FINISH_3 >= 83\r
-#        define BOOST_PP_ITERATION_3 83\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 84 && BOOST_PP_ITERATION_FINISH_3 >= 84\r
-#        define BOOST_PP_ITERATION_3 84\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 85 && BOOST_PP_ITERATION_FINISH_3 >= 85\r
-#        define BOOST_PP_ITERATION_3 85\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 86 && BOOST_PP_ITERATION_FINISH_3 >= 86\r
-#        define BOOST_PP_ITERATION_3 86\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 87 && BOOST_PP_ITERATION_FINISH_3 >= 87\r
-#        define BOOST_PP_ITERATION_3 87\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 88 && BOOST_PP_ITERATION_FINISH_3 >= 88\r
-#        define BOOST_PP_ITERATION_3 88\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 89 && BOOST_PP_ITERATION_FINISH_3 >= 89\r
-#        define BOOST_PP_ITERATION_3 89\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 90 && BOOST_PP_ITERATION_FINISH_3 >= 90\r
-#        define BOOST_PP_ITERATION_3 90\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 91 && BOOST_PP_ITERATION_FINISH_3 >= 91\r
-#        define BOOST_PP_ITERATION_3 91\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 92 && BOOST_PP_ITERATION_FINISH_3 >= 92\r
-#        define BOOST_PP_ITERATION_3 92\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 93 && BOOST_PP_ITERATION_FINISH_3 >= 93\r
-#        define BOOST_PP_ITERATION_3 93\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 94 && BOOST_PP_ITERATION_FINISH_3 >= 94\r
-#        define BOOST_PP_ITERATION_3 94\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 95 && BOOST_PP_ITERATION_FINISH_3 >= 95\r
-#        define BOOST_PP_ITERATION_3 95\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 96 && BOOST_PP_ITERATION_FINISH_3 >= 96\r
-#        define BOOST_PP_ITERATION_3 96\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 97 && BOOST_PP_ITERATION_FINISH_3 >= 97\r
-#        define BOOST_PP_ITERATION_3 97\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 98 && BOOST_PP_ITERATION_FINISH_3 >= 98\r
-#        define BOOST_PP_ITERATION_3 98\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 99 && BOOST_PP_ITERATION_FINISH_3 >= 99\r
-#        define BOOST_PP_ITERATION_3 99\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 100 && BOOST_PP_ITERATION_FINISH_3 >= 100\r
-#        define BOOST_PP_ITERATION_3 100\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 101 && BOOST_PP_ITERATION_FINISH_3 >= 101\r
-#        define BOOST_PP_ITERATION_3 101\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 102 && BOOST_PP_ITERATION_FINISH_3 >= 102\r
-#        define BOOST_PP_ITERATION_3 102\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 103 && BOOST_PP_ITERATION_FINISH_3 >= 103\r
-#        define BOOST_PP_ITERATION_3 103\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 104 && BOOST_PP_ITERATION_FINISH_3 >= 104\r
-#        define BOOST_PP_ITERATION_3 104\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 105 && BOOST_PP_ITERATION_FINISH_3 >= 105\r
-#        define BOOST_PP_ITERATION_3 105\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 106 && BOOST_PP_ITERATION_FINISH_3 >= 106\r
-#        define BOOST_PP_ITERATION_3 106\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 107 && BOOST_PP_ITERATION_FINISH_3 >= 107\r
-#        define BOOST_PP_ITERATION_3 107\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 108 && BOOST_PP_ITERATION_FINISH_3 >= 108\r
-#        define BOOST_PP_ITERATION_3 108\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 109 && BOOST_PP_ITERATION_FINISH_3 >= 109\r
-#        define BOOST_PP_ITERATION_3 109\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 110 && BOOST_PP_ITERATION_FINISH_3 >= 110\r
-#        define BOOST_PP_ITERATION_3 110\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 111 && BOOST_PP_ITERATION_FINISH_3 >= 111\r
-#        define BOOST_PP_ITERATION_3 111\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 112 && BOOST_PP_ITERATION_FINISH_3 >= 112\r
-#        define BOOST_PP_ITERATION_3 112\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 113 && BOOST_PP_ITERATION_FINISH_3 >= 113\r
-#        define BOOST_PP_ITERATION_3 113\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 114 && BOOST_PP_ITERATION_FINISH_3 >= 114\r
-#        define BOOST_PP_ITERATION_3 114\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 115 && BOOST_PP_ITERATION_FINISH_3 >= 115\r
-#        define BOOST_PP_ITERATION_3 115\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 116 && BOOST_PP_ITERATION_FINISH_3 >= 116\r
-#        define BOOST_PP_ITERATION_3 116\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 117 && BOOST_PP_ITERATION_FINISH_3 >= 117\r
-#        define BOOST_PP_ITERATION_3 117\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 118 && BOOST_PP_ITERATION_FINISH_3 >= 118\r
-#        define BOOST_PP_ITERATION_3 118\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 119 && BOOST_PP_ITERATION_FINISH_3 >= 119\r
-#        define BOOST_PP_ITERATION_3 119\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 120 && BOOST_PP_ITERATION_FINISH_3 >= 120\r
-#        define BOOST_PP_ITERATION_3 120\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 121 && BOOST_PP_ITERATION_FINISH_3 >= 121\r
-#        define BOOST_PP_ITERATION_3 121\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 122 && BOOST_PP_ITERATION_FINISH_3 >= 122\r
-#        define BOOST_PP_ITERATION_3 122\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 123 && BOOST_PP_ITERATION_FINISH_3 >= 123\r
-#        define BOOST_PP_ITERATION_3 123\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 124 && BOOST_PP_ITERATION_FINISH_3 >= 124\r
-#        define BOOST_PP_ITERATION_3 124\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 125 && BOOST_PP_ITERATION_FINISH_3 >= 125\r
-#        define BOOST_PP_ITERATION_3 125\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 126 && BOOST_PP_ITERATION_FINISH_3 >= 126\r
-#        define BOOST_PP_ITERATION_3 126\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 127 && BOOST_PP_ITERATION_FINISH_3 >= 127\r
-#        define BOOST_PP_ITERATION_3 127\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 128 && BOOST_PP_ITERATION_FINISH_3 >= 128\r
-#        define BOOST_PP_ITERATION_3 128\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 129 && BOOST_PP_ITERATION_FINISH_3 >= 129\r
-#        define BOOST_PP_ITERATION_3 129\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 130 && BOOST_PP_ITERATION_FINISH_3 >= 130\r
-#        define BOOST_PP_ITERATION_3 130\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 131 && BOOST_PP_ITERATION_FINISH_3 >= 131\r
-#        define BOOST_PP_ITERATION_3 131\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 132 && BOOST_PP_ITERATION_FINISH_3 >= 132\r
-#        define BOOST_PP_ITERATION_3 132\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 133 && BOOST_PP_ITERATION_FINISH_3 >= 133\r
-#        define BOOST_PP_ITERATION_3 133\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 134 && BOOST_PP_ITERATION_FINISH_3 >= 134\r
-#        define BOOST_PP_ITERATION_3 134\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 135 && BOOST_PP_ITERATION_FINISH_3 >= 135\r
-#        define BOOST_PP_ITERATION_3 135\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 136 && BOOST_PP_ITERATION_FINISH_3 >= 136\r
-#        define BOOST_PP_ITERATION_3 136\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 137 && BOOST_PP_ITERATION_FINISH_3 >= 137\r
-#        define BOOST_PP_ITERATION_3 137\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 138 && BOOST_PP_ITERATION_FINISH_3 >= 138\r
-#        define BOOST_PP_ITERATION_3 138\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 139 && BOOST_PP_ITERATION_FINISH_3 >= 139\r
-#        define BOOST_PP_ITERATION_3 139\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 140 && BOOST_PP_ITERATION_FINISH_3 >= 140\r
-#        define BOOST_PP_ITERATION_3 140\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 141 && BOOST_PP_ITERATION_FINISH_3 >= 141\r
-#        define BOOST_PP_ITERATION_3 141\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 142 && BOOST_PP_ITERATION_FINISH_3 >= 142\r
-#        define BOOST_PP_ITERATION_3 142\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 143 && BOOST_PP_ITERATION_FINISH_3 >= 143\r
-#        define BOOST_PP_ITERATION_3 143\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 144 && BOOST_PP_ITERATION_FINISH_3 >= 144\r
-#        define BOOST_PP_ITERATION_3 144\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 145 && BOOST_PP_ITERATION_FINISH_3 >= 145\r
-#        define BOOST_PP_ITERATION_3 145\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 146 && BOOST_PP_ITERATION_FINISH_3 >= 146\r
-#        define BOOST_PP_ITERATION_3 146\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 147 && BOOST_PP_ITERATION_FINISH_3 >= 147\r
-#        define BOOST_PP_ITERATION_3 147\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 148 && BOOST_PP_ITERATION_FINISH_3 >= 148\r
-#        define BOOST_PP_ITERATION_3 148\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 149 && BOOST_PP_ITERATION_FINISH_3 >= 149\r
-#        define BOOST_PP_ITERATION_3 149\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 150 && BOOST_PP_ITERATION_FINISH_3 >= 150\r
-#        define BOOST_PP_ITERATION_3 150\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 151 && BOOST_PP_ITERATION_FINISH_3 >= 151\r
-#        define BOOST_PP_ITERATION_3 151\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 152 && BOOST_PP_ITERATION_FINISH_3 >= 152\r
-#        define BOOST_PP_ITERATION_3 152\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 153 && BOOST_PP_ITERATION_FINISH_3 >= 153\r
-#        define BOOST_PP_ITERATION_3 153\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 154 && BOOST_PP_ITERATION_FINISH_3 >= 154\r
-#        define BOOST_PP_ITERATION_3 154\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 155 && BOOST_PP_ITERATION_FINISH_3 >= 155\r
-#        define BOOST_PP_ITERATION_3 155\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 156 && BOOST_PP_ITERATION_FINISH_3 >= 156\r
-#        define BOOST_PP_ITERATION_3 156\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 157 && BOOST_PP_ITERATION_FINISH_3 >= 157\r
-#        define BOOST_PP_ITERATION_3 157\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 158 && BOOST_PP_ITERATION_FINISH_3 >= 158\r
-#        define BOOST_PP_ITERATION_3 158\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 159 && BOOST_PP_ITERATION_FINISH_3 >= 159\r
-#        define BOOST_PP_ITERATION_3 159\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 160 && BOOST_PP_ITERATION_FINISH_3 >= 160\r
-#        define BOOST_PP_ITERATION_3 160\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 161 && BOOST_PP_ITERATION_FINISH_3 >= 161\r
-#        define BOOST_PP_ITERATION_3 161\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 162 && BOOST_PP_ITERATION_FINISH_3 >= 162\r
-#        define BOOST_PP_ITERATION_3 162\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 163 && BOOST_PP_ITERATION_FINISH_3 >= 163\r
-#        define BOOST_PP_ITERATION_3 163\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 164 && BOOST_PP_ITERATION_FINISH_3 >= 164\r
-#        define BOOST_PP_ITERATION_3 164\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 165 && BOOST_PP_ITERATION_FINISH_3 >= 165\r
-#        define BOOST_PP_ITERATION_3 165\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 166 && BOOST_PP_ITERATION_FINISH_3 >= 166\r
-#        define BOOST_PP_ITERATION_3 166\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 167 && BOOST_PP_ITERATION_FINISH_3 >= 167\r
-#        define BOOST_PP_ITERATION_3 167\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 168 && BOOST_PP_ITERATION_FINISH_3 >= 168\r
-#        define BOOST_PP_ITERATION_3 168\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 169 && BOOST_PP_ITERATION_FINISH_3 >= 169\r
-#        define BOOST_PP_ITERATION_3 169\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 170 && BOOST_PP_ITERATION_FINISH_3 >= 170\r
-#        define BOOST_PP_ITERATION_3 170\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 171 && BOOST_PP_ITERATION_FINISH_3 >= 171\r
-#        define BOOST_PP_ITERATION_3 171\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 172 && BOOST_PP_ITERATION_FINISH_3 >= 172\r
-#        define BOOST_PP_ITERATION_3 172\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 173 && BOOST_PP_ITERATION_FINISH_3 >= 173\r
-#        define BOOST_PP_ITERATION_3 173\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 174 && BOOST_PP_ITERATION_FINISH_3 >= 174\r
-#        define BOOST_PP_ITERATION_3 174\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 175 && BOOST_PP_ITERATION_FINISH_3 >= 175\r
-#        define BOOST_PP_ITERATION_3 175\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 176 && BOOST_PP_ITERATION_FINISH_3 >= 176\r
-#        define BOOST_PP_ITERATION_3 176\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 177 && BOOST_PP_ITERATION_FINISH_3 >= 177\r
-#        define BOOST_PP_ITERATION_3 177\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 178 && BOOST_PP_ITERATION_FINISH_3 >= 178\r
-#        define BOOST_PP_ITERATION_3 178\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 179 && BOOST_PP_ITERATION_FINISH_3 >= 179\r
-#        define BOOST_PP_ITERATION_3 179\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 180 && BOOST_PP_ITERATION_FINISH_3 >= 180\r
-#        define BOOST_PP_ITERATION_3 180\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 181 && BOOST_PP_ITERATION_FINISH_3 >= 181\r
-#        define BOOST_PP_ITERATION_3 181\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 182 && BOOST_PP_ITERATION_FINISH_3 >= 182\r
-#        define BOOST_PP_ITERATION_3 182\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 183 && BOOST_PP_ITERATION_FINISH_3 >= 183\r
-#        define BOOST_PP_ITERATION_3 183\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 184 && BOOST_PP_ITERATION_FINISH_3 >= 184\r
-#        define BOOST_PP_ITERATION_3 184\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 185 && BOOST_PP_ITERATION_FINISH_3 >= 185\r
-#        define BOOST_PP_ITERATION_3 185\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 186 && BOOST_PP_ITERATION_FINISH_3 >= 186\r
-#        define BOOST_PP_ITERATION_3 186\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 187 && BOOST_PP_ITERATION_FINISH_3 >= 187\r
-#        define BOOST_PP_ITERATION_3 187\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 188 && BOOST_PP_ITERATION_FINISH_3 >= 188\r
-#        define BOOST_PP_ITERATION_3 188\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 189 && BOOST_PP_ITERATION_FINISH_3 >= 189\r
-#        define BOOST_PP_ITERATION_3 189\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 190 && BOOST_PP_ITERATION_FINISH_3 >= 190\r
-#        define BOOST_PP_ITERATION_3 190\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 191 && BOOST_PP_ITERATION_FINISH_3 >= 191\r
-#        define BOOST_PP_ITERATION_3 191\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 192 && BOOST_PP_ITERATION_FINISH_3 >= 192\r
-#        define BOOST_PP_ITERATION_3 192\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 193 && BOOST_PP_ITERATION_FINISH_3 >= 193\r
-#        define BOOST_PP_ITERATION_3 193\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 194 && BOOST_PP_ITERATION_FINISH_3 >= 194\r
-#        define BOOST_PP_ITERATION_3 194\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 195 && BOOST_PP_ITERATION_FINISH_3 >= 195\r
-#        define BOOST_PP_ITERATION_3 195\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 196 && BOOST_PP_ITERATION_FINISH_3 >= 196\r
-#        define BOOST_PP_ITERATION_3 196\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 197 && BOOST_PP_ITERATION_FINISH_3 >= 197\r
-#        define BOOST_PP_ITERATION_3 197\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 198 && BOOST_PP_ITERATION_FINISH_3 >= 198\r
-#        define BOOST_PP_ITERATION_3 198\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 199 && BOOST_PP_ITERATION_FINISH_3 >= 199\r
-#        define BOOST_PP_ITERATION_3 199\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 200 && BOOST_PP_ITERATION_FINISH_3 >= 200\r
-#        define BOOST_PP_ITERATION_3 200\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 201 && BOOST_PP_ITERATION_FINISH_3 >= 201\r
-#        define BOOST_PP_ITERATION_3 201\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 202 && BOOST_PP_ITERATION_FINISH_3 >= 202\r
-#        define BOOST_PP_ITERATION_3 202\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 203 && BOOST_PP_ITERATION_FINISH_3 >= 203\r
-#        define BOOST_PP_ITERATION_3 203\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 204 && BOOST_PP_ITERATION_FINISH_3 >= 204\r
-#        define BOOST_PP_ITERATION_3 204\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 205 && BOOST_PP_ITERATION_FINISH_3 >= 205\r
-#        define BOOST_PP_ITERATION_3 205\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 206 && BOOST_PP_ITERATION_FINISH_3 >= 206\r
-#        define BOOST_PP_ITERATION_3 206\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 207 && BOOST_PP_ITERATION_FINISH_3 >= 207\r
-#        define BOOST_PP_ITERATION_3 207\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 208 && BOOST_PP_ITERATION_FINISH_3 >= 208\r
-#        define BOOST_PP_ITERATION_3 208\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 209 && BOOST_PP_ITERATION_FINISH_3 >= 209\r
-#        define BOOST_PP_ITERATION_3 209\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 210 && BOOST_PP_ITERATION_FINISH_3 >= 210\r
-#        define BOOST_PP_ITERATION_3 210\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 211 && BOOST_PP_ITERATION_FINISH_3 >= 211\r
-#        define BOOST_PP_ITERATION_3 211\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 212 && BOOST_PP_ITERATION_FINISH_3 >= 212\r
-#        define BOOST_PP_ITERATION_3 212\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 213 && BOOST_PP_ITERATION_FINISH_3 >= 213\r
-#        define BOOST_PP_ITERATION_3 213\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 214 && BOOST_PP_ITERATION_FINISH_3 >= 214\r
-#        define BOOST_PP_ITERATION_3 214\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 215 && BOOST_PP_ITERATION_FINISH_3 >= 215\r
-#        define BOOST_PP_ITERATION_3 215\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 216 && BOOST_PP_ITERATION_FINISH_3 >= 216\r
-#        define BOOST_PP_ITERATION_3 216\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 217 && BOOST_PP_ITERATION_FINISH_3 >= 217\r
-#        define BOOST_PP_ITERATION_3 217\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 218 && BOOST_PP_ITERATION_FINISH_3 >= 218\r
-#        define BOOST_PP_ITERATION_3 218\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 219 && BOOST_PP_ITERATION_FINISH_3 >= 219\r
-#        define BOOST_PP_ITERATION_3 219\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 220 && BOOST_PP_ITERATION_FINISH_3 >= 220\r
-#        define BOOST_PP_ITERATION_3 220\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 221 && BOOST_PP_ITERATION_FINISH_3 >= 221\r
-#        define BOOST_PP_ITERATION_3 221\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 222 && BOOST_PP_ITERATION_FINISH_3 >= 222\r
-#        define BOOST_PP_ITERATION_3 222\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 223 && BOOST_PP_ITERATION_FINISH_3 >= 223\r
-#        define BOOST_PP_ITERATION_3 223\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 224 && BOOST_PP_ITERATION_FINISH_3 >= 224\r
-#        define BOOST_PP_ITERATION_3 224\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 225 && BOOST_PP_ITERATION_FINISH_3 >= 225\r
-#        define BOOST_PP_ITERATION_3 225\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 226 && BOOST_PP_ITERATION_FINISH_3 >= 226\r
-#        define BOOST_PP_ITERATION_3 226\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 227 && BOOST_PP_ITERATION_FINISH_3 >= 227\r
-#        define BOOST_PP_ITERATION_3 227\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 228 && BOOST_PP_ITERATION_FINISH_3 >= 228\r
-#        define BOOST_PP_ITERATION_3 228\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 229 && BOOST_PP_ITERATION_FINISH_3 >= 229\r
-#        define BOOST_PP_ITERATION_3 229\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 230 && BOOST_PP_ITERATION_FINISH_3 >= 230\r
-#        define BOOST_PP_ITERATION_3 230\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 231 && BOOST_PP_ITERATION_FINISH_3 >= 231\r
-#        define BOOST_PP_ITERATION_3 231\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 232 && BOOST_PP_ITERATION_FINISH_3 >= 232\r
-#        define BOOST_PP_ITERATION_3 232\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 233 && BOOST_PP_ITERATION_FINISH_3 >= 233\r
-#        define BOOST_PP_ITERATION_3 233\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 234 && BOOST_PP_ITERATION_FINISH_3 >= 234\r
-#        define BOOST_PP_ITERATION_3 234\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 235 && BOOST_PP_ITERATION_FINISH_3 >= 235\r
-#        define BOOST_PP_ITERATION_3 235\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 236 && BOOST_PP_ITERATION_FINISH_3 >= 236\r
-#        define BOOST_PP_ITERATION_3 236\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 237 && BOOST_PP_ITERATION_FINISH_3 >= 237\r
-#        define BOOST_PP_ITERATION_3 237\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 238 && BOOST_PP_ITERATION_FINISH_3 >= 238\r
-#        define BOOST_PP_ITERATION_3 238\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 239 && BOOST_PP_ITERATION_FINISH_3 >= 239\r
-#        define BOOST_PP_ITERATION_3 239\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 240 && BOOST_PP_ITERATION_FINISH_3 >= 240\r
-#        define BOOST_PP_ITERATION_3 240\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 241 && BOOST_PP_ITERATION_FINISH_3 >= 241\r
-#        define BOOST_PP_ITERATION_3 241\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 242 && BOOST_PP_ITERATION_FINISH_3 >= 242\r
-#        define BOOST_PP_ITERATION_3 242\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 243 && BOOST_PP_ITERATION_FINISH_3 >= 243\r
-#        define BOOST_PP_ITERATION_3 243\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 244 && BOOST_PP_ITERATION_FINISH_3 >= 244\r
-#        define BOOST_PP_ITERATION_3 244\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 245 && BOOST_PP_ITERATION_FINISH_3 >= 245\r
-#        define BOOST_PP_ITERATION_3 245\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 246 && BOOST_PP_ITERATION_FINISH_3 >= 246\r
-#        define BOOST_PP_ITERATION_3 246\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 247 && BOOST_PP_ITERATION_FINISH_3 >= 247\r
-#        define BOOST_PP_ITERATION_3 247\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 248 && BOOST_PP_ITERATION_FINISH_3 >= 248\r
-#        define BOOST_PP_ITERATION_3 248\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 249 && BOOST_PP_ITERATION_FINISH_3 >= 249\r
-#        define BOOST_PP_ITERATION_3 249\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 250 && BOOST_PP_ITERATION_FINISH_3 >= 250\r
-#        define BOOST_PP_ITERATION_3 250\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 251 && BOOST_PP_ITERATION_FINISH_3 >= 251\r
-#        define BOOST_PP_ITERATION_3 251\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 252 && BOOST_PP_ITERATION_FINISH_3 >= 252\r
-#        define BOOST_PP_ITERATION_3 252\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 253 && BOOST_PP_ITERATION_FINISH_3 >= 253\r
-#        define BOOST_PP_ITERATION_3 253\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 254 && BOOST_PP_ITERATION_FINISH_3 >= 254\r
-#        define BOOST_PP_ITERATION_3 254\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 255 && BOOST_PP_ITERATION_FINISH_3 >= 255\r
-#        define BOOST_PP_ITERATION_3 255\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_3 <= 256 && BOOST_PP_ITERATION_FINISH_3 >= 256\r
-#        define BOOST_PP_ITERATION_3 256\r
-#        include BOOST_PP_FILENAME_3\r
-#        undef BOOST_PP_ITERATION_3\r
-#    endif\r
-# endif\r
-#\r
-# undef BOOST_PP_ITERATION_DEPTH\r
-# define BOOST_PP_ITERATION_DEPTH() 2\r
-#\r
-# undef BOOST_PP_ITERATION_START_3\r
-# undef BOOST_PP_ITERATION_FINISH_3\r
-# undef BOOST_PP_FILENAME_3\r
-#\r
-# undef BOOST_PP_ITERATION_FLAGS_3\r
-# undef BOOST_PP_ITERATION_PARAMS_3\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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_3)
+#        error BOOST_PP_ERROR:  depth #3 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/lower3.hpp>
+#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
+#    include <boost/preprocessor/iteration/detail/bounds/upper3.hpp>
+#    define BOOST_PP_ITERATION_FLAGS_3 0
+#    undef BOOST_PP_ITERATION_LIMITS
+# elif defined(BOOST_PP_ITERATION_PARAMS_3)
+#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_3)
+#    include <boost/preprocessor/iteration/detail/bounds/lower3.hpp>
+#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_3)
+#    include <boost/preprocessor/iteration/detail/bounds/upper3.hpp>
+#    define BOOST_PP_FILENAME_3 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_3)
+#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_3) >= 4
+#        define BOOST_PP_ITERATION_FLAGS_3 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_3)
+#    else
+#        define BOOST_PP_ITERATION_FLAGS_3 0
+#    endif
+# else
+#    error BOOST_PP_ERROR:  depth #3 iteration boundaries or filename not defined
+# endif
+#
+# undef BOOST_PP_ITERATION_DEPTH
+# define BOOST_PP_ITERATION_DEPTH() 3
+#
+# if (BOOST_PP_ITERATION_START_3) > (BOOST_PP_ITERATION_FINISH_3)
+#    include <boost/preprocessor/iteration/detail/iter/reverse3.hpp>
+# else
+#    if BOOST_PP_ITERATION_START_3 <= 0 && BOOST_PP_ITERATION_FINISH_3 >= 0
+#        define BOOST_PP_ITERATION_3 0
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 1 && BOOST_PP_ITERATION_FINISH_3 >= 1
+#        define BOOST_PP_ITERATION_3 1
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 2 && BOOST_PP_ITERATION_FINISH_3 >= 2
+#        define BOOST_PP_ITERATION_3 2
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 3 && BOOST_PP_ITERATION_FINISH_3 >= 3
+#        define BOOST_PP_ITERATION_3 3
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 4 && BOOST_PP_ITERATION_FINISH_3 >= 4
+#        define BOOST_PP_ITERATION_3 4
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 5 && BOOST_PP_ITERATION_FINISH_3 >= 5
+#        define BOOST_PP_ITERATION_3 5
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 6 && BOOST_PP_ITERATION_FINISH_3 >= 6
+#        define BOOST_PP_ITERATION_3 6
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 7 && BOOST_PP_ITERATION_FINISH_3 >= 7
+#        define BOOST_PP_ITERATION_3 7
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 8 && BOOST_PP_ITERATION_FINISH_3 >= 8
+#        define BOOST_PP_ITERATION_3 8
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 9 && BOOST_PP_ITERATION_FINISH_3 >= 9
+#        define BOOST_PP_ITERATION_3 9
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 10 && BOOST_PP_ITERATION_FINISH_3 >= 10
+#        define BOOST_PP_ITERATION_3 10
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 11 && BOOST_PP_ITERATION_FINISH_3 >= 11
+#        define BOOST_PP_ITERATION_3 11
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 12 && BOOST_PP_ITERATION_FINISH_3 >= 12
+#        define BOOST_PP_ITERATION_3 12
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 13 && BOOST_PP_ITERATION_FINISH_3 >= 13
+#        define BOOST_PP_ITERATION_3 13
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 14 && BOOST_PP_ITERATION_FINISH_3 >= 14
+#        define BOOST_PP_ITERATION_3 14
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 15 && BOOST_PP_ITERATION_FINISH_3 >= 15
+#        define BOOST_PP_ITERATION_3 15
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 16 && BOOST_PP_ITERATION_FINISH_3 >= 16
+#        define BOOST_PP_ITERATION_3 16
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 17 && BOOST_PP_ITERATION_FINISH_3 >= 17
+#        define BOOST_PP_ITERATION_3 17
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 18 && BOOST_PP_ITERATION_FINISH_3 >= 18
+#        define BOOST_PP_ITERATION_3 18
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 19 && BOOST_PP_ITERATION_FINISH_3 >= 19
+#        define BOOST_PP_ITERATION_3 19
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 20 && BOOST_PP_ITERATION_FINISH_3 >= 20
+#        define BOOST_PP_ITERATION_3 20
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 21 && BOOST_PP_ITERATION_FINISH_3 >= 21
+#        define BOOST_PP_ITERATION_3 21
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 22 && BOOST_PP_ITERATION_FINISH_3 >= 22
+#        define BOOST_PP_ITERATION_3 22
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 23 && BOOST_PP_ITERATION_FINISH_3 >= 23
+#        define BOOST_PP_ITERATION_3 23
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 24 && BOOST_PP_ITERATION_FINISH_3 >= 24
+#        define BOOST_PP_ITERATION_3 24
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 25 && BOOST_PP_ITERATION_FINISH_3 >= 25
+#        define BOOST_PP_ITERATION_3 25
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 26 && BOOST_PP_ITERATION_FINISH_3 >= 26
+#        define BOOST_PP_ITERATION_3 26
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 27 && BOOST_PP_ITERATION_FINISH_3 >= 27
+#        define BOOST_PP_ITERATION_3 27
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 28 && BOOST_PP_ITERATION_FINISH_3 >= 28
+#        define BOOST_PP_ITERATION_3 28
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 29 && BOOST_PP_ITERATION_FINISH_3 >= 29
+#        define BOOST_PP_ITERATION_3 29
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 30 && BOOST_PP_ITERATION_FINISH_3 >= 30
+#        define BOOST_PP_ITERATION_3 30
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 31 && BOOST_PP_ITERATION_FINISH_3 >= 31
+#        define BOOST_PP_ITERATION_3 31
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 32 && BOOST_PP_ITERATION_FINISH_3 >= 32
+#        define BOOST_PP_ITERATION_3 32
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 33 && BOOST_PP_ITERATION_FINISH_3 >= 33
+#        define BOOST_PP_ITERATION_3 33
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 34 && BOOST_PP_ITERATION_FINISH_3 >= 34
+#        define BOOST_PP_ITERATION_3 34
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 35 && BOOST_PP_ITERATION_FINISH_3 >= 35
+#        define BOOST_PP_ITERATION_3 35
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 36 && BOOST_PP_ITERATION_FINISH_3 >= 36
+#        define BOOST_PP_ITERATION_3 36
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 37 && BOOST_PP_ITERATION_FINISH_3 >= 37
+#        define BOOST_PP_ITERATION_3 37
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 38 && BOOST_PP_ITERATION_FINISH_3 >= 38
+#        define BOOST_PP_ITERATION_3 38
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 39 && BOOST_PP_ITERATION_FINISH_3 >= 39
+#        define BOOST_PP_ITERATION_3 39
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 40 && BOOST_PP_ITERATION_FINISH_3 >= 40
+#        define BOOST_PP_ITERATION_3 40
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 41 && BOOST_PP_ITERATION_FINISH_3 >= 41
+#        define BOOST_PP_ITERATION_3 41
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 42 && BOOST_PP_ITERATION_FINISH_3 >= 42
+#        define BOOST_PP_ITERATION_3 42
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 43 && BOOST_PP_ITERATION_FINISH_3 >= 43
+#        define BOOST_PP_ITERATION_3 43
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 44 && BOOST_PP_ITERATION_FINISH_3 >= 44
+#        define BOOST_PP_ITERATION_3 44
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 45 && BOOST_PP_ITERATION_FINISH_3 >= 45
+#        define BOOST_PP_ITERATION_3 45
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 46 && BOOST_PP_ITERATION_FINISH_3 >= 46
+#        define BOOST_PP_ITERATION_3 46
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 47 && BOOST_PP_ITERATION_FINISH_3 >= 47
+#        define BOOST_PP_ITERATION_3 47
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 48 && BOOST_PP_ITERATION_FINISH_3 >= 48
+#        define BOOST_PP_ITERATION_3 48
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 49 && BOOST_PP_ITERATION_FINISH_3 >= 49
+#        define BOOST_PP_ITERATION_3 49
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 50 && BOOST_PP_ITERATION_FINISH_3 >= 50
+#        define BOOST_PP_ITERATION_3 50
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 51 && BOOST_PP_ITERATION_FINISH_3 >= 51
+#        define BOOST_PP_ITERATION_3 51
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 52 && BOOST_PP_ITERATION_FINISH_3 >= 52
+#        define BOOST_PP_ITERATION_3 52
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 53 && BOOST_PP_ITERATION_FINISH_3 >= 53
+#        define BOOST_PP_ITERATION_3 53
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 54 && BOOST_PP_ITERATION_FINISH_3 >= 54
+#        define BOOST_PP_ITERATION_3 54
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 55 && BOOST_PP_ITERATION_FINISH_3 >= 55
+#        define BOOST_PP_ITERATION_3 55
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 56 && BOOST_PP_ITERATION_FINISH_3 >= 56
+#        define BOOST_PP_ITERATION_3 56
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 57 && BOOST_PP_ITERATION_FINISH_3 >= 57
+#        define BOOST_PP_ITERATION_3 57
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 58 && BOOST_PP_ITERATION_FINISH_3 >= 58
+#        define BOOST_PP_ITERATION_3 58
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 59 && BOOST_PP_ITERATION_FINISH_3 >= 59
+#        define BOOST_PP_ITERATION_3 59
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 60 && BOOST_PP_ITERATION_FINISH_3 >= 60
+#        define BOOST_PP_ITERATION_3 60
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 61 && BOOST_PP_ITERATION_FINISH_3 >= 61
+#        define BOOST_PP_ITERATION_3 61
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 62 && BOOST_PP_ITERATION_FINISH_3 >= 62
+#        define BOOST_PP_ITERATION_3 62
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 63 && BOOST_PP_ITERATION_FINISH_3 >= 63
+#        define BOOST_PP_ITERATION_3 63
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 64 && BOOST_PP_ITERATION_FINISH_3 >= 64
+#        define BOOST_PP_ITERATION_3 64
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 65 && BOOST_PP_ITERATION_FINISH_3 >= 65
+#        define BOOST_PP_ITERATION_3 65
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 66 && BOOST_PP_ITERATION_FINISH_3 >= 66
+#        define BOOST_PP_ITERATION_3 66
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 67 && BOOST_PP_ITERATION_FINISH_3 >= 67
+#        define BOOST_PP_ITERATION_3 67
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 68 && BOOST_PP_ITERATION_FINISH_3 >= 68
+#        define BOOST_PP_ITERATION_3 68
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 69 && BOOST_PP_ITERATION_FINISH_3 >= 69
+#        define BOOST_PP_ITERATION_3 69
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 70 && BOOST_PP_ITERATION_FINISH_3 >= 70
+#        define BOOST_PP_ITERATION_3 70
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 71 && BOOST_PP_ITERATION_FINISH_3 >= 71
+#        define BOOST_PP_ITERATION_3 71
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 72 && BOOST_PP_ITERATION_FINISH_3 >= 72
+#        define BOOST_PP_ITERATION_3 72
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 73 && BOOST_PP_ITERATION_FINISH_3 >= 73
+#        define BOOST_PP_ITERATION_3 73
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 74 && BOOST_PP_ITERATION_FINISH_3 >= 74
+#        define BOOST_PP_ITERATION_3 74
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 75 && BOOST_PP_ITERATION_FINISH_3 >= 75
+#        define BOOST_PP_ITERATION_3 75
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 76 && BOOST_PP_ITERATION_FINISH_3 >= 76
+#        define BOOST_PP_ITERATION_3 76
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 77 && BOOST_PP_ITERATION_FINISH_3 >= 77
+#        define BOOST_PP_ITERATION_3 77
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 78 && BOOST_PP_ITERATION_FINISH_3 >= 78
+#        define BOOST_PP_ITERATION_3 78
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 79 && BOOST_PP_ITERATION_FINISH_3 >= 79
+#        define BOOST_PP_ITERATION_3 79
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 80 && BOOST_PP_ITERATION_FINISH_3 >= 80
+#        define BOOST_PP_ITERATION_3 80
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 81 && BOOST_PP_ITERATION_FINISH_3 >= 81
+#        define BOOST_PP_ITERATION_3 81
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 82 && BOOST_PP_ITERATION_FINISH_3 >= 82
+#        define BOOST_PP_ITERATION_3 82
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 83 && BOOST_PP_ITERATION_FINISH_3 >= 83
+#        define BOOST_PP_ITERATION_3 83
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 84 && BOOST_PP_ITERATION_FINISH_3 >= 84
+#        define BOOST_PP_ITERATION_3 84
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 85 && BOOST_PP_ITERATION_FINISH_3 >= 85
+#        define BOOST_PP_ITERATION_3 85
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 86 && BOOST_PP_ITERATION_FINISH_3 >= 86
+#        define BOOST_PP_ITERATION_3 86
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 87 && BOOST_PP_ITERATION_FINISH_3 >= 87
+#        define BOOST_PP_ITERATION_3 87
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 88 && BOOST_PP_ITERATION_FINISH_3 >= 88
+#        define BOOST_PP_ITERATION_3 88
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 89 && BOOST_PP_ITERATION_FINISH_3 >= 89
+#        define BOOST_PP_ITERATION_3 89
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 90 && BOOST_PP_ITERATION_FINISH_3 >= 90
+#        define BOOST_PP_ITERATION_3 90
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 91 && BOOST_PP_ITERATION_FINISH_3 >= 91
+#        define BOOST_PP_ITERATION_3 91
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 92 && BOOST_PP_ITERATION_FINISH_3 >= 92
+#        define BOOST_PP_ITERATION_3 92
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 93 && BOOST_PP_ITERATION_FINISH_3 >= 93
+#        define BOOST_PP_ITERATION_3 93
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 94 && BOOST_PP_ITERATION_FINISH_3 >= 94
+#        define BOOST_PP_ITERATION_3 94
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 95 && BOOST_PP_ITERATION_FINISH_3 >= 95
+#        define BOOST_PP_ITERATION_3 95
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 96 && BOOST_PP_ITERATION_FINISH_3 >= 96
+#        define BOOST_PP_ITERATION_3 96
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 97 && BOOST_PP_ITERATION_FINISH_3 >= 97
+#        define BOOST_PP_ITERATION_3 97
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 98 && BOOST_PP_ITERATION_FINISH_3 >= 98
+#        define BOOST_PP_ITERATION_3 98
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 99 && BOOST_PP_ITERATION_FINISH_3 >= 99
+#        define BOOST_PP_ITERATION_3 99
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 100 && BOOST_PP_ITERATION_FINISH_3 >= 100
+#        define BOOST_PP_ITERATION_3 100
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 101 && BOOST_PP_ITERATION_FINISH_3 >= 101
+#        define BOOST_PP_ITERATION_3 101
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 102 && BOOST_PP_ITERATION_FINISH_3 >= 102
+#        define BOOST_PP_ITERATION_3 102
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 103 && BOOST_PP_ITERATION_FINISH_3 >= 103
+#        define BOOST_PP_ITERATION_3 103
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 104 && BOOST_PP_ITERATION_FINISH_3 >= 104
+#        define BOOST_PP_ITERATION_3 104
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 105 && BOOST_PP_ITERATION_FINISH_3 >= 105
+#        define BOOST_PP_ITERATION_3 105
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 106 && BOOST_PP_ITERATION_FINISH_3 >= 106
+#        define BOOST_PP_ITERATION_3 106
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 107 && BOOST_PP_ITERATION_FINISH_3 >= 107
+#        define BOOST_PP_ITERATION_3 107
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 108 && BOOST_PP_ITERATION_FINISH_3 >= 108
+#        define BOOST_PP_ITERATION_3 108
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 109 && BOOST_PP_ITERATION_FINISH_3 >= 109
+#        define BOOST_PP_ITERATION_3 109
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 110 && BOOST_PP_ITERATION_FINISH_3 >= 110
+#        define BOOST_PP_ITERATION_3 110
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 111 && BOOST_PP_ITERATION_FINISH_3 >= 111
+#        define BOOST_PP_ITERATION_3 111
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 112 && BOOST_PP_ITERATION_FINISH_3 >= 112
+#        define BOOST_PP_ITERATION_3 112
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 113 && BOOST_PP_ITERATION_FINISH_3 >= 113
+#        define BOOST_PP_ITERATION_3 113
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 114 && BOOST_PP_ITERATION_FINISH_3 >= 114
+#        define BOOST_PP_ITERATION_3 114
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 115 && BOOST_PP_ITERATION_FINISH_3 >= 115
+#        define BOOST_PP_ITERATION_3 115
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 116 && BOOST_PP_ITERATION_FINISH_3 >= 116
+#        define BOOST_PP_ITERATION_3 116
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 117 && BOOST_PP_ITERATION_FINISH_3 >= 117
+#        define BOOST_PP_ITERATION_3 117
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 118 && BOOST_PP_ITERATION_FINISH_3 >= 118
+#        define BOOST_PP_ITERATION_3 118
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 119 && BOOST_PP_ITERATION_FINISH_3 >= 119
+#        define BOOST_PP_ITERATION_3 119
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 120 && BOOST_PP_ITERATION_FINISH_3 >= 120
+#        define BOOST_PP_ITERATION_3 120
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 121 && BOOST_PP_ITERATION_FINISH_3 >= 121
+#        define BOOST_PP_ITERATION_3 121
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 122 && BOOST_PP_ITERATION_FINISH_3 >= 122
+#        define BOOST_PP_ITERATION_3 122
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 123 && BOOST_PP_ITERATION_FINISH_3 >= 123
+#        define BOOST_PP_ITERATION_3 123
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 124 && BOOST_PP_ITERATION_FINISH_3 >= 124
+#        define BOOST_PP_ITERATION_3 124
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 125 && BOOST_PP_ITERATION_FINISH_3 >= 125
+#        define BOOST_PP_ITERATION_3 125
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 126 && BOOST_PP_ITERATION_FINISH_3 >= 126
+#        define BOOST_PP_ITERATION_3 126
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 127 && BOOST_PP_ITERATION_FINISH_3 >= 127
+#        define BOOST_PP_ITERATION_3 127
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 128 && BOOST_PP_ITERATION_FINISH_3 >= 128
+#        define BOOST_PP_ITERATION_3 128
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 129 && BOOST_PP_ITERATION_FINISH_3 >= 129
+#        define BOOST_PP_ITERATION_3 129
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 130 && BOOST_PP_ITERATION_FINISH_3 >= 130
+#        define BOOST_PP_ITERATION_3 130
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 131 && BOOST_PP_ITERATION_FINISH_3 >= 131
+#        define BOOST_PP_ITERATION_3 131
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 132 && BOOST_PP_ITERATION_FINISH_3 >= 132
+#        define BOOST_PP_ITERATION_3 132
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 133 && BOOST_PP_ITERATION_FINISH_3 >= 133
+#        define BOOST_PP_ITERATION_3 133
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 134 && BOOST_PP_ITERATION_FINISH_3 >= 134
+#        define BOOST_PP_ITERATION_3 134
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 135 && BOOST_PP_ITERATION_FINISH_3 >= 135
+#        define BOOST_PP_ITERATION_3 135
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 136 && BOOST_PP_ITERATION_FINISH_3 >= 136
+#        define BOOST_PP_ITERATION_3 136
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 137 && BOOST_PP_ITERATION_FINISH_3 >= 137
+#        define BOOST_PP_ITERATION_3 137
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 138 && BOOST_PP_ITERATION_FINISH_3 >= 138
+#        define BOOST_PP_ITERATION_3 138
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 139 && BOOST_PP_ITERATION_FINISH_3 >= 139
+#        define BOOST_PP_ITERATION_3 139
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 140 && BOOST_PP_ITERATION_FINISH_3 >= 140
+#        define BOOST_PP_ITERATION_3 140
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 141 && BOOST_PP_ITERATION_FINISH_3 >= 141
+#        define BOOST_PP_ITERATION_3 141
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 142 && BOOST_PP_ITERATION_FINISH_3 >= 142
+#        define BOOST_PP_ITERATION_3 142
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 143 && BOOST_PP_ITERATION_FINISH_3 >= 143
+#        define BOOST_PP_ITERATION_3 143
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 144 && BOOST_PP_ITERATION_FINISH_3 >= 144
+#        define BOOST_PP_ITERATION_3 144
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 145 && BOOST_PP_ITERATION_FINISH_3 >= 145
+#        define BOOST_PP_ITERATION_3 145
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 146 && BOOST_PP_ITERATION_FINISH_3 >= 146
+#        define BOOST_PP_ITERATION_3 146
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 147 && BOOST_PP_ITERATION_FINISH_3 >= 147
+#        define BOOST_PP_ITERATION_3 147
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 148 && BOOST_PP_ITERATION_FINISH_3 >= 148
+#        define BOOST_PP_ITERATION_3 148
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 149 && BOOST_PP_ITERATION_FINISH_3 >= 149
+#        define BOOST_PP_ITERATION_3 149
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 150 && BOOST_PP_ITERATION_FINISH_3 >= 150
+#        define BOOST_PP_ITERATION_3 150
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 151 && BOOST_PP_ITERATION_FINISH_3 >= 151
+#        define BOOST_PP_ITERATION_3 151
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 152 && BOOST_PP_ITERATION_FINISH_3 >= 152
+#        define BOOST_PP_ITERATION_3 152
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 153 && BOOST_PP_ITERATION_FINISH_3 >= 153
+#        define BOOST_PP_ITERATION_3 153
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 154 && BOOST_PP_ITERATION_FINISH_3 >= 154
+#        define BOOST_PP_ITERATION_3 154
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 155 && BOOST_PP_ITERATION_FINISH_3 >= 155
+#        define BOOST_PP_ITERATION_3 155
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 156 && BOOST_PP_ITERATION_FINISH_3 >= 156
+#        define BOOST_PP_ITERATION_3 156
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 157 && BOOST_PP_ITERATION_FINISH_3 >= 157
+#        define BOOST_PP_ITERATION_3 157
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 158 && BOOST_PP_ITERATION_FINISH_3 >= 158
+#        define BOOST_PP_ITERATION_3 158
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 159 && BOOST_PP_ITERATION_FINISH_3 >= 159
+#        define BOOST_PP_ITERATION_3 159
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 160 && BOOST_PP_ITERATION_FINISH_3 >= 160
+#        define BOOST_PP_ITERATION_3 160
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 161 && BOOST_PP_ITERATION_FINISH_3 >= 161
+#        define BOOST_PP_ITERATION_3 161
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 162 && BOOST_PP_ITERATION_FINISH_3 >= 162
+#        define BOOST_PP_ITERATION_3 162
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 163 && BOOST_PP_ITERATION_FINISH_3 >= 163
+#        define BOOST_PP_ITERATION_3 163
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 164 && BOOST_PP_ITERATION_FINISH_3 >= 164
+#        define BOOST_PP_ITERATION_3 164
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 165 && BOOST_PP_ITERATION_FINISH_3 >= 165
+#        define BOOST_PP_ITERATION_3 165
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 166 && BOOST_PP_ITERATION_FINISH_3 >= 166
+#        define BOOST_PP_ITERATION_3 166
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 167 && BOOST_PP_ITERATION_FINISH_3 >= 167
+#        define BOOST_PP_ITERATION_3 167
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 168 && BOOST_PP_ITERATION_FINISH_3 >= 168
+#        define BOOST_PP_ITERATION_3 168
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 169 && BOOST_PP_ITERATION_FINISH_3 >= 169
+#        define BOOST_PP_ITERATION_3 169
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 170 && BOOST_PP_ITERATION_FINISH_3 >= 170
+#        define BOOST_PP_ITERATION_3 170
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 171 && BOOST_PP_ITERATION_FINISH_3 >= 171
+#        define BOOST_PP_ITERATION_3 171
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 172 && BOOST_PP_ITERATION_FINISH_3 >= 172
+#        define BOOST_PP_ITERATION_3 172
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 173 && BOOST_PP_ITERATION_FINISH_3 >= 173
+#        define BOOST_PP_ITERATION_3 173
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 174 && BOOST_PP_ITERATION_FINISH_3 >= 174
+#        define BOOST_PP_ITERATION_3 174
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 175 && BOOST_PP_ITERATION_FINISH_3 >= 175
+#        define BOOST_PP_ITERATION_3 175
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 176 && BOOST_PP_ITERATION_FINISH_3 >= 176
+#        define BOOST_PP_ITERATION_3 176
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 177 && BOOST_PP_ITERATION_FINISH_3 >= 177
+#        define BOOST_PP_ITERATION_3 177
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 178 && BOOST_PP_ITERATION_FINISH_3 >= 178
+#        define BOOST_PP_ITERATION_3 178
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 179 && BOOST_PP_ITERATION_FINISH_3 >= 179
+#        define BOOST_PP_ITERATION_3 179
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 180 && BOOST_PP_ITERATION_FINISH_3 >= 180
+#        define BOOST_PP_ITERATION_3 180
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 181 && BOOST_PP_ITERATION_FINISH_3 >= 181
+#        define BOOST_PP_ITERATION_3 181
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 182 && BOOST_PP_ITERATION_FINISH_3 >= 182
+#        define BOOST_PP_ITERATION_3 182
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 183 && BOOST_PP_ITERATION_FINISH_3 >= 183
+#        define BOOST_PP_ITERATION_3 183
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 184 && BOOST_PP_ITERATION_FINISH_3 >= 184
+#        define BOOST_PP_ITERATION_3 184
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 185 && BOOST_PP_ITERATION_FINISH_3 >= 185
+#        define BOOST_PP_ITERATION_3 185
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 186 && BOOST_PP_ITERATION_FINISH_3 >= 186
+#        define BOOST_PP_ITERATION_3 186
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 187 && BOOST_PP_ITERATION_FINISH_3 >= 187
+#        define BOOST_PP_ITERATION_3 187
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 188 && BOOST_PP_ITERATION_FINISH_3 >= 188
+#        define BOOST_PP_ITERATION_3 188
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 189 && BOOST_PP_ITERATION_FINISH_3 >= 189
+#        define BOOST_PP_ITERATION_3 189
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 190 && BOOST_PP_ITERATION_FINISH_3 >= 190
+#        define BOOST_PP_ITERATION_3 190
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 191 && BOOST_PP_ITERATION_FINISH_3 >= 191
+#        define BOOST_PP_ITERATION_3 191
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 192 && BOOST_PP_ITERATION_FINISH_3 >= 192
+#        define BOOST_PP_ITERATION_3 192
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 193 && BOOST_PP_ITERATION_FINISH_3 >= 193
+#        define BOOST_PP_ITERATION_3 193
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 194 && BOOST_PP_ITERATION_FINISH_3 >= 194
+#        define BOOST_PP_ITERATION_3 194
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 195 && BOOST_PP_ITERATION_FINISH_3 >= 195
+#        define BOOST_PP_ITERATION_3 195
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 196 && BOOST_PP_ITERATION_FINISH_3 >= 196
+#        define BOOST_PP_ITERATION_3 196
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 197 && BOOST_PP_ITERATION_FINISH_3 >= 197
+#        define BOOST_PP_ITERATION_3 197
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 198 && BOOST_PP_ITERATION_FINISH_3 >= 198
+#        define BOOST_PP_ITERATION_3 198
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 199 && BOOST_PP_ITERATION_FINISH_3 >= 199
+#        define BOOST_PP_ITERATION_3 199
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 200 && BOOST_PP_ITERATION_FINISH_3 >= 200
+#        define BOOST_PP_ITERATION_3 200
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 201 && BOOST_PP_ITERATION_FINISH_3 >= 201
+#        define BOOST_PP_ITERATION_3 201
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 202 && BOOST_PP_ITERATION_FINISH_3 >= 202
+#        define BOOST_PP_ITERATION_3 202
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 203 && BOOST_PP_ITERATION_FINISH_3 >= 203
+#        define BOOST_PP_ITERATION_3 203
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 204 && BOOST_PP_ITERATION_FINISH_3 >= 204
+#        define BOOST_PP_ITERATION_3 204
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 205 && BOOST_PP_ITERATION_FINISH_3 >= 205
+#        define BOOST_PP_ITERATION_3 205
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 206 && BOOST_PP_ITERATION_FINISH_3 >= 206
+#        define BOOST_PP_ITERATION_3 206
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 207 && BOOST_PP_ITERATION_FINISH_3 >= 207
+#        define BOOST_PP_ITERATION_3 207
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 208 && BOOST_PP_ITERATION_FINISH_3 >= 208
+#        define BOOST_PP_ITERATION_3 208
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 209 && BOOST_PP_ITERATION_FINISH_3 >= 209
+#        define BOOST_PP_ITERATION_3 209
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 210 && BOOST_PP_ITERATION_FINISH_3 >= 210
+#        define BOOST_PP_ITERATION_3 210
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 211 && BOOST_PP_ITERATION_FINISH_3 >= 211
+#        define BOOST_PP_ITERATION_3 211
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 212 && BOOST_PP_ITERATION_FINISH_3 >= 212
+#        define BOOST_PP_ITERATION_3 212
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 213 && BOOST_PP_ITERATION_FINISH_3 >= 213
+#        define BOOST_PP_ITERATION_3 213
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 214 && BOOST_PP_ITERATION_FINISH_3 >= 214
+#        define BOOST_PP_ITERATION_3 214
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 215 && BOOST_PP_ITERATION_FINISH_3 >= 215
+#        define BOOST_PP_ITERATION_3 215
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 216 && BOOST_PP_ITERATION_FINISH_3 >= 216
+#        define BOOST_PP_ITERATION_3 216
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 217 && BOOST_PP_ITERATION_FINISH_3 >= 217
+#        define BOOST_PP_ITERATION_3 217
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 218 && BOOST_PP_ITERATION_FINISH_3 >= 218
+#        define BOOST_PP_ITERATION_3 218
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 219 && BOOST_PP_ITERATION_FINISH_3 >= 219
+#        define BOOST_PP_ITERATION_3 219
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 220 && BOOST_PP_ITERATION_FINISH_3 >= 220
+#        define BOOST_PP_ITERATION_3 220
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 221 && BOOST_PP_ITERATION_FINISH_3 >= 221
+#        define BOOST_PP_ITERATION_3 221
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 222 && BOOST_PP_ITERATION_FINISH_3 >= 222
+#        define BOOST_PP_ITERATION_3 222
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 223 && BOOST_PP_ITERATION_FINISH_3 >= 223
+#        define BOOST_PP_ITERATION_3 223
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 224 && BOOST_PP_ITERATION_FINISH_3 >= 224
+#        define BOOST_PP_ITERATION_3 224
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 225 && BOOST_PP_ITERATION_FINISH_3 >= 225
+#        define BOOST_PP_ITERATION_3 225
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 226 && BOOST_PP_ITERATION_FINISH_3 >= 226
+#        define BOOST_PP_ITERATION_3 226
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 227 && BOOST_PP_ITERATION_FINISH_3 >= 227
+#        define BOOST_PP_ITERATION_3 227
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 228 && BOOST_PP_ITERATION_FINISH_3 >= 228
+#        define BOOST_PP_ITERATION_3 228
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 229 && BOOST_PP_ITERATION_FINISH_3 >= 229
+#        define BOOST_PP_ITERATION_3 229
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 230 && BOOST_PP_ITERATION_FINISH_3 >= 230
+#        define BOOST_PP_ITERATION_3 230
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 231 && BOOST_PP_ITERATION_FINISH_3 >= 231
+#        define BOOST_PP_ITERATION_3 231
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 232 && BOOST_PP_ITERATION_FINISH_3 >= 232
+#        define BOOST_PP_ITERATION_3 232
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 233 && BOOST_PP_ITERATION_FINISH_3 >= 233
+#        define BOOST_PP_ITERATION_3 233
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 234 && BOOST_PP_ITERATION_FINISH_3 >= 234
+#        define BOOST_PP_ITERATION_3 234
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 235 && BOOST_PP_ITERATION_FINISH_3 >= 235
+#        define BOOST_PP_ITERATION_3 235
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 236 && BOOST_PP_ITERATION_FINISH_3 >= 236
+#        define BOOST_PP_ITERATION_3 236
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 237 && BOOST_PP_ITERATION_FINISH_3 >= 237
+#        define BOOST_PP_ITERATION_3 237
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 238 && BOOST_PP_ITERATION_FINISH_3 >= 238
+#        define BOOST_PP_ITERATION_3 238
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 239 && BOOST_PP_ITERATION_FINISH_3 >= 239
+#        define BOOST_PP_ITERATION_3 239
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 240 && BOOST_PP_ITERATION_FINISH_3 >= 240
+#        define BOOST_PP_ITERATION_3 240
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 241 && BOOST_PP_ITERATION_FINISH_3 >= 241
+#        define BOOST_PP_ITERATION_3 241
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 242 && BOOST_PP_ITERATION_FINISH_3 >= 242
+#        define BOOST_PP_ITERATION_3 242
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 243 && BOOST_PP_ITERATION_FINISH_3 >= 243
+#        define BOOST_PP_ITERATION_3 243
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 244 && BOOST_PP_ITERATION_FINISH_3 >= 244
+#        define BOOST_PP_ITERATION_3 244
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 245 && BOOST_PP_ITERATION_FINISH_3 >= 245
+#        define BOOST_PP_ITERATION_3 245
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 246 && BOOST_PP_ITERATION_FINISH_3 >= 246
+#        define BOOST_PP_ITERATION_3 246
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 247 && BOOST_PP_ITERATION_FINISH_3 >= 247
+#        define BOOST_PP_ITERATION_3 247
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 248 && BOOST_PP_ITERATION_FINISH_3 >= 248
+#        define BOOST_PP_ITERATION_3 248
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 249 && BOOST_PP_ITERATION_FINISH_3 >= 249
+#        define BOOST_PP_ITERATION_3 249
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 250 && BOOST_PP_ITERATION_FINISH_3 >= 250
+#        define BOOST_PP_ITERATION_3 250
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 251 && BOOST_PP_ITERATION_FINISH_3 >= 251
+#        define BOOST_PP_ITERATION_3 251
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 252 && BOOST_PP_ITERATION_FINISH_3 >= 252
+#        define BOOST_PP_ITERATION_3 252
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 253 && BOOST_PP_ITERATION_FINISH_3 >= 253
+#        define BOOST_PP_ITERATION_3 253
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 254 && BOOST_PP_ITERATION_FINISH_3 >= 254
+#        define BOOST_PP_ITERATION_3 254
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 255 && BOOST_PP_ITERATION_FINISH_3 >= 255
+#        define BOOST_PP_ITERATION_3 255
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+#    if BOOST_PP_ITERATION_START_3 <= 256 && BOOST_PP_ITERATION_FINISH_3 >= 256
+#        define BOOST_PP_ITERATION_3 256
+#        include BOOST_PP_FILENAME_3
+#        undef BOOST_PP_ITERATION_3
+#    endif
+# endif
+#
+# undef BOOST_PP_ITERATION_DEPTH
+# define BOOST_PP_ITERATION_DEPTH() 2
+#
+# undef BOOST_PP_ITERATION_START_3
+# undef BOOST_PP_ITERATION_FINISH_3
+# undef BOOST_PP_FILENAME_3
+#
+# undef BOOST_PP_ITERATION_FLAGS_3
+# undef BOOST_PP_ITERATION_PARAMS_3
index 653c7b1b7c84f5a2044dece8f31c1ce23aa45020..6a6e54360b1830f437d6058c07acd9a4a68d97a4 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# if defined(BOOST_PP_ITERATION_LIMITS)\r
-#    if !defined(BOOST_PP_FILENAME_4)\r
-#        error BOOST_PP_ERROR:  depth #4 filename is not defined\r
-#    endif\r
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)\r
-#    include <boost/preprocessor/iteration/detail/bounds/lower4.hpp>\r
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)\r
-#    include <boost/preprocessor/iteration/detail/bounds/upper4.hpp>\r
-#    define BOOST_PP_ITERATION_FLAGS_4 0\r
-#    undef BOOST_PP_ITERATION_LIMITS\r
-# elif defined(BOOST_PP_ITERATION_PARAMS_4)\r
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_4)\r
-#    include <boost/preprocessor/iteration/detail/bounds/lower4.hpp>\r
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_4)\r
-#    include <boost/preprocessor/iteration/detail/bounds/upper4.hpp>\r
-#    define BOOST_PP_FILENAME_4 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_4)\r
-#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_4) >= 4\r
-#        define BOOST_PP_ITERATION_FLAGS_4 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_4)\r
-#    else\r
-#        define BOOST_PP_ITERATION_FLAGS_4 0\r
-#    endif\r
-# else\r
-#    error BOOST_PP_ERROR:  depth #4 iteration boundaries or filename not defined\r
-# endif\r
-#\r
-# undef BOOST_PP_ITERATION_DEPTH\r
-# define BOOST_PP_ITERATION_DEPTH() 4\r
-#\r
-# if (BOOST_PP_ITERATION_START_4) > (BOOST_PP_ITERATION_FINISH_4)\r
-#    include <boost/preprocessor/iteration/detail/iter/reverse4.hpp>\r
-# else\r
-#    if BOOST_PP_ITERATION_START_4 <= 0 && BOOST_PP_ITERATION_FINISH_4 >= 0\r
-#        define BOOST_PP_ITERATION_4 0\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 1 && BOOST_PP_ITERATION_FINISH_4 >= 1\r
-#        define BOOST_PP_ITERATION_4 1\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 2 && BOOST_PP_ITERATION_FINISH_4 >= 2\r
-#        define BOOST_PP_ITERATION_4 2\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 3 && BOOST_PP_ITERATION_FINISH_4 >= 3\r
-#        define BOOST_PP_ITERATION_4 3\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 4 && BOOST_PP_ITERATION_FINISH_4 >= 4\r
-#        define BOOST_PP_ITERATION_4 4\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 5 && BOOST_PP_ITERATION_FINISH_4 >= 5\r
-#        define BOOST_PP_ITERATION_4 5\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 6 && BOOST_PP_ITERATION_FINISH_4 >= 6\r
-#        define BOOST_PP_ITERATION_4 6\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 7 && BOOST_PP_ITERATION_FINISH_4 >= 7\r
-#        define BOOST_PP_ITERATION_4 7\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 8 && BOOST_PP_ITERATION_FINISH_4 >= 8\r
-#        define BOOST_PP_ITERATION_4 8\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 9 && BOOST_PP_ITERATION_FINISH_4 >= 9\r
-#        define BOOST_PP_ITERATION_4 9\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 10 && BOOST_PP_ITERATION_FINISH_4 >= 10\r
-#        define BOOST_PP_ITERATION_4 10\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 11 && BOOST_PP_ITERATION_FINISH_4 >= 11\r
-#        define BOOST_PP_ITERATION_4 11\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 12 && BOOST_PP_ITERATION_FINISH_4 >= 12\r
-#        define BOOST_PP_ITERATION_4 12\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 13 && BOOST_PP_ITERATION_FINISH_4 >= 13\r
-#        define BOOST_PP_ITERATION_4 13\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 14 && BOOST_PP_ITERATION_FINISH_4 >= 14\r
-#        define BOOST_PP_ITERATION_4 14\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 15 && BOOST_PP_ITERATION_FINISH_4 >= 15\r
-#        define BOOST_PP_ITERATION_4 15\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 16 && BOOST_PP_ITERATION_FINISH_4 >= 16\r
-#        define BOOST_PP_ITERATION_4 16\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 17 && BOOST_PP_ITERATION_FINISH_4 >= 17\r
-#        define BOOST_PP_ITERATION_4 17\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 18 && BOOST_PP_ITERATION_FINISH_4 >= 18\r
-#        define BOOST_PP_ITERATION_4 18\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 19 && BOOST_PP_ITERATION_FINISH_4 >= 19\r
-#        define BOOST_PP_ITERATION_4 19\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 20 && BOOST_PP_ITERATION_FINISH_4 >= 20\r
-#        define BOOST_PP_ITERATION_4 20\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 21 && BOOST_PP_ITERATION_FINISH_4 >= 21\r
-#        define BOOST_PP_ITERATION_4 21\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 22 && BOOST_PP_ITERATION_FINISH_4 >= 22\r
-#        define BOOST_PP_ITERATION_4 22\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 23 && BOOST_PP_ITERATION_FINISH_4 >= 23\r
-#        define BOOST_PP_ITERATION_4 23\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 24 && BOOST_PP_ITERATION_FINISH_4 >= 24\r
-#        define BOOST_PP_ITERATION_4 24\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 25 && BOOST_PP_ITERATION_FINISH_4 >= 25\r
-#        define BOOST_PP_ITERATION_4 25\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 26 && BOOST_PP_ITERATION_FINISH_4 >= 26\r
-#        define BOOST_PP_ITERATION_4 26\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 27 && BOOST_PP_ITERATION_FINISH_4 >= 27\r
-#        define BOOST_PP_ITERATION_4 27\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 28 && BOOST_PP_ITERATION_FINISH_4 >= 28\r
-#        define BOOST_PP_ITERATION_4 28\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 29 && BOOST_PP_ITERATION_FINISH_4 >= 29\r
-#        define BOOST_PP_ITERATION_4 29\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 30 && BOOST_PP_ITERATION_FINISH_4 >= 30\r
-#        define BOOST_PP_ITERATION_4 30\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 31 && BOOST_PP_ITERATION_FINISH_4 >= 31\r
-#        define BOOST_PP_ITERATION_4 31\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 32 && BOOST_PP_ITERATION_FINISH_4 >= 32\r
-#        define BOOST_PP_ITERATION_4 32\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 33 && BOOST_PP_ITERATION_FINISH_4 >= 33\r
-#        define BOOST_PP_ITERATION_4 33\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 34 && BOOST_PP_ITERATION_FINISH_4 >= 34\r
-#        define BOOST_PP_ITERATION_4 34\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 35 && BOOST_PP_ITERATION_FINISH_4 >= 35\r
-#        define BOOST_PP_ITERATION_4 35\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 36 && BOOST_PP_ITERATION_FINISH_4 >= 36\r
-#        define BOOST_PP_ITERATION_4 36\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 37 && BOOST_PP_ITERATION_FINISH_4 >= 37\r
-#        define BOOST_PP_ITERATION_4 37\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 38 && BOOST_PP_ITERATION_FINISH_4 >= 38\r
-#        define BOOST_PP_ITERATION_4 38\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 39 && BOOST_PP_ITERATION_FINISH_4 >= 39\r
-#        define BOOST_PP_ITERATION_4 39\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 40 && BOOST_PP_ITERATION_FINISH_4 >= 40\r
-#        define BOOST_PP_ITERATION_4 40\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 41 && BOOST_PP_ITERATION_FINISH_4 >= 41\r
-#        define BOOST_PP_ITERATION_4 41\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 42 && BOOST_PP_ITERATION_FINISH_4 >= 42\r
-#        define BOOST_PP_ITERATION_4 42\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 43 && BOOST_PP_ITERATION_FINISH_4 >= 43\r
-#        define BOOST_PP_ITERATION_4 43\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 44 && BOOST_PP_ITERATION_FINISH_4 >= 44\r
-#        define BOOST_PP_ITERATION_4 44\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 45 && BOOST_PP_ITERATION_FINISH_4 >= 45\r
-#        define BOOST_PP_ITERATION_4 45\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 46 && BOOST_PP_ITERATION_FINISH_4 >= 46\r
-#        define BOOST_PP_ITERATION_4 46\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 47 && BOOST_PP_ITERATION_FINISH_4 >= 47\r
-#        define BOOST_PP_ITERATION_4 47\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 48 && BOOST_PP_ITERATION_FINISH_4 >= 48\r
-#        define BOOST_PP_ITERATION_4 48\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 49 && BOOST_PP_ITERATION_FINISH_4 >= 49\r
-#        define BOOST_PP_ITERATION_4 49\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 50 && BOOST_PP_ITERATION_FINISH_4 >= 50\r
-#        define BOOST_PP_ITERATION_4 50\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 51 && BOOST_PP_ITERATION_FINISH_4 >= 51\r
-#        define BOOST_PP_ITERATION_4 51\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 52 && BOOST_PP_ITERATION_FINISH_4 >= 52\r
-#        define BOOST_PP_ITERATION_4 52\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 53 && BOOST_PP_ITERATION_FINISH_4 >= 53\r
-#        define BOOST_PP_ITERATION_4 53\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 54 && BOOST_PP_ITERATION_FINISH_4 >= 54\r
-#        define BOOST_PP_ITERATION_4 54\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 55 && BOOST_PP_ITERATION_FINISH_4 >= 55\r
-#        define BOOST_PP_ITERATION_4 55\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 56 && BOOST_PP_ITERATION_FINISH_4 >= 56\r
-#        define BOOST_PP_ITERATION_4 56\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 57 && BOOST_PP_ITERATION_FINISH_4 >= 57\r
-#        define BOOST_PP_ITERATION_4 57\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 58 && BOOST_PP_ITERATION_FINISH_4 >= 58\r
-#        define BOOST_PP_ITERATION_4 58\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 59 && BOOST_PP_ITERATION_FINISH_4 >= 59\r
-#        define BOOST_PP_ITERATION_4 59\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 60 && BOOST_PP_ITERATION_FINISH_4 >= 60\r
-#        define BOOST_PP_ITERATION_4 60\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 61 && BOOST_PP_ITERATION_FINISH_4 >= 61\r
-#        define BOOST_PP_ITERATION_4 61\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 62 && BOOST_PP_ITERATION_FINISH_4 >= 62\r
-#        define BOOST_PP_ITERATION_4 62\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 63 && BOOST_PP_ITERATION_FINISH_4 >= 63\r
-#        define BOOST_PP_ITERATION_4 63\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 64 && BOOST_PP_ITERATION_FINISH_4 >= 64\r
-#        define BOOST_PP_ITERATION_4 64\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 65 && BOOST_PP_ITERATION_FINISH_4 >= 65\r
-#        define BOOST_PP_ITERATION_4 65\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 66 && BOOST_PP_ITERATION_FINISH_4 >= 66\r
-#        define BOOST_PP_ITERATION_4 66\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 67 && BOOST_PP_ITERATION_FINISH_4 >= 67\r
-#        define BOOST_PP_ITERATION_4 67\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 68 && BOOST_PP_ITERATION_FINISH_4 >= 68\r
-#        define BOOST_PP_ITERATION_4 68\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 69 && BOOST_PP_ITERATION_FINISH_4 >= 69\r
-#        define BOOST_PP_ITERATION_4 69\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 70 && BOOST_PP_ITERATION_FINISH_4 >= 70\r
-#        define BOOST_PP_ITERATION_4 70\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 71 && BOOST_PP_ITERATION_FINISH_4 >= 71\r
-#        define BOOST_PP_ITERATION_4 71\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 72 && BOOST_PP_ITERATION_FINISH_4 >= 72\r
-#        define BOOST_PP_ITERATION_4 72\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 73 && BOOST_PP_ITERATION_FINISH_4 >= 73\r
-#        define BOOST_PP_ITERATION_4 73\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 74 && BOOST_PP_ITERATION_FINISH_4 >= 74\r
-#        define BOOST_PP_ITERATION_4 74\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 75 && BOOST_PP_ITERATION_FINISH_4 >= 75\r
-#        define BOOST_PP_ITERATION_4 75\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 76 && BOOST_PP_ITERATION_FINISH_4 >= 76\r
-#        define BOOST_PP_ITERATION_4 76\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 77 && BOOST_PP_ITERATION_FINISH_4 >= 77\r
-#        define BOOST_PP_ITERATION_4 77\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 78 && BOOST_PP_ITERATION_FINISH_4 >= 78\r
-#        define BOOST_PP_ITERATION_4 78\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 79 && BOOST_PP_ITERATION_FINISH_4 >= 79\r
-#        define BOOST_PP_ITERATION_4 79\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 80 && BOOST_PP_ITERATION_FINISH_4 >= 80\r
-#        define BOOST_PP_ITERATION_4 80\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 81 && BOOST_PP_ITERATION_FINISH_4 >= 81\r
-#        define BOOST_PP_ITERATION_4 81\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 82 && BOOST_PP_ITERATION_FINISH_4 >= 82\r
-#        define BOOST_PP_ITERATION_4 82\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 83 && BOOST_PP_ITERATION_FINISH_4 >= 83\r
-#        define BOOST_PP_ITERATION_4 83\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 84 && BOOST_PP_ITERATION_FINISH_4 >= 84\r
-#        define BOOST_PP_ITERATION_4 84\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 85 && BOOST_PP_ITERATION_FINISH_4 >= 85\r
-#        define BOOST_PP_ITERATION_4 85\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 86 && BOOST_PP_ITERATION_FINISH_4 >= 86\r
-#        define BOOST_PP_ITERATION_4 86\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 87 && BOOST_PP_ITERATION_FINISH_4 >= 87\r
-#        define BOOST_PP_ITERATION_4 87\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 88 && BOOST_PP_ITERATION_FINISH_4 >= 88\r
-#        define BOOST_PP_ITERATION_4 88\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 89 && BOOST_PP_ITERATION_FINISH_4 >= 89\r
-#        define BOOST_PP_ITERATION_4 89\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 90 && BOOST_PP_ITERATION_FINISH_4 >= 90\r
-#        define BOOST_PP_ITERATION_4 90\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 91 && BOOST_PP_ITERATION_FINISH_4 >= 91\r
-#        define BOOST_PP_ITERATION_4 91\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 92 && BOOST_PP_ITERATION_FINISH_4 >= 92\r
-#        define BOOST_PP_ITERATION_4 92\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 93 && BOOST_PP_ITERATION_FINISH_4 >= 93\r
-#        define BOOST_PP_ITERATION_4 93\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 94 && BOOST_PP_ITERATION_FINISH_4 >= 94\r
-#        define BOOST_PP_ITERATION_4 94\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 95 && BOOST_PP_ITERATION_FINISH_4 >= 95\r
-#        define BOOST_PP_ITERATION_4 95\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 96 && BOOST_PP_ITERATION_FINISH_4 >= 96\r
-#        define BOOST_PP_ITERATION_4 96\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 97 && BOOST_PP_ITERATION_FINISH_4 >= 97\r
-#        define BOOST_PP_ITERATION_4 97\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 98 && BOOST_PP_ITERATION_FINISH_4 >= 98\r
-#        define BOOST_PP_ITERATION_4 98\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 99 && BOOST_PP_ITERATION_FINISH_4 >= 99\r
-#        define BOOST_PP_ITERATION_4 99\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 100 && BOOST_PP_ITERATION_FINISH_4 >= 100\r
-#        define BOOST_PP_ITERATION_4 100\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 101 && BOOST_PP_ITERATION_FINISH_4 >= 101\r
-#        define BOOST_PP_ITERATION_4 101\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 102 && BOOST_PP_ITERATION_FINISH_4 >= 102\r
-#        define BOOST_PP_ITERATION_4 102\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 103 && BOOST_PP_ITERATION_FINISH_4 >= 103\r
-#        define BOOST_PP_ITERATION_4 103\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 104 && BOOST_PP_ITERATION_FINISH_4 >= 104\r
-#        define BOOST_PP_ITERATION_4 104\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 105 && BOOST_PP_ITERATION_FINISH_4 >= 105\r
-#        define BOOST_PP_ITERATION_4 105\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 106 && BOOST_PP_ITERATION_FINISH_4 >= 106\r
-#        define BOOST_PP_ITERATION_4 106\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 107 && BOOST_PP_ITERATION_FINISH_4 >= 107\r
-#        define BOOST_PP_ITERATION_4 107\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 108 && BOOST_PP_ITERATION_FINISH_4 >= 108\r
-#        define BOOST_PP_ITERATION_4 108\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 109 && BOOST_PP_ITERATION_FINISH_4 >= 109\r
-#        define BOOST_PP_ITERATION_4 109\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 110 && BOOST_PP_ITERATION_FINISH_4 >= 110\r
-#        define BOOST_PP_ITERATION_4 110\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 111 && BOOST_PP_ITERATION_FINISH_4 >= 111\r
-#        define BOOST_PP_ITERATION_4 111\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 112 && BOOST_PP_ITERATION_FINISH_4 >= 112\r
-#        define BOOST_PP_ITERATION_4 112\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 113 && BOOST_PP_ITERATION_FINISH_4 >= 113\r
-#        define BOOST_PP_ITERATION_4 113\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 114 && BOOST_PP_ITERATION_FINISH_4 >= 114\r
-#        define BOOST_PP_ITERATION_4 114\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 115 && BOOST_PP_ITERATION_FINISH_4 >= 115\r
-#        define BOOST_PP_ITERATION_4 115\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 116 && BOOST_PP_ITERATION_FINISH_4 >= 116\r
-#        define BOOST_PP_ITERATION_4 116\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 117 && BOOST_PP_ITERATION_FINISH_4 >= 117\r
-#        define BOOST_PP_ITERATION_4 117\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 118 && BOOST_PP_ITERATION_FINISH_4 >= 118\r
-#        define BOOST_PP_ITERATION_4 118\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 119 && BOOST_PP_ITERATION_FINISH_4 >= 119\r
-#        define BOOST_PP_ITERATION_4 119\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 120 && BOOST_PP_ITERATION_FINISH_4 >= 120\r
-#        define BOOST_PP_ITERATION_4 120\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 121 && BOOST_PP_ITERATION_FINISH_4 >= 121\r
-#        define BOOST_PP_ITERATION_4 121\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 122 && BOOST_PP_ITERATION_FINISH_4 >= 122\r
-#        define BOOST_PP_ITERATION_4 122\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 123 && BOOST_PP_ITERATION_FINISH_4 >= 123\r
-#        define BOOST_PP_ITERATION_4 123\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 124 && BOOST_PP_ITERATION_FINISH_4 >= 124\r
-#        define BOOST_PP_ITERATION_4 124\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 125 && BOOST_PP_ITERATION_FINISH_4 >= 125\r
-#        define BOOST_PP_ITERATION_4 125\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 126 && BOOST_PP_ITERATION_FINISH_4 >= 126\r
-#        define BOOST_PP_ITERATION_4 126\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 127 && BOOST_PP_ITERATION_FINISH_4 >= 127\r
-#        define BOOST_PP_ITERATION_4 127\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 128 && BOOST_PP_ITERATION_FINISH_4 >= 128\r
-#        define BOOST_PP_ITERATION_4 128\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 129 && BOOST_PP_ITERATION_FINISH_4 >= 129\r
-#        define BOOST_PP_ITERATION_4 129\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 130 && BOOST_PP_ITERATION_FINISH_4 >= 130\r
-#        define BOOST_PP_ITERATION_4 130\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 131 && BOOST_PP_ITERATION_FINISH_4 >= 131\r
-#        define BOOST_PP_ITERATION_4 131\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 132 && BOOST_PP_ITERATION_FINISH_4 >= 132\r
-#        define BOOST_PP_ITERATION_4 132\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 133 && BOOST_PP_ITERATION_FINISH_4 >= 133\r
-#        define BOOST_PP_ITERATION_4 133\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 134 && BOOST_PP_ITERATION_FINISH_4 >= 134\r
-#        define BOOST_PP_ITERATION_4 134\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 135 && BOOST_PP_ITERATION_FINISH_4 >= 135\r
-#        define BOOST_PP_ITERATION_4 135\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 136 && BOOST_PP_ITERATION_FINISH_4 >= 136\r
-#        define BOOST_PP_ITERATION_4 136\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 137 && BOOST_PP_ITERATION_FINISH_4 >= 137\r
-#        define BOOST_PP_ITERATION_4 137\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 138 && BOOST_PP_ITERATION_FINISH_4 >= 138\r
-#        define BOOST_PP_ITERATION_4 138\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 139 && BOOST_PP_ITERATION_FINISH_4 >= 139\r
-#        define BOOST_PP_ITERATION_4 139\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 140 && BOOST_PP_ITERATION_FINISH_4 >= 140\r
-#        define BOOST_PP_ITERATION_4 140\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 141 && BOOST_PP_ITERATION_FINISH_4 >= 141\r
-#        define BOOST_PP_ITERATION_4 141\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 142 && BOOST_PP_ITERATION_FINISH_4 >= 142\r
-#        define BOOST_PP_ITERATION_4 142\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 143 && BOOST_PP_ITERATION_FINISH_4 >= 143\r
-#        define BOOST_PP_ITERATION_4 143\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 144 && BOOST_PP_ITERATION_FINISH_4 >= 144\r
-#        define BOOST_PP_ITERATION_4 144\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 145 && BOOST_PP_ITERATION_FINISH_4 >= 145\r
-#        define BOOST_PP_ITERATION_4 145\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 146 && BOOST_PP_ITERATION_FINISH_4 >= 146\r
-#        define BOOST_PP_ITERATION_4 146\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 147 && BOOST_PP_ITERATION_FINISH_4 >= 147\r
-#        define BOOST_PP_ITERATION_4 147\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 148 && BOOST_PP_ITERATION_FINISH_4 >= 148\r
-#        define BOOST_PP_ITERATION_4 148\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 149 && BOOST_PP_ITERATION_FINISH_4 >= 149\r
-#        define BOOST_PP_ITERATION_4 149\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 150 && BOOST_PP_ITERATION_FINISH_4 >= 150\r
-#        define BOOST_PP_ITERATION_4 150\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 151 && BOOST_PP_ITERATION_FINISH_4 >= 151\r
-#        define BOOST_PP_ITERATION_4 151\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 152 && BOOST_PP_ITERATION_FINISH_4 >= 152\r
-#        define BOOST_PP_ITERATION_4 152\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 153 && BOOST_PP_ITERATION_FINISH_4 >= 153\r
-#        define BOOST_PP_ITERATION_4 153\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 154 && BOOST_PP_ITERATION_FINISH_4 >= 154\r
-#        define BOOST_PP_ITERATION_4 154\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 155 && BOOST_PP_ITERATION_FINISH_4 >= 155\r
-#        define BOOST_PP_ITERATION_4 155\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 156 && BOOST_PP_ITERATION_FINISH_4 >= 156\r
-#        define BOOST_PP_ITERATION_4 156\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 157 && BOOST_PP_ITERATION_FINISH_4 >= 157\r
-#        define BOOST_PP_ITERATION_4 157\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 158 && BOOST_PP_ITERATION_FINISH_4 >= 158\r
-#        define BOOST_PP_ITERATION_4 158\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 159 && BOOST_PP_ITERATION_FINISH_4 >= 159\r
-#        define BOOST_PP_ITERATION_4 159\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 160 && BOOST_PP_ITERATION_FINISH_4 >= 160\r
-#        define BOOST_PP_ITERATION_4 160\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 161 && BOOST_PP_ITERATION_FINISH_4 >= 161\r
-#        define BOOST_PP_ITERATION_4 161\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 162 && BOOST_PP_ITERATION_FINISH_4 >= 162\r
-#        define BOOST_PP_ITERATION_4 162\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 163 && BOOST_PP_ITERATION_FINISH_4 >= 163\r
-#        define BOOST_PP_ITERATION_4 163\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 164 && BOOST_PP_ITERATION_FINISH_4 >= 164\r
-#        define BOOST_PP_ITERATION_4 164\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 165 && BOOST_PP_ITERATION_FINISH_4 >= 165\r
-#        define BOOST_PP_ITERATION_4 165\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 166 && BOOST_PP_ITERATION_FINISH_4 >= 166\r
-#        define BOOST_PP_ITERATION_4 166\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 167 && BOOST_PP_ITERATION_FINISH_4 >= 167\r
-#        define BOOST_PP_ITERATION_4 167\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 168 && BOOST_PP_ITERATION_FINISH_4 >= 168\r
-#        define BOOST_PP_ITERATION_4 168\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 169 && BOOST_PP_ITERATION_FINISH_4 >= 169\r
-#        define BOOST_PP_ITERATION_4 169\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 170 && BOOST_PP_ITERATION_FINISH_4 >= 170\r
-#        define BOOST_PP_ITERATION_4 170\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 171 && BOOST_PP_ITERATION_FINISH_4 >= 171\r
-#        define BOOST_PP_ITERATION_4 171\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 172 && BOOST_PP_ITERATION_FINISH_4 >= 172\r
-#        define BOOST_PP_ITERATION_4 172\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 173 && BOOST_PP_ITERATION_FINISH_4 >= 173\r
-#        define BOOST_PP_ITERATION_4 173\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 174 && BOOST_PP_ITERATION_FINISH_4 >= 174\r
-#        define BOOST_PP_ITERATION_4 174\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 175 && BOOST_PP_ITERATION_FINISH_4 >= 175\r
-#        define BOOST_PP_ITERATION_4 175\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 176 && BOOST_PP_ITERATION_FINISH_4 >= 176\r
-#        define BOOST_PP_ITERATION_4 176\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 177 && BOOST_PP_ITERATION_FINISH_4 >= 177\r
-#        define BOOST_PP_ITERATION_4 177\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 178 && BOOST_PP_ITERATION_FINISH_4 >= 178\r
-#        define BOOST_PP_ITERATION_4 178\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 179 && BOOST_PP_ITERATION_FINISH_4 >= 179\r
-#        define BOOST_PP_ITERATION_4 179\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 180 && BOOST_PP_ITERATION_FINISH_4 >= 180\r
-#        define BOOST_PP_ITERATION_4 180\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 181 && BOOST_PP_ITERATION_FINISH_4 >= 181\r
-#        define BOOST_PP_ITERATION_4 181\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 182 && BOOST_PP_ITERATION_FINISH_4 >= 182\r
-#        define BOOST_PP_ITERATION_4 182\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 183 && BOOST_PP_ITERATION_FINISH_4 >= 183\r
-#        define BOOST_PP_ITERATION_4 183\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 184 && BOOST_PP_ITERATION_FINISH_4 >= 184\r
-#        define BOOST_PP_ITERATION_4 184\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 185 && BOOST_PP_ITERATION_FINISH_4 >= 185\r
-#        define BOOST_PP_ITERATION_4 185\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 186 && BOOST_PP_ITERATION_FINISH_4 >= 186\r
-#        define BOOST_PP_ITERATION_4 186\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 187 && BOOST_PP_ITERATION_FINISH_4 >= 187\r
-#        define BOOST_PP_ITERATION_4 187\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 188 && BOOST_PP_ITERATION_FINISH_4 >= 188\r
-#        define BOOST_PP_ITERATION_4 188\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 189 && BOOST_PP_ITERATION_FINISH_4 >= 189\r
-#        define BOOST_PP_ITERATION_4 189\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 190 && BOOST_PP_ITERATION_FINISH_4 >= 190\r
-#        define BOOST_PP_ITERATION_4 190\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 191 && BOOST_PP_ITERATION_FINISH_4 >= 191\r
-#        define BOOST_PP_ITERATION_4 191\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 192 && BOOST_PP_ITERATION_FINISH_4 >= 192\r
-#        define BOOST_PP_ITERATION_4 192\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 193 && BOOST_PP_ITERATION_FINISH_4 >= 193\r
-#        define BOOST_PP_ITERATION_4 193\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 194 && BOOST_PP_ITERATION_FINISH_4 >= 194\r
-#        define BOOST_PP_ITERATION_4 194\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 195 && BOOST_PP_ITERATION_FINISH_4 >= 195\r
-#        define BOOST_PP_ITERATION_4 195\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 196 && BOOST_PP_ITERATION_FINISH_4 >= 196\r
-#        define BOOST_PP_ITERATION_4 196\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 197 && BOOST_PP_ITERATION_FINISH_4 >= 197\r
-#        define BOOST_PP_ITERATION_4 197\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 198 && BOOST_PP_ITERATION_FINISH_4 >= 198\r
-#        define BOOST_PP_ITERATION_4 198\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 199 && BOOST_PP_ITERATION_FINISH_4 >= 199\r
-#        define BOOST_PP_ITERATION_4 199\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 200 && BOOST_PP_ITERATION_FINISH_4 >= 200\r
-#        define BOOST_PP_ITERATION_4 200\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 201 && BOOST_PP_ITERATION_FINISH_4 >= 201\r
-#        define BOOST_PP_ITERATION_4 201\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 202 && BOOST_PP_ITERATION_FINISH_4 >= 202\r
-#        define BOOST_PP_ITERATION_4 202\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 203 && BOOST_PP_ITERATION_FINISH_4 >= 203\r
-#        define BOOST_PP_ITERATION_4 203\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 204 && BOOST_PP_ITERATION_FINISH_4 >= 204\r
-#        define BOOST_PP_ITERATION_4 204\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 205 && BOOST_PP_ITERATION_FINISH_4 >= 205\r
-#        define BOOST_PP_ITERATION_4 205\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 206 && BOOST_PP_ITERATION_FINISH_4 >= 206\r
-#        define BOOST_PP_ITERATION_4 206\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 207 && BOOST_PP_ITERATION_FINISH_4 >= 207\r
-#        define BOOST_PP_ITERATION_4 207\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 208 && BOOST_PP_ITERATION_FINISH_4 >= 208\r
-#        define BOOST_PP_ITERATION_4 208\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 209 && BOOST_PP_ITERATION_FINISH_4 >= 209\r
-#        define BOOST_PP_ITERATION_4 209\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 210 && BOOST_PP_ITERATION_FINISH_4 >= 210\r
-#        define BOOST_PP_ITERATION_4 210\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 211 && BOOST_PP_ITERATION_FINISH_4 >= 211\r
-#        define BOOST_PP_ITERATION_4 211\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 212 && BOOST_PP_ITERATION_FINISH_4 >= 212\r
-#        define BOOST_PP_ITERATION_4 212\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 213 && BOOST_PP_ITERATION_FINISH_4 >= 213\r
-#        define BOOST_PP_ITERATION_4 213\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 214 && BOOST_PP_ITERATION_FINISH_4 >= 214\r
-#        define BOOST_PP_ITERATION_4 214\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 215 && BOOST_PP_ITERATION_FINISH_4 >= 215\r
-#        define BOOST_PP_ITERATION_4 215\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 216 && BOOST_PP_ITERATION_FINISH_4 >= 216\r
-#        define BOOST_PP_ITERATION_4 216\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 217 && BOOST_PP_ITERATION_FINISH_4 >= 217\r
-#        define BOOST_PP_ITERATION_4 217\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 218 && BOOST_PP_ITERATION_FINISH_4 >= 218\r
-#        define BOOST_PP_ITERATION_4 218\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 219 && BOOST_PP_ITERATION_FINISH_4 >= 219\r
-#        define BOOST_PP_ITERATION_4 219\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 220 && BOOST_PP_ITERATION_FINISH_4 >= 220\r
-#        define BOOST_PP_ITERATION_4 220\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 221 && BOOST_PP_ITERATION_FINISH_4 >= 221\r
-#        define BOOST_PP_ITERATION_4 221\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 222 && BOOST_PP_ITERATION_FINISH_4 >= 222\r
-#        define BOOST_PP_ITERATION_4 222\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 223 && BOOST_PP_ITERATION_FINISH_4 >= 223\r
-#        define BOOST_PP_ITERATION_4 223\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 224 && BOOST_PP_ITERATION_FINISH_4 >= 224\r
-#        define BOOST_PP_ITERATION_4 224\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 225 && BOOST_PP_ITERATION_FINISH_4 >= 225\r
-#        define BOOST_PP_ITERATION_4 225\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 226 && BOOST_PP_ITERATION_FINISH_4 >= 226\r
-#        define BOOST_PP_ITERATION_4 226\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 227 && BOOST_PP_ITERATION_FINISH_4 >= 227\r
-#        define BOOST_PP_ITERATION_4 227\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 228 && BOOST_PP_ITERATION_FINISH_4 >= 228\r
-#        define BOOST_PP_ITERATION_4 228\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 229 && BOOST_PP_ITERATION_FINISH_4 >= 229\r
-#        define BOOST_PP_ITERATION_4 229\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 230 && BOOST_PP_ITERATION_FINISH_4 >= 230\r
-#        define BOOST_PP_ITERATION_4 230\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 231 && BOOST_PP_ITERATION_FINISH_4 >= 231\r
-#        define BOOST_PP_ITERATION_4 231\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 232 && BOOST_PP_ITERATION_FINISH_4 >= 232\r
-#        define BOOST_PP_ITERATION_4 232\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 233 && BOOST_PP_ITERATION_FINISH_4 >= 233\r
-#        define BOOST_PP_ITERATION_4 233\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 234 && BOOST_PP_ITERATION_FINISH_4 >= 234\r
-#        define BOOST_PP_ITERATION_4 234\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 235 && BOOST_PP_ITERATION_FINISH_4 >= 235\r
-#        define BOOST_PP_ITERATION_4 235\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 236 && BOOST_PP_ITERATION_FINISH_4 >= 236\r
-#        define BOOST_PP_ITERATION_4 236\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 237 && BOOST_PP_ITERATION_FINISH_4 >= 237\r
-#        define BOOST_PP_ITERATION_4 237\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 238 && BOOST_PP_ITERATION_FINISH_4 >= 238\r
-#        define BOOST_PP_ITERATION_4 238\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 239 && BOOST_PP_ITERATION_FINISH_4 >= 239\r
-#        define BOOST_PP_ITERATION_4 239\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 240 && BOOST_PP_ITERATION_FINISH_4 >= 240\r
-#        define BOOST_PP_ITERATION_4 240\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 241 && BOOST_PP_ITERATION_FINISH_4 >= 241\r
-#        define BOOST_PP_ITERATION_4 241\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 242 && BOOST_PP_ITERATION_FINISH_4 >= 242\r
-#        define BOOST_PP_ITERATION_4 242\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 243 && BOOST_PP_ITERATION_FINISH_4 >= 243\r
-#        define BOOST_PP_ITERATION_4 243\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 244 && BOOST_PP_ITERATION_FINISH_4 >= 244\r
-#        define BOOST_PP_ITERATION_4 244\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 245 && BOOST_PP_ITERATION_FINISH_4 >= 245\r
-#        define BOOST_PP_ITERATION_4 245\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 246 && BOOST_PP_ITERATION_FINISH_4 >= 246\r
-#        define BOOST_PP_ITERATION_4 246\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 247 && BOOST_PP_ITERATION_FINISH_4 >= 247\r
-#        define BOOST_PP_ITERATION_4 247\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 248 && BOOST_PP_ITERATION_FINISH_4 >= 248\r
-#        define BOOST_PP_ITERATION_4 248\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 249 && BOOST_PP_ITERATION_FINISH_4 >= 249\r
-#        define BOOST_PP_ITERATION_4 249\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 250 && BOOST_PP_ITERATION_FINISH_4 >= 250\r
-#        define BOOST_PP_ITERATION_4 250\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 251 && BOOST_PP_ITERATION_FINISH_4 >= 251\r
-#        define BOOST_PP_ITERATION_4 251\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 252 && BOOST_PP_ITERATION_FINISH_4 >= 252\r
-#        define BOOST_PP_ITERATION_4 252\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 253 && BOOST_PP_ITERATION_FINISH_4 >= 253\r
-#        define BOOST_PP_ITERATION_4 253\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 254 && BOOST_PP_ITERATION_FINISH_4 >= 254\r
-#        define BOOST_PP_ITERATION_4 254\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 255 && BOOST_PP_ITERATION_FINISH_4 >= 255\r
-#        define BOOST_PP_ITERATION_4 255\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_4 <= 256 && BOOST_PP_ITERATION_FINISH_4 >= 256\r
-#        define BOOST_PP_ITERATION_4 256\r
-#        include BOOST_PP_FILENAME_4\r
-#        undef BOOST_PP_ITERATION_4\r
-#    endif\r
-# endif\r
-#\r
-# undef BOOST_PP_ITERATION_DEPTH\r
-# define BOOST_PP_ITERATION_DEPTH() 3\r
-#\r
-# undef BOOST_PP_ITERATION_START_4\r
-# undef BOOST_PP_ITERATION_FINISH_4\r
-# undef BOOST_PP_FILENAME_4\r
-#\r
-# undef BOOST_PP_ITERATION_FLAGS_4\r
-# undef BOOST_PP_ITERATION_PARAMS_4\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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
index 000ba0f12d47484dde2b79a4d369c4c68b65043e..a16e207960a48010ed44f35c2b1c34958aaf7608 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# if defined(BOOST_PP_ITERATION_LIMITS)\r
-#    if !defined(BOOST_PP_FILENAME_5)\r
-#        error BOOST_PP_ERROR:  depth #5 filename is not defined\r
-#    endif\r
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)\r
-#    include <boost/preprocessor/iteration/detail/bounds/lower5.hpp>\r
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)\r
-#    include <boost/preprocessor/iteration/detail/bounds/upper5.hpp>\r
-#    define BOOST_PP_ITERATION_FLAGS_5 0\r
-#    undef BOOST_PP_ITERATION_LIMITS\r
-# elif defined(BOOST_PP_ITERATION_PARAMS_5)\r
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_5)\r
-#    include <boost/preprocessor/iteration/detail/bounds/lower5.hpp>\r
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_5)\r
-#    include <boost/preprocessor/iteration/detail/bounds/upper5.hpp>\r
-#    define BOOST_PP_FILENAME_5 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_5)\r
-#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_5) >= 4\r
-#        define BOOST_PP_ITERATION_FLAGS_5 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_5)\r
-#    else\r
-#        define BOOST_PP_ITERATION_FLAGS_5 0\r
-#    endif\r
-# else\r
-#    error BOOST_PP_ERROR:  depth #5 iteration boundaries or filename not defined\r
-# endif\r
-#\r
-# undef BOOST_PP_ITERATION_DEPTH\r
-# define BOOST_PP_ITERATION_DEPTH() 5\r
-#\r
-# if (BOOST_PP_ITERATION_START_5) > (BOOST_PP_ITERATION_FINISH_5)\r
-#    include <boost/preprocessor/iteration/detail/iter/reverse5.hpp>\r
-# else\r
-#    if BOOST_PP_ITERATION_START_5 <= 0 && BOOST_PP_ITERATION_FINISH_5 >= 0\r
-#        define BOOST_PP_ITERATION_5 0\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 1 && BOOST_PP_ITERATION_FINISH_5 >= 1\r
-#        define BOOST_PP_ITERATION_5 1\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 2 && BOOST_PP_ITERATION_FINISH_5 >= 2\r
-#        define BOOST_PP_ITERATION_5 2\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 3 && BOOST_PP_ITERATION_FINISH_5 >= 3\r
-#        define BOOST_PP_ITERATION_5 3\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 4 && BOOST_PP_ITERATION_FINISH_5 >= 4\r
-#        define BOOST_PP_ITERATION_5 4\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 5 && BOOST_PP_ITERATION_FINISH_5 >= 5\r
-#        define BOOST_PP_ITERATION_5 5\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 6 && BOOST_PP_ITERATION_FINISH_5 >= 6\r
-#        define BOOST_PP_ITERATION_5 6\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 7 && BOOST_PP_ITERATION_FINISH_5 >= 7\r
-#        define BOOST_PP_ITERATION_5 7\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 8 && BOOST_PP_ITERATION_FINISH_5 >= 8\r
-#        define BOOST_PP_ITERATION_5 8\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 9 && BOOST_PP_ITERATION_FINISH_5 >= 9\r
-#        define BOOST_PP_ITERATION_5 9\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 10 && BOOST_PP_ITERATION_FINISH_5 >= 10\r
-#        define BOOST_PP_ITERATION_5 10\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 11 && BOOST_PP_ITERATION_FINISH_5 >= 11\r
-#        define BOOST_PP_ITERATION_5 11\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 12 && BOOST_PP_ITERATION_FINISH_5 >= 12\r
-#        define BOOST_PP_ITERATION_5 12\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 13 && BOOST_PP_ITERATION_FINISH_5 >= 13\r
-#        define BOOST_PP_ITERATION_5 13\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 14 && BOOST_PP_ITERATION_FINISH_5 >= 14\r
-#        define BOOST_PP_ITERATION_5 14\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 15 && BOOST_PP_ITERATION_FINISH_5 >= 15\r
-#        define BOOST_PP_ITERATION_5 15\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 16 && BOOST_PP_ITERATION_FINISH_5 >= 16\r
-#        define BOOST_PP_ITERATION_5 16\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 17 && BOOST_PP_ITERATION_FINISH_5 >= 17\r
-#        define BOOST_PP_ITERATION_5 17\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 18 && BOOST_PP_ITERATION_FINISH_5 >= 18\r
-#        define BOOST_PP_ITERATION_5 18\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 19 && BOOST_PP_ITERATION_FINISH_5 >= 19\r
-#        define BOOST_PP_ITERATION_5 19\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 20 && BOOST_PP_ITERATION_FINISH_5 >= 20\r
-#        define BOOST_PP_ITERATION_5 20\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 21 && BOOST_PP_ITERATION_FINISH_5 >= 21\r
-#        define BOOST_PP_ITERATION_5 21\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 22 && BOOST_PP_ITERATION_FINISH_5 >= 22\r
-#        define BOOST_PP_ITERATION_5 22\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 23 && BOOST_PP_ITERATION_FINISH_5 >= 23\r
-#        define BOOST_PP_ITERATION_5 23\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 24 && BOOST_PP_ITERATION_FINISH_5 >= 24\r
-#        define BOOST_PP_ITERATION_5 24\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 25 && BOOST_PP_ITERATION_FINISH_5 >= 25\r
-#        define BOOST_PP_ITERATION_5 25\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 26 && BOOST_PP_ITERATION_FINISH_5 >= 26\r
-#        define BOOST_PP_ITERATION_5 26\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 27 && BOOST_PP_ITERATION_FINISH_5 >= 27\r
-#        define BOOST_PP_ITERATION_5 27\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 28 && BOOST_PP_ITERATION_FINISH_5 >= 28\r
-#        define BOOST_PP_ITERATION_5 28\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 29 && BOOST_PP_ITERATION_FINISH_5 >= 29\r
-#        define BOOST_PP_ITERATION_5 29\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 30 && BOOST_PP_ITERATION_FINISH_5 >= 30\r
-#        define BOOST_PP_ITERATION_5 30\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 31 && BOOST_PP_ITERATION_FINISH_5 >= 31\r
-#        define BOOST_PP_ITERATION_5 31\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 32 && BOOST_PP_ITERATION_FINISH_5 >= 32\r
-#        define BOOST_PP_ITERATION_5 32\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 33 && BOOST_PP_ITERATION_FINISH_5 >= 33\r
-#        define BOOST_PP_ITERATION_5 33\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 34 && BOOST_PP_ITERATION_FINISH_5 >= 34\r
-#        define BOOST_PP_ITERATION_5 34\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 35 && BOOST_PP_ITERATION_FINISH_5 >= 35\r
-#        define BOOST_PP_ITERATION_5 35\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 36 && BOOST_PP_ITERATION_FINISH_5 >= 36\r
-#        define BOOST_PP_ITERATION_5 36\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 37 && BOOST_PP_ITERATION_FINISH_5 >= 37\r
-#        define BOOST_PP_ITERATION_5 37\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 38 && BOOST_PP_ITERATION_FINISH_5 >= 38\r
-#        define BOOST_PP_ITERATION_5 38\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 39 && BOOST_PP_ITERATION_FINISH_5 >= 39\r
-#        define BOOST_PP_ITERATION_5 39\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 40 && BOOST_PP_ITERATION_FINISH_5 >= 40\r
-#        define BOOST_PP_ITERATION_5 40\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 41 && BOOST_PP_ITERATION_FINISH_5 >= 41\r
-#        define BOOST_PP_ITERATION_5 41\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 42 && BOOST_PP_ITERATION_FINISH_5 >= 42\r
-#        define BOOST_PP_ITERATION_5 42\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 43 && BOOST_PP_ITERATION_FINISH_5 >= 43\r
-#        define BOOST_PP_ITERATION_5 43\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 44 && BOOST_PP_ITERATION_FINISH_5 >= 44\r
-#        define BOOST_PP_ITERATION_5 44\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 45 && BOOST_PP_ITERATION_FINISH_5 >= 45\r
-#        define BOOST_PP_ITERATION_5 45\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 46 && BOOST_PP_ITERATION_FINISH_5 >= 46\r
-#        define BOOST_PP_ITERATION_5 46\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 47 && BOOST_PP_ITERATION_FINISH_5 >= 47\r
-#        define BOOST_PP_ITERATION_5 47\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 48 && BOOST_PP_ITERATION_FINISH_5 >= 48\r
-#        define BOOST_PP_ITERATION_5 48\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 49 && BOOST_PP_ITERATION_FINISH_5 >= 49\r
-#        define BOOST_PP_ITERATION_5 49\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 50 && BOOST_PP_ITERATION_FINISH_5 >= 50\r
-#        define BOOST_PP_ITERATION_5 50\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 51 && BOOST_PP_ITERATION_FINISH_5 >= 51\r
-#        define BOOST_PP_ITERATION_5 51\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 52 && BOOST_PP_ITERATION_FINISH_5 >= 52\r
-#        define BOOST_PP_ITERATION_5 52\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 53 && BOOST_PP_ITERATION_FINISH_5 >= 53\r
-#        define BOOST_PP_ITERATION_5 53\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 54 && BOOST_PP_ITERATION_FINISH_5 >= 54\r
-#        define BOOST_PP_ITERATION_5 54\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 55 && BOOST_PP_ITERATION_FINISH_5 >= 55\r
-#        define BOOST_PP_ITERATION_5 55\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 56 && BOOST_PP_ITERATION_FINISH_5 >= 56\r
-#        define BOOST_PP_ITERATION_5 56\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 57 && BOOST_PP_ITERATION_FINISH_5 >= 57\r
-#        define BOOST_PP_ITERATION_5 57\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 58 && BOOST_PP_ITERATION_FINISH_5 >= 58\r
-#        define BOOST_PP_ITERATION_5 58\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 59 && BOOST_PP_ITERATION_FINISH_5 >= 59\r
-#        define BOOST_PP_ITERATION_5 59\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 60 && BOOST_PP_ITERATION_FINISH_5 >= 60\r
-#        define BOOST_PP_ITERATION_5 60\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 61 && BOOST_PP_ITERATION_FINISH_5 >= 61\r
-#        define BOOST_PP_ITERATION_5 61\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 62 && BOOST_PP_ITERATION_FINISH_5 >= 62\r
-#        define BOOST_PP_ITERATION_5 62\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 63 && BOOST_PP_ITERATION_FINISH_5 >= 63\r
-#        define BOOST_PP_ITERATION_5 63\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 64 && BOOST_PP_ITERATION_FINISH_5 >= 64\r
-#        define BOOST_PP_ITERATION_5 64\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 65 && BOOST_PP_ITERATION_FINISH_5 >= 65\r
-#        define BOOST_PP_ITERATION_5 65\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 66 && BOOST_PP_ITERATION_FINISH_5 >= 66\r
-#        define BOOST_PP_ITERATION_5 66\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 67 && BOOST_PP_ITERATION_FINISH_5 >= 67\r
-#        define BOOST_PP_ITERATION_5 67\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 68 && BOOST_PP_ITERATION_FINISH_5 >= 68\r
-#        define BOOST_PP_ITERATION_5 68\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 69 && BOOST_PP_ITERATION_FINISH_5 >= 69\r
-#        define BOOST_PP_ITERATION_5 69\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 70 && BOOST_PP_ITERATION_FINISH_5 >= 70\r
-#        define BOOST_PP_ITERATION_5 70\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 71 && BOOST_PP_ITERATION_FINISH_5 >= 71\r
-#        define BOOST_PP_ITERATION_5 71\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 72 && BOOST_PP_ITERATION_FINISH_5 >= 72\r
-#        define BOOST_PP_ITERATION_5 72\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 73 && BOOST_PP_ITERATION_FINISH_5 >= 73\r
-#        define BOOST_PP_ITERATION_5 73\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 74 && BOOST_PP_ITERATION_FINISH_5 >= 74\r
-#        define BOOST_PP_ITERATION_5 74\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 75 && BOOST_PP_ITERATION_FINISH_5 >= 75\r
-#        define BOOST_PP_ITERATION_5 75\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 76 && BOOST_PP_ITERATION_FINISH_5 >= 76\r
-#        define BOOST_PP_ITERATION_5 76\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 77 && BOOST_PP_ITERATION_FINISH_5 >= 77\r
-#        define BOOST_PP_ITERATION_5 77\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 78 && BOOST_PP_ITERATION_FINISH_5 >= 78\r
-#        define BOOST_PP_ITERATION_5 78\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 79 && BOOST_PP_ITERATION_FINISH_5 >= 79\r
-#        define BOOST_PP_ITERATION_5 79\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 80 && BOOST_PP_ITERATION_FINISH_5 >= 80\r
-#        define BOOST_PP_ITERATION_5 80\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 81 && BOOST_PP_ITERATION_FINISH_5 >= 81\r
-#        define BOOST_PP_ITERATION_5 81\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 82 && BOOST_PP_ITERATION_FINISH_5 >= 82\r
-#        define BOOST_PP_ITERATION_5 82\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 83 && BOOST_PP_ITERATION_FINISH_5 >= 83\r
-#        define BOOST_PP_ITERATION_5 83\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 84 && BOOST_PP_ITERATION_FINISH_5 >= 84\r
-#        define BOOST_PP_ITERATION_5 84\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 85 && BOOST_PP_ITERATION_FINISH_5 >= 85\r
-#        define BOOST_PP_ITERATION_5 85\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 86 && BOOST_PP_ITERATION_FINISH_5 >= 86\r
-#        define BOOST_PP_ITERATION_5 86\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 87 && BOOST_PP_ITERATION_FINISH_5 >= 87\r
-#        define BOOST_PP_ITERATION_5 87\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 88 && BOOST_PP_ITERATION_FINISH_5 >= 88\r
-#        define BOOST_PP_ITERATION_5 88\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 89 && BOOST_PP_ITERATION_FINISH_5 >= 89\r
-#        define BOOST_PP_ITERATION_5 89\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 90 && BOOST_PP_ITERATION_FINISH_5 >= 90\r
-#        define BOOST_PP_ITERATION_5 90\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 91 && BOOST_PP_ITERATION_FINISH_5 >= 91\r
-#        define BOOST_PP_ITERATION_5 91\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 92 && BOOST_PP_ITERATION_FINISH_5 >= 92\r
-#        define BOOST_PP_ITERATION_5 92\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 93 && BOOST_PP_ITERATION_FINISH_5 >= 93\r
-#        define BOOST_PP_ITERATION_5 93\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 94 && BOOST_PP_ITERATION_FINISH_5 >= 94\r
-#        define BOOST_PP_ITERATION_5 94\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 95 && BOOST_PP_ITERATION_FINISH_5 >= 95\r
-#        define BOOST_PP_ITERATION_5 95\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 96 && BOOST_PP_ITERATION_FINISH_5 >= 96\r
-#        define BOOST_PP_ITERATION_5 96\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 97 && BOOST_PP_ITERATION_FINISH_5 >= 97\r
-#        define BOOST_PP_ITERATION_5 97\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 98 && BOOST_PP_ITERATION_FINISH_5 >= 98\r
-#        define BOOST_PP_ITERATION_5 98\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 99 && BOOST_PP_ITERATION_FINISH_5 >= 99\r
-#        define BOOST_PP_ITERATION_5 99\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 100 && BOOST_PP_ITERATION_FINISH_5 >= 100\r
-#        define BOOST_PP_ITERATION_5 100\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 101 && BOOST_PP_ITERATION_FINISH_5 >= 101\r
-#        define BOOST_PP_ITERATION_5 101\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 102 && BOOST_PP_ITERATION_FINISH_5 >= 102\r
-#        define BOOST_PP_ITERATION_5 102\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 103 && BOOST_PP_ITERATION_FINISH_5 >= 103\r
-#        define BOOST_PP_ITERATION_5 103\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 104 && BOOST_PP_ITERATION_FINISH_5 >= 104\r
-#        define BOOST_PP_ITERATION_5 104\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 105 && BOOST_PP_ITERATION_FINISH_5 >= 105\r
-#        define BOOST_PP_ITERATION_5 105\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 106 && BOOST_PP_ITERATION_FINISH_5 >= 106\r
-#        define BOOST_PP_ITERATION_5 106\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 107 && BOOST_PP_ITERATION_FINISH_5 >= 107\r
-#        define BOOST_PP_ITERATION_5 107\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 108 && BOOST_PP_ITERATION_FINISH_5 >= 108\r
-#        define BOOST_PP_ITERATION_5 108\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 109 && BOOST_PP_ITERATION_FINISH_5 >= 109\r
-#        define BOOST_PP_ITERATION_5 109\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 110 && BOOST_PP_ITERATION_FINISH_5 >= 110\r
-#        define BOOST_PP_ITERATION_5 110\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 111 && BOOST_PP_ITERATION_FINISH_5 >= 111\r
-#        define BOOST_PP_ITERATION_5 111\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 112 && BOOST_PP_ITERATION_FINISH_5 >= 112\r
-#        define BOOST_PP_ITERATION_5 112\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 113 && BOOST_PP_ITERATION_FINISH_5 >= 113\r
-#        define BOOST_PP_ITERATION_5 113\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 114 && BOOST_PP_ITERATION_FINISH_5 >= 114\r
-#        define BOOST_PP_ITERATION_5 114\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 115 && BOOST_PP_ITERATION_FINISH_5 >= 115\r
-#        define BOOST_PP_ITERATION_5 115\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 116 && BOOST_PP_ITERATION_FINISH_5 >= 116\r
-#        define BOOST_PP_ITERATION_5 116\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 117 && BOOST_PP_ITERATION_FINISH_5 >= 117\r
-#        define BOOST_PP_ITERATION_5 117\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 118 && BOOST_PP_ITERATION_FINISH_5 >= 118\r
-#        define BOOST_PP_ITERATION_5 118\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 119 && BOOST_PP_ITERATION_FINISH_5 >= 119\r
-#        define BOOST_PP_ITERATION_5 119\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 120 && BOOST_PP_ITERATION_FINISH_5 >= 120\r
-#        define BOOST_PP_ITERATION_5 120\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 121 && BOOST_PP_ITERATION_FINISH_5 >= 121\r
-#        define BOOST_PP_ITERATION_5 121\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 122 && BOOST_PP_ITERATION_FINISH_5 >= 122\r
-#        define BOOST_PP_ITERATION_5 122\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 123 && BOOST_PP_ITERATION_FINISH_5 >= 123\r
-#        define BOOST_PP_ITERATION_5 123\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 124 && BOOST_PP_ITERATION_FINISH_5 >= 124\r
-#        define BOOST_PP_ITERATION_5 124\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 125 && BOOST_PP_ITERATION_FINISH_5 >= 125\r
-#        define BOOST_PP_ITERATION_5 125\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 126 && BOOST_PP_ITERATION_FINISH_5 >= 126\r
-#        define BOOST_PP_ITERATION_5 126\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 127 && BOOST_PP_ITERATION_FINISH_5 >= 127\r
-#        define BOOST_PP_ITERATION_5 127\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 128 && BOOST_PP_ITERATION_FINISH_5 >= 128\r
-#        define BOOST_PP_ITERATION_5 128\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 129 && BOOST_PP_ITERATION_FINISH_5 >= 129\r
-#        define BOOST_PP_ITERATION_5 129\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 130 && BOOST_PP_ITERATION_FINISH_5 >= 130\r
-#        define BOOST_PP_ITERATION_5 130\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 131 && BOOST_PP_ITERATION_FINISH_5 >= 131\r
-#        define BOOST_PP_ITERATION_5 131\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 132 && BOOST_PP_ITERATION_FINISH_5 >= 132\r
-#        define BOOST_PP_ITERATION_5 132\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 133 && BOOST_PP_ITERATION_FINISH_5 >= 133\r
-#        define BOOST_PP_ITERATION_5 133\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 134 && BOOST_PP_ITERATION_FINISH_5 >= 134\r
-#        define BOOST_PP_ITERATION_5 134\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 135 && BOOST_PP_ITERATION_FINISH_5 >= 135\r
-#        define BOOST_PP_ITERATION_5 135\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 136 && BOOST_PP_ITERATION_FINISH_5 >= 136\r
-#        define BOOST_PP_ITERATION_5 136\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 137 && BOOST_PP_ITERATION_FINISH_5 >= 137\r
-#        define BOOST_PP_ITERATION_5 137\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 138 && BOOST_PP_ITERATION_FINISH_5 >= 138\r
-#        define BOOST_PP_ITERATION_5 138\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 139 && BOOST_PP_ITERATION_FINISH_5 >= 139\r
-#        define BOOST_PP_ITERATION_5 139\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 140 && BOOST_PP_ITERATION_FINISH_5 >= 140\r
-#        define BOOST_PP_ITERATION_5 140\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 141 && BOOST_PP_ITERATION_FINISH_5 >= 141\r
-#        define BOOST_PP_ITERATION_5 141\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 142 && BOOST_PP_ITERATION_FINISH_5 >= 142\r
-#        define BOOST_PP_ITERATION_5 142\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 143 && BOOST_PP_ITERATION_FINISH_5 >= 143\r
-#        define BOOST_PP_ITERATION_5 143\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 144 && BOOST_PP_ITERATION_FINISH_5 >= 144\r
-#        define BOOST_PP_ITERATION_5 144\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 145 && BOOST_PP_ITERATION_FINISH_5 >= 145\r
-#        define BOOST_PP_ITERATION_5 145\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 146 && BOOST_PP_ITERATION_FINISH_5 >= 146\r
-#        define BOOST_PP_ITERATION_5 146\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 147 && BOOST_PP_ITERATION_FINISH_5 >= 147\r
-#        define BOOST_PP_ITERATION_5 147\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 148 && BOOST_PP_ITERATION_FINISH_5 >= 148\r
-#        define BOOST_PP_ITERATION_5 148\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 149 && BOOST_PP_ITERATION_FINISH_5 >= 149\r
-#        define BOOST_PP_ITERATION_5 149\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 150 && BOOST_PP_ITERATION_FINISH_5 >= 150\r
-#        define BOOST_PP_ITERATION_5 150\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 151 && BOOST_PP_ITERATION_FINISH_5 >= 151\r
-#        define BOOST_PP_ITERATION_5 151\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 152 && BOOST_PP_ITERATION_FINISH_5 >= 152\r
-#        define BOOST_PP_ITERATION_5 152\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 153 && BOOST_PP_ITERATION_FINISH_5 >= 153\r
-#        define BOOST_PP_ITERATION_5 153\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 154 && BOOST_PP_ITERATION_FINISH_5 >= 154\r
-#        define BOOST_PP_ITERATION_5 154\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 155 && BOOST_PP_ITERATION_FINISH_5 >= 155\r
-#        define BOOST_PP_ITERATION_5 155\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 156 && BOOST_PP_ITERATION_FINISH_5 >= 156\r
-#        define BOOST_PP_ITERATION_5 156\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 157 && BOOST_PP_ITERATION_FINISH_5 >= 157\r
-#        define BOOST_PP_ITERATION_5 157\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 158 && BOOST_PP_ITERATION_FINISH_5 >= 158\r
-#        define BOOST_PP_ITERATION_5 158\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 159 && BOOST_PP_ITERATION_FINISH_5 >= 159\r
-#        define BOOST_PP_ITERATION_5 159\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 160 && BOOST_PP_ITERATION_FINISH_5 >= 160\r
-#        define BOOST_PP_ITERATION_5 160\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 161 && BOOST_PP_ITERATION_FINISH_5 >= 161\r
-#        define BOOST_PP_ITERATION_5 161\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 162 && BOOST_PP_ITERATION_FINISH_5 >= 162\r
-#        define BOOST_PP_ITERATION_5 162\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 163 && BOOST_PP_ITERATION_FINISH_5 >= 163\r
-#        define BOOST_PP_ITERATION_5 163\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 164 && BOOST_PP_ITERATION_FINISH_5 >= 164\r
-#        define BOOST_PP_ITERATION_5 164\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 165 && BOOST_PP_ITERATION_FINISH_5 >= 165\r
-#        define BOOST_PP_ITERATION_5 165\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 166 && BOOST_PP_ITERATION_FINISH_5 >= 166\r
-#        define BOOST_PP_ITERATION_5 166\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 167 && BOOST_PP_ITERATION_FINISH_5 >= 167\r
-#        define BOOST_PP_ITERATION_5 167\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 168 && BOOST_PP_ITERATION_FINISH_5 >= 168\r
-#        define BOOST_PP_ITERATION_5 168\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 169 && BOOST_PP_ITERATION_FINISH_5 >= 169\r
-#        define BOOST_PP_ITERATION_5 169\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 170 && BOOST_PP_ITERATION_FINISH_5 >= 170\r
-#        define BOOST_PP_ITERATION_5 170\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 171 && BOOST_PP_ITERATION_FINISH_5 >= 171\r
-#        define BOOST_PP_ITERATION_5 171\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 172 && BOOST_PP_ITERATION_FINISH_5 >= 172\r
-#        define BOOST_PP_ITERATION_5 172\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 173 && BOOST_PP_ITERATION_FINISH_5 >= 173\r
-#        define BOOST_PP_ITERATION_5 173\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 174 && BOOST_PP_ITERATION_FINISH_5 >= 174\r
-#        define BOOST_PP_ITERATION_5 174\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 175 && BOOST_PP_ITERATION_FINISH_5 >= 175\r
-#        define BOOST_PP_ITERATION_5 175\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 176 && BOOST_PP_ITERATION_FINISH_5 >= 176\r
-#        define BOOST_PP_ITERATION_5 176\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 177 && BOOST_PP_ITERATION_FINISH_5 >= 177\r
-#        define BOOST_PP_ITERATION_5 177\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 178 && BOOST_PP_ITERATION_FINISH_5 >= 178\r
-#        define BOOST_PP_ITERATION_5 178\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 179 && BOOST_PP_ITERATION_FINISH_5 >= 179\r
-#        define BOOST_PP_ITERATION_5 179\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 180 && BOOST_PP_ITERATION_FINISH_5 >= 180\r
-#        define BOOST_PP_ITERATION_5 180\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 181 && BOOST_PP_ITERATION_FINISH_5 >= 181\r
-#        define BOOST_PP_ITERATION_5 181\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 182 && BOOST_PP_ITERATION_FINISH_5 >= 182\r
-#        define BOOST_PP_ITERATION_5 182\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 183 && BOOST_PP_ITERATION_FINISH_5 >= 183\r
-#        define BOOST_PP_ITERATION_5 183\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 184 && BOOST_PP_ITERATION_FINISH_5 >= 184\r
-#        define BOOST_PP_ITERATION_5 184\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 185 && BOOST_PP_ITERATION_FINISH_5 >= 185\r
-#        define BOOST_PP_ITERATION_5 185\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 186 && BOOST_PP_ITERATION_FINISH_5 >= 186\r
-#        define BOOST_PP_ITERATION_5 186\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 187 && BOOST_PP_ITERATION_FINISH_5 >= 187\r
-#        define BOOST_PP_ITERATION_5 187\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 188 && BOOST_PP_ITERATION_FINISH_5 >= 188\r
-#        define BOOST_PP_ITERATION_5 188\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 189 && BOOST_PP_ITERATION_FINISH_5 >= 189\r
-#        define BOOST_PP_ITERATION_5 189\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 190 && BOOST_PP_ITERATION_FINISH_5 >= 190\r
-#        define BOOST_PP_ITERATION_5 190\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 191 && BOOST_PP_ITERATION_FINISH_5 >= 191\r
-#        define BOOST_PP_ITERATION_5 191\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 192 && BOOST_PP_ITERATION_FINISH_5 >= 192\r
-#        define BOOST_PP_ITERATION_5 192\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 193 && BOOST_PP_ITERATION_FINISH_5 >= 193\r
-#        define BOOST_PP_ITERATION_5 193\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 194 && BOOST_PP_ITERATION_FINISH_5 >= 194\r
-#        define BOOST_PP_ITERATION_5 194\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 195 && BOOST_PP_ITERATION_FINISH_5 >= 195\r
-#        define BOOST_PP_ITERATION_5 195\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 196 && BOOST_PP_ITERATION_FINISH_5 >= 196\r
-#        define BOOST_PP_ITERATION_5 196\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 197 && BOOST_PP_ITERATION_FINISH_5 >= 197\r
-#        define BOOST_PP_ITERATION_5 197\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 198 && BOOST_PP_ITERATION_FINISH_5 >= 198\r
-#        define BOOST_PP_ITERATION_5 198\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 199 && BOOST_PP_ITERATION_FINISH_5 >= 199\r
-#        define BOOST_PP_ITERATION_5 199\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 200 && BOOST_PP_ITERATION_FINISH_5 >= 200\r
-#        define BOOST_PP_ITERATION_5 200\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 201 && BOOST_PP_ITERATION_FINISH_5 >= 201\r
-#        define BOOST_PP_ITERATION_5 201\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 202 && BOOST_PP_ITERATION_FINISH_5 >= 202\r
-#        define BOOST_PP_ITERATION_5 202\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 203 && BOOST_PP_ITERATION_FINISH_5 >= 203\r
-#        define BOOST_PP_ITERATION_5 203\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 204 && BOOST_PP_ITERATION_FINISH_5 >= 204\r
-#        define BOOST_PP_ITERATION_5 204\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 205 && BOOST_PP_ITERATION_FINISH_5 >= 205\r
-#        define BOOST_PP_ITERATION_5 205\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 206 && BOOST_PP_ITERATION_FINISH_5 >= 206\r
-#        define BOOST_PP_ITERATION_5 206\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 207 && BOOST_PP_ITERATION_FINISH_5 >= 207\r
-#        define BOOST_PP_ITERATION_5 207\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 208 && BOOST_PP_ITERATION_FINISH_5 >= 208\r
-#        define BOOST_PP_ITERATION_5 208\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 209 && BOOST_PP_ITERATION_FINISH_5 >= 209\r
-#        define BOOST_PP_ITERATION_5 209\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 210 && BOOST_PP_ITERATION_FINISH_5 >= 210\r
-#        define BOOST_PP_ITERATION_5 210\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 211 && BOOST_PP_ITERATION_FINISH_5 >= 211\r
-#        define BOOST_PP_ITERATION_5 211\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 212 && BOOST_PP_ITERATION_FINISH_5 >= 212\r
-#        define BOOST_PP_ITERATION_5 212\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 213 && BOOST_PP_ITERATION_FINISH_5 >= 213\r
-#        define BOOST_PP_ITERATION_5 213\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 214 && BOOST_PP_ITERATION_FINISH_5 >= 214\r
-#        define BOOST_PP_ITERATION_5 214\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 215 && BOOST_PP_ITERATION_FINISH_5 >= 215\r
-#        define BOOST_PP_ITERATION_5 215\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 216 && BOOST_PP_ITERATION_FINISH_5 >= 216\r
-#        define BOOST_PP_ITERATION_5 216\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 217 && BOOST_PP_ITERATION_FINISH_5 >= 217\r
-#        define BOOST_PP_ITERATION_5 217\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 218 && BOOST_PP_ITERATION_FINISH_5 >= 218\r
-#        define BOOST_PP_ITERATION_5 218\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 219 && BOOST_PP_ITERATION_FINISH_5 >= 219\r
-#        define BOOST_PP_ITERATION_5 219\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 220 && BOOST_PP_ITERATION_FINISH_5 >= 220\r
-#        define BOOST_PP_ITERATION_5 220\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 221 && BOOST_PP_ITERATION_FINISH_5 >= 221\r
-#        define BOOST_PP_ITERATION_5 221\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 222 && BOOST_PP_ITERATION_FINISH_5 >= 222\r
-#        define BOOST_PP_ITERATION_5 222\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 223 && BOOST_PP_ITERATION_FINISH_5 >= 223\r
-#        define BOOST_PP_ITERATION_5 223\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 224 && BOOST_PP_ITERATION_FINISH_5 >= 224\r
-#        define BOOST_PP_ITERATION_5 224\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 225 && BOOST_PP_ITERATION_FINISH_5 >= 225\r
-#        define BOOST_PP_ITERATION_5 225\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 226 && BOOST_PP_ITERATION_FINISH_5 >= 226\r
-#        define BOOST_PP_ITERATION_5 226\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 227 && BOOST_PP_ITERATION_FINISH_5 >= 227\r
-#        define BOOST_PP_ITERATION_5 227\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 228 && BOOST_PP_ITERATION_FINISH_5 >= 228\r
-#        define BOOST_PP_ITERATION_5 228\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 229 && BOOST_PP_ITERATION_FINISH_5 >= 229\r
-#        define BOOST_PP_ITERATION_5 229\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 230 && BOOST_PP_ITERATION_FINISH_5 >= 230\r
-#        define BOOST_PP_ITERATION_5 230\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 231 && BOOST_PP_ITERATION_FINISH_5 >= 231\r
-#        define BOOST_PP_ITERATION_5 231\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 232 && BOOST_PP_ITERATION_FINISH_5 >= 232\r
-#        define BOOST_PP_ITERATION_5 232\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 233 && BOOST_PP_ITERATION_FINISH_5 >= 233\r
-#        define BOOST_PP_ITERATION_5 233\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 234 && BOOST_PP_ITERATION_FINISH_5 >= 234\r
-#        define BOOST_PP_ITERATION_5 234\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 235 && BOOST_PP_ITERATION_FINISH_5 >= 235\r
-#        define BOOST_PP_ITERATION_5 235\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 236 && BOOST_PP_ITERATION_FINISH_5 >= 236\r
-#        define BOOST_PP_ITERATION_5 236\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 237 && BOOST_PP_ITERATION_FINISH_5 >= 237\r
-#        define BOOST_PP_ITERATION_5 237\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 238 && BOOST_PP_ITERATION_FINISH_5 >= 238\r
-#        define BOOST_PP_ITERATION_5 238\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 239 && BOOST_PP_ITERATION_FINISH_5 >= 239\r
-#        define BOOST_PP_ITERATION_5 239\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 240 && BOOST_PP_ITERATION_FINISH_5 >= 240\r
-#        define BOOST_PP_ITERATION_5 240\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 241 && BOOST_PP_ITERATION_FINISH_5 >= 241\r
-#        define BOOST_PP_ITERATION_5 241\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 242 && BOOST_PP_ITERATION_FINISH_5 >= 242\r
-#        define BOOST_PP_ITERATION_5 242\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 243 && BOOST_PP_ITERATION_FINISH_5 >= 243\r
-#        define BOOST_PP_ITERATION_5 243\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 244 && BOOST_PP_ITERATION_FINISH_5 >= 244\r
-#        define BOOST_PP_ITERATION_5 244\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 245 && BOOST_PP_ITERATION_FINISH_5 >= 245\r
-#        define BOOST_PP_ITERATION_5 245\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 246 && BOOST_PP_ITERATION_FINISH_5 >= 246\r
-#        define BOOST_PP_ITERATION_5 246\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 247 && BOOST_PP_ITERATION_FINISH_5 >= 247\r
-#        define BOOST_PP_ITERATION_5 247\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 248 && BOOST_PP_ITERATION_FINISH_5 >= 248\r
-#        define BOOST_PP_ITERATION_5 248\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 249 && BOOST_PP_ITERATION_FINISH_5 >= 249\r
-#        define BOOST_PP_ITERATION_5 249\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 250 && BOOST_PP_ITERATION_FINISH_5 >= 250\r
-#        define BOOST_PP_ITERATION_5 250\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 251 && BOOST_PP_ITERATION_FINISH_5 >= 251\r
-#        define BOOST_PP_ITERATION_5 251\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 252 && BOOST_PP_ITERATION_FINISH_5 >= 252\r
-#        define BOOST_PP_ITERATION_5 252\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 253 && BOOST_PP_ITERATION_FINISH_5 >= 253\r
-#        define BOOST_PP_ITERATION_5 253\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 254 && BOOST_PP_ITERATION_FINISH_5 >= 254\r
-#        define BOOST_PP_ITERATION_5 254\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 255 && BOOST_PP_ITERATION_FINISH_5 >= 255\r
-#        define BOOST_PP_ITERATION_5 255\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-#    if BOOST_PP_ITERATION_START_5 <= 256 && BOOST_PP_ITERATION_FINISH_5 >= 256\r
-#        define BOOST_PP_ITERATION_5 256\r
-#        include BOOST_PP_FILENAME_5\r
-#        undef BOOST_PP_ITERATION_5\r
-#    endif\r
-# endif\r
-#\r
-# undef BOOST_PP_ITERATION_DEPTH\r
-# define BOOST_PP_ITERATION_DEPTH() 4\r
-#\r
-# undef BOOST_PP_ITERATION_START_5\r
-# undef BOOST_PP_ITERATION_FINISH_5\r
-# undef BOOST_PP_FILENAME_5\r
-#\r
-# undef BOOST_PP_ITERATION_FLAGS_5\r
-# undef BOOST_PP_ITERATION_PARAMS_5\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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_5)
+#        error BOOST_PP_ERROR:  depth #5 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/lower5.hpp>
+#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
+#    include <boost/preprocessor/iteration/detail/bounds/upper5.hpp>
+#    define BOOST_PP_ITERATION_FLAGS_5 0
+#    undef BOOST_PP_ITERATION_LIMITS
+# elif defined(BOOST_PP_ITERATION_PARAMS_5)
+#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_5)
+#    include <boost/preprocessor/iteration/detail/bounds/lower5.hpp>
+#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_5)
+#    include <boost/preprocessor/iteration/detail/bounds/upper5.hpp>
+#    define BOOST_PP_FILENAME_5 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_5)
+#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_5) >= 4
+#        define BOOST_PP_ITERATION_FLAGS_5 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_5)
+#    else
+#        define BOOST_PP_ITERATION_FLAGS_5 0
+#    endif
+# else
+#    error BOOST_PP_ERROR:  depth #5 iteration boundaries or filename not defined
+# endif
+#
+# undef BOOST_PP_ITERATION_DEPTH
+# define BOOST_PP_ITERATION_DEPTH() 5
+#
+# if (BOOST_PP_ITERATION_START_5) > (BOOST_PP_ITERATION_FINISH_5)
+#    include <boost/preprocessor/iteration/detail/iter/reverse5.hpp>
+# else
+#    if BOOST_PP_ITERATION_START_5 <= 0 && BOOST_PP_ITERATION_FINISH_5 >= 0
+#        define BOOST_PP_ITERATION_5 0
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 1 && BOOST_PP_ITERATION_FINISH_5 >= 1
+#        define BOOST_PP_ITERATION_5 1
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 2 && BOOST_PP_ITERATION_FINISH_5 >= 2
+#        define BOOST_PP_ITERATION_5 2
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 3 && BOOST_PP_ITERATION_FINISH_5 >= 3
+#        define BOOST_PP_ITERATION_5 3
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 4 && BOOST_PP_ITERATION_FINISH_5 >= 4
+#        define BOOST_PP_ITERATION_5 4
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 5 && BOOST_PP_ITERATION_FINISH_5 >= 5
+#        define BOOST_PP_ITERATION_5 5
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 6 && BOOST_PP_ITERATION_FINISH_5 >= 6
+#        define BOOST_PP_ITERATION_5 6
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 7 && BOOST_PP_ITERATION_FINISH_5 >= 7
+#        define BOOST_PP_ITERATION_5 7
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 8 && BOOST_PP_ITERATION_FINISH_5 >= 8
+#        define BOOST_PP_ITERATION_5 8
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 9 && BOOST_PP_ITERATION_FINISH_5 >= 9
+#        define BOOST_PP_ITERATION_5 9
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 10 && BOOST_PP_ITERATION_FINISH_5 >= 10
+#        define BOOST_PP_ITERATION_5 10
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 11 && BOOST_PP_ITERATION_FINISH_5 >= 11
+#        define BOOST_PP_ITERATION_5 11
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 12 && BOOST_PP_ITERATION_FINISH_5 >= 12
+#        define BOOST_PP_ITERATION_5 12
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 13 && BOOST_PP_ITERATION_FINISH_5 >= 13
+#        define BOOST_PP_ITERATION_5 13
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 14 && BOOST_PP_ITERATION_FINISH_5 >= 14
+#        define BOOST_PP_ITERATION_5 14
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 15 && BOOST_PP_ITERATION_FINISH_5 >= 15
+#        define BOOST_PP_ITERATION_5 15
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 16 && BOOST_PP_ITERATION_FINISH_5 >= 16
+#        define BOOST_PP_ITERATION_5 16
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 17 && BOOST_PP_ITERATION_FINISH_5 >= 17
+#        define BOOST_PP_ITERATION_5 17
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 18 && BOOST_PP_ITERATION_FINISH_5 >= 18
+#        define BOOST_PP_ITERATION_5 18
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 19 && BOOST_PP_ITERATION_FINISH_5 >= 19
+#        define BOOST_PP_ITERATION_5 19
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 20 && BOOST_PP_ITERATION_FINISH_5 >= 20
+#        define BOOST_PP_ITERATION_5 20
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 21 && BOOST_PP_ITERATION_FINISH_5 >= 21
+#        define BOOST_PP_ITERATION_5 21
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 22 && BOOST_PP_ITERATION_FINISH_5 >= 22
+#        define BOOST_PP_ITERATION_5 22
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 23 && BOOST_PP_ITERATION_FINISH_5 >= 23
+#        define BOOST_PP_ITERATION_5 23
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 24 && BOOST_PP_ITERATION_FINISH_5 >= 24
+#        define BOOST_PP_ITERATION_5 24
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 25 && BOOST_PP_ITERATION_FINISH_5 >= 25
+#        define BOOST_PP_ITERATION_5 25
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 26 && BOOST_PP_ITERATION_FINISH_5 >= 26
+#        define BOOST_PP_ITERATION_5 26
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 27 && BOOST_PP_ITERATION_FINISH_5 >= 27
+#        define BOOST_PP_ITERATION_5 27
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 28 && BOOST_PP_ITERATION_FINISH_5 >= 28
+#        define BOOST_PP_ITERATION_5 28
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 29 && BOOST_PP_ITERATION_FINISH_5 >= 29
+#        define BOOST_PP_ITERATION_5 29
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 30 && BOOST_PP_ITERATION_FINISH_5 >= 30
+#        define BOOST_PP_ITERATION_5 30
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 31 && BOOST_PP_ITERATION_FINISH_5 >= 31
+#        define BOOST_PP_ITERATION_5 31
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 32 && BOOST_PP_ITERATION_FINISH_5 >= 32
+#        define BOOST_PP_ITERATION_5 32
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 33 && BOOST_PP_ITERATION_FINISH_5 >= 33
+#        define BOOST_PP_ITERATION_5 33
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 34 && BOOST_PP_ITERATION_FINISH_5 >= 34
+#        define BOOST_PP_ITERATION_5 34
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 35 && BOOST_PP_ITERATION_FINISH_5 >= 35
+#        define BOOST_PP_ITERATION_5 35
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 36 && BOOST_PP_ITERATION_FINISH_5 >= 36
+#        define BOOST_PP_ITERATION_5 36
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 37 && BOOST_PP_ITERATION_FINISH_5 >= 37
+#        define BOOST_PP_ITERATION_5 37
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 38 && BOOST_PP_ITERATION_FINISH_5 >= 38
+#        define BOOST_PP_ITERATION_5 38
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 39 && BOOST_PP_ITERATION_FINISH_5 >= 39
+#        define BOOST_PP_ITERATION_5 39
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 40 && BOOST_PP_ITERATION_FINISH_5 >= 40
+#        define BOOST_PP_ITERATION_5 40
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 41 && BOOST_PP_ITERATION_FINISH_5 >= 41
+#        define BOOST_PP_ITERATION_5 41
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 42 && BOOST_PP_ITERATION_FINISH_5 >= 42
+#        define BOOST_PP_ITERATION_5 42
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 43 && BOOST_PP_ITERATION_FINISH_5 >= 43
+#        define BOOST_PP_ITERATION_5 43
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 44 && BOOST_PP_ITERATION_FINISH_5 >= 44
+#        define BOOST_PP_ITERATION_5 44
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 45 && BOOST_PP_ITERATION_FINISH_5 >= 45
+#        define BOOST_PP_ITERATION_5 45
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 46 && BOOST_PP_ITERATION_FINISH_5 >= 46
+#        define BOOST_PP_ITERATION_5 46
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 47 && BOOST_PP_ITERATION_FINISH_5 >= 47
+#        define BOOST_PP_ITERATION_5 47
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 48 && BOOST_PP_ITERATION_FINISH_5 >= 48
+#        define BOOST_PP_ITERATION_5 48
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 49 && BOOST_PP_ITERATION_FINISH_5 >= 49
+#        define BOOST_PP_ITERATION_5 49
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 50 && BOOST_PP_ITERATION_FINISH_5 >= 50
+#        define BOOST_PP_ITERATION_5 50
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 51 && BOOST_PP_ITERATION_FINISH_5 >= 51
+#        define BOOST_PP_ITERATION_5 51
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 52 && BOOST_PP_ITERATION_FINISH_5 >= 52
+#        define BOOST_PP_ITERATION_5 52
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 53 && BOOST_PP_ITERATION_FINISH_5 >= 53
+#        define BOOST_PP_ITERATION_5 53
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 54 && BOOST_PP_ITERATION_FINISH_5 >= 54
+#        define BOOST_PP_ITERATION_5 54
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 55 && BOOST_PP_ITERATION_FINISH_5 >= 55
+#        define BOOST_PP_ITERATION_5 55
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 56 && BOOST_PP_ITERATION_FINISH_5 >= 56
+#        define BOOST_PP_ITERATION_5 56
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 57 && BOOST_PP_ITERATION_FINISH_5 >= 57
+#        define BOOST_PP_ITERATION_5 57
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 58 && BOOST_PP_ITERATION_FINISH_5 >= 58
+#        define BOOST_PP_ITERATION_5 58
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 59 && BOOST_PP_ITERATION_FINISH_5 >= 59
+#        define BOOST_PP_ITERATION_5 59
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 60 && BOOST_PP_ITERATION_FINISH_5 >= 60
+#        define BOOST_PP_ITERATION_5 60
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 61 && BOOST_PP_ITERATION_FINISH_5 >= 61
+#        define BOOST_PP_ITERATION_5 61
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 62 && BOOST_PP_ITERATION_FINISH_5 >= 62
+#        define BOOST_PP_ITERATION_5 62
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 63 && BOOST_PP_ITERATION_FINISH_5 >= 63
+#        define BOOST_PP_ITERATION_5 63
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 64 && BOOST_PP_ITERATION_FINISH_5 >= 64
+#        define BOOST_PP_ITERATION_5 64
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 65 && BOOST_PP_ITERATION_FINISH_5 >= 65
+#        define BOOST_PP_ITERATION_5 65
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 66 && BOOST_PP_ITERATION_FINISH_5 >= 66
+#        define BOOST_PP_ITERATION_5 66
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 67 && BOOST_PP_ITERATION_FINISH_5 >= 67
+#        define BOOST_PP_ITERATION_5 67
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 68 && BOOST_PP_ITERATION_FINISH_5 >= 68
+#        define BOOST_PP_ITERATION_5 68
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 69 && BOOST_PP_ITERATION_FINISH_5 >= 69
+#        define BOOST_PP_ITERATION_5 69
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 70 && BOOST_PP_ITERATION_FINISH_5 >= 70
+#        define BOOST_PP_ITERATION_5 70
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 71 && BOOST_PP_ITERATION_FINISH_5 >= 71
+#        define BOOST_PP_ITERATION_5 71
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 72 && BOOST_PP_ITERATION_FINISH_5 >= 72
+#        define BOOST_PP_ITERATION_5 72
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 73 && BOOST_PP_ITERATION_FINISH_5 >= 73
+#        define BOOST_PP_ITERATION_5 73
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 74 && BOOST_PP_ITERATION_FINISH_5 >= 74
+#        define BOOST_PP_ITERATION_5 74
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 75 && BOOST_PP_ITERATION_FINISH_5 >= 75
+#        define BOOST_PP_ITERATION_5 75
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 76 && BOOST_PP_ITERATION_FINISH_5 >= 76
+#        define BOOST_PP_ITERATION_5 76
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 77 && BOOST_PP_ITERATION_FINISH_5 >= 77
+#        define BOOST_PP_ITERATION_5 77
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 78 && BOOST_PP_ITERATION_FINISH_5 >= 78
+#        define BOOST_PP_ITERATION_5 78
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 79 && BOOST_PP_ITERATION_FINISH_5 >= 79
+#        define BOOST_PP_ITERATION_5 79
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 80 && BOOST_PP_ITERATION_FINISH_5 >= 80
+#        define BOOST_PP_ITERATION_5 80
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 81 && BOOST_PP_ITERATION_FINISH_5 >= 81
+#        define BOOST_PP_ITERATION_5 81
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 82 && BOOST_PP_ITERATION_FINISH_5 >= 82
+#        define BOOST_PP_ITERATION_5 82
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 83 && BOOST_PP_ITERATION_FINISH_5 >= 83
+#        define BOOST_PP_ITERATION_5 83
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 84 && BOOST_PP_ITERATION_FINISH_5 >= 84
+#        define BOOST_PP_ITERATION_5 84
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 85 && BOOST_PP_ITERATION_FINISH_5 >= 85
+#        define BOOST_PP_ITERATION_5 85
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 86 && BOOST_PP_ITERATION_FINISH_5 >= 86
+#        define BOOST_PP_ITERATION_5 86
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 87 && BOOST_PP_ITERATION_FINISH_5 >= 87
+#        define BOOST_PP_ITERATION_5 87
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 88 && BOOST_PP_ITERATION_FINISH_5 >= 88
+#        define BOOST_PP_ITERATION_5 88
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 89 && BOOST_PP_ITERATION_FINISH_5 >= 89
+#        define BOOST_PP_ITERATION_5 89
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 90 && BOOST_PP_ITERATION_FINISH_5 >= 90
+#        define BOOST_PP_ITERATION_5 90
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 91 && BOOST_PP_ITERATION_FINISH_5 >= 91
+#        define BOOST_PP_ITERATION_5 91
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 92 && BOOST_PP_ITERATION_FINISH_5 >= 92
+#        define BOOST_PP_ITERATION_5 92
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 93 && BOOST_PP_ITERATION_FINISH_5 >= 93
+#        define BOOST_PP_ITERATION_5 93
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 94 && BOOST_PP_ITERATION_FINISH_5 >= 94
+#        define BOOST_PP_ITERATION_5 94
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 95 && BOOST_PP_ITERATION_FINISH_5 >= 95
+#        define BOOST_PP_ITERATION_5 95
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 96 && BOOST_PP_ITERATION_FINISH_5 >= 96
+#        define BOOST_PP_ITERATION_5 96
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 97 && BOOST_PP_ITERATION_FINISH_5 >= 97
+#        define BOOST_PP_ITERATION_5 97
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 98 && BOOST_PP_ITERATION_FINISH_5 >= 98
+#        define BOOST_PP_ITERATION_5 98
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 99 && BOOST_PP_ITERATION_FINISH_5 >= 99
+#        define BOOST_PP_ITERATION_5 99
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 100 && BOOST_PP_ITERATION_FINISH_5 >= 100
+#        define BOOST_PP_ITERATION_5 100
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 101 && BOOST_PP_ITERATION_FINISH_5 >= 101
+#        define BOOST_PP_ITERATION_5 101
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 102 && BOOST_PP_ITERATION_FINISH_5 >= 102
+#        define BOOST_PP_ITERATION_5 102
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 103 && BOOST_PP_ITERATION_FINISH_5 >= 103
+#        define BOOST_PP_ITERATION_5 103
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 104 && BOOST_PP_ITERATION_FINISH_5 >= 104
+#        define BOOST_PP_ITERATION_5 104
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 105 && BOOST_PP_ITERATION_FINISH_5 >= 105
+#        define BOOST_PP_ITERATION_5 105
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 106 && BOOST_PP_ITERATION_FINISH_5 >= 106
+#        define BOOST_PP_ITERATION_5 106
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 107 && BOOST_PP_ITERATION_FINISH_5 >= 107
+#        define BOOST_PP_ITERATION_5 107
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 108 && BOOST_PP_ITERATION_FINISH_5 >= 108
+#        define BOOST_PP_ITERATION_5 108
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 109 && BOOST_PP_ITERATION_FINISH_5 >= 109
+#        define BOOST_PP_ITERATION_5 109
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 110 && BOOST_PP_ITERATION_FINISH_5 >= 110
+#        define BOOST_PP_ITERATION_5 110
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 111 && BOOST_PP_ITERATION_FINISH_5 >= 111
+#        define BOOST_PP_ITERATION_5 111
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 112 && BOOST_PP_ITERATION_FINISH_5 >= 112
+#        define BOOST_PP_ITERATION_5 112
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 113 && BOOST_PP_ITERATION_FINISH_5 >= 113
+#        define BOOST_PP_ITERATION_5 113
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 114 && BOOST_PP_ITERATION_FINISH_5 >= 114
+#        define BOOST_PP_ITERATION_5 114
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 115 && BOOST_PP_ITERATION_FINISH_5 >= 115
+#        define BOOST_PP_ITERATION_5 115
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 116 && BOOST_PP_ITERATION_FINISH_5 >= 116
+#        define BOOST_PP_ITERATION_5 116
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 117 && BOOST_PP_ITERATION_FINISH_5 >= 117
+#        define BOOST_PP_ITERATION_5 117
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 118 && BOOST_PP_ITERATION_FINISH_5 >= 118
+#        define BOOST_PP_ITERATION_5 118
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 119 && BOOST_PP_ITERATION_FINISH_5 >= 119
+#        define BOOST_PP_ITERATION_5 119
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 120 && BOOST_PP_ITERATION_FINISH_5 >= 120
+#        define BOOST_PP_ITERATION_5 120
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 121 && BOOST_PP_ITERATION_FINISH_5 >= 121
+#        define BOOST_PP_ITERATION_5 121
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 122 && BOOST_PP_ITERATION_FINISH_5 >= 122
+#        define BOOST_PP_ITERATION_5 122
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 123 && BOOST_PP_ITERATION_FINISH_5 >= 123
+#        define BOOST_PP_ITERATION_5 123
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 124 && BOOST_PP_ITERATION_FINISH_5 >= 124
+#        define BOOST_PP_ITERATION_5 124
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 125 && BOOST_PP_ITERATION_FINISH_5 >= 125
+#        define BOOST_PP_ITERATION_5 125
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 126 && BOOST_PP_ITERATION_FINISH_5 >= 126
+#        define BOOST_PP_ITERATION_5 126
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 127 && BOOST_PP_ITERATION_FINISH_5 >= 127
+#        define BOOST_PP_ITERATION_5 127
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 128 && BOOST_PP_ITERATION_FINISH_5 >= 128
+#        define BOOST_PP_ITERATION_5 128
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 129 && BOOST_PP_ITERATION_FINISH_5 >= 129
+#        define BOOST_PP_ITERATION_5 129
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 130 && BOOST_PP_ITERATION_FINISH_5 >= 130
+#        define BOOST_PP_ITERATION_5 130
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 131 && BOOST_PP_ITERATION_FINISH_5 >= 131
+#        define BOOST_PP_ITERATION_5 131
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 132 && BOOST_PP_ITERATION_FINISH_5 >= 132
+#        define BOOST_PP_ITERATION_5 132
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 133 && BOOST_PP_ITERATION_FINISH_5 >= 133
+#        define BOOST_PP_ITERATION_5 133
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 134 && BOOST_PP_ITERATION_FINISH_5 >= 134
+#        define BOOST_PP_ITERATION_5 134
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 135 && BOOST_PP_ITERATION_FINISH_5 >= 135
+#        define BOOST_PP_ITERATION_5 135
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 136 && BOOST_PP_ITERATION_FINISH_5 >= 136
+#        define BOOST_PP_ITERATION_5 136
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 137 && BOOST_PP_ITERATION_FINISH_5 >= 137
+#        define BOOST_PP_ITERATION_5 137
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 138 && BOOST_PP_ITERATION_FINISH_5 >= 138
+#        define BOOST_PP_ITERATION_5 138
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 139 && BOOST_PP_ITERATION_FINISH_5 >= 139
+#        define BOOST_PP_ITERATION_5 139
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 140 && BOOST_PP_ITERATION_FINISH_5 >= 140
+#        define BOOST_PP_ITERATION_5 140
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 141 && BOOST_PP_ITERATION_FINISH_5 >= 141
+#        define BOOST_PP_ITERATION_5 141
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 142 && BOOST_PP_ITERATION_FINISH_5 >= 142
+#        define BOOST_PP_ITERATION_5 142
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 143 && BOOST_PP_ITERATION_FINISH_5 >= 143
+#        define BOOST_PP_ITERATION_5 143
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 144 && BOOST_PP_ITERATION_FINISH_5 >= 144
+#        define BOOST_PP_ITERATION_5 144
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 145 && BOOST_PP_ITERATION_FINISH_5 >= 145
+#        define BOOST_PP_ITERATION_5 145
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 146 && BOOST_PP_ITERATION_FINISH_5 >= 146
+#        define BOOST_PP_ITERATION_5 146
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 147 && BOOST_PP_ITERATION_FINISH_5 >= 147
+#        define BOOST_PP_ITERATION_5 147
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 148 && BOOST_PP_ITERATION_FINISH_5 >= 148
+#        define BOOST_PP_ITERATION_5 148
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 149 && BOOST_PP_ITERATION_FINISH_5 >= 149
+#        define BOOST_PP_ITERATION_5 149
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 150 && BOOST_PP_ITERATION_FINISH_5 >= 150
+#        define BOOST_PP_ITERATION_5 150
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 151 && BOOST_PP_ITERATION_FINISH_5 >= 151
+#        define BOOST_PP_ITERATION_5 151
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 152 && BOOST_PP_ITERATION_FINISH_5 >= 152
+#        define BOOST_PP_ITERATION_5 152
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 153 && BOOST_PP_ITERATION_FINISH_5 >= 153
+#        define BOOST_PP_ITERATION_5 153
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 154 && BOOST_PP_ITERATION_FINISH_5 >= 154
+#        define BOOST_PP_ITERATION_5 154
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 155 && BOOST_PP_ITERATION_FINISH_5 >= 155
+#        define BOOST_PP_ITERATION_5 155
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 156 && BOOST_PP_ITERATION_FINISH_5 >= 156
+#        define BOOST_PP_ITERATION_5 156
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 157 && BOOST_PP_ITERATION_FINISH_5 >= 157
+#        define BOOST_PP_ITERATION_5 157
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 158 && BOOST_PP_ITERATION_FINISH_5 >= 158
+#        define BOOST_PP_ITERATION_5 158
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 159 && BOOST_PP_ITERATION_FINISH_5 >= 159
+#        define BOOST_PP_ITERATION_5 159
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 160 && BOOST_PP_ITERATION_FINISH_5 >= 160
+#        define BOOST_PP_ITERATION_5 160
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 161 && BOOST_PP_ITERATION_FINISH_5 >= 161
+#        define BOOST_PP_ITERATION_5 161
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 162 && BOOST_PP_ITERATION_FINISH_5 >= 162
+#        define BOOST_PP_ITERATION_5 162
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 163 && BOOST_PP_ITERATION_FINISH_5 >= 163
+#        define BOOST_PP_ITERATION_5 163
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 164 && BOOST_PP_ITERATION_FINISH_5 >= 164
+#        define BOOST_PP_ITERATION_5 164
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 165 && BOOST_PP_ITERATION_FINISH_5 >= 165
+#        define BOOST_PP_ITERATION_5 165
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 166 && BOOST_PP_ITERATION_FINISH_5 >= 166
+#        define BOOST_PP_ITERATION_5 166
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 167 && BOOST_PP_ITERATION_FINISH_5 >= 167
+#        define BOOST_PP_ITERATION_5 167
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 168 && BOOST_PP_ITERATION_FINISH_5 >= 168
+#        define BOOST_PP_ITERATION_5 168
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 169 && BOOST_PP_ITERATION_FINISH_5 >= 169
+#        define BOOST_PP_ITERATION_5 169
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 170 && BOOST_PP_ITERATION_FINISH_5 >= 170
+#        define BOOST_PP_ITERATION_5 170
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 171 && BOOST_PP_ITERATION_FINISH_5 >= 171
+#        define BOOST_PP_ITERATION_5 171
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 172 && BOOST_PP_ITERATION_FINISH_5 >= 172
+#        define BOOST_PP_ITERATION_5 172
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 173 && BOOST_PP_ITERATION_FINISH_5 >= 173
+#        define BOOST_PP_ITERATION_5 173
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 174 && BOOST_PP_ITERATION_FINISH_5 >= 174
+#        define BOOST_PP_ITERATION_5 174
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 175 && BOOST_PP_ITERATION_FINISH_5 >= 175
+#        define BOOST_PP_ITERATION_5 175
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 176 && BOOST_PP_ITERATION_FINISH_5 >= 176
+#        define BOOST_PP_ITERATION_5 176
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 177 && BOOST_PP_ITERATION_FINISH_5 >= 177
+#        define BOOST_PP_ITERATION_5 177
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 178 && BOOST_PP_ITERATION_FINISH_5 >= 178
+#        define BOOST_PP_ITERATION_5 178
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 179 && BOOST_PP_ITERATION_FINISH_5 >= 179
+#        define BOOST_PP_ITERATION_5 179
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 180 && BOOST_PP_ITERATION_FINISH_5 >= 180
+#        define BOOST_PP_ITERATION_5 180
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 181 && BOOST_PP_ITERATION_FINISH_5 >= 181
+#        define BOOST_PP_ITERATION_5 181
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 182 && BOOST_PP_ITERATION_FINISH_5 >= 182
+#        define BOOST_PP_ITERATION_5 182
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 183 && BOOST_PP_ITERATION_FINISH_5 >= 183
+#        define BOOST_PP_ITERATION_5 183
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 184 && BOOST_PP_ITERATION_FINISH_5 >= 184
+#        define BOOST_PP_ITERATION_5 184
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 185 && BOOST_PP_ITERATION_FINISH_5 >= 185
+#        define BOOST_PP_ITERATION_5 185
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 186 && BOOST_PP_ITERATION_FINISH_5 >= 186
+#        define BOOST_PP_ITERATION_5 186
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 187 && BOOST_PP_ITERATION_FINISH_5 >= 187
+#        define BOOST_PP_ITERATION_5 187
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 188 && BOOST_PP_ITERATION_FINISH_5 >= 188
+#        define BOOST_PP_ITERATION_5 188
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 189 && BOOST_PP_ITERATION_FINISH_5 >= 189
+#        define BOOST_PP_ITERATION_5 189
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 190 && BOOST_PP_ITERATION_FINISH_5 >= 190
+#        define BOOST_PP_ITERATION_5 190
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 191 && BOOST_PP_ITERATION_FINISH_5 >= 191
+#        define BOOST_PP_ITERATION_5 191
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 192 && BOOST_PP_ITERATION_FINISH_5 >= 192
+#        define BOOST_PP_ITERATION_5 192
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 193 && BOOST_PP_ITERATION_FINISH_5 >= 193
+#        define BOOST_PP_ITERATION_5 193
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 194 && BOOST_PP_ITERATION_FINISH_5 >= 194
+#        define BOOST_PP_ITERATION_5 194
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 195 && BOOST_PP_ITERATION_FINISH_5 >= 195
+#        define BOOST_PP_ITERATION_5 195
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 196 && BOOST_PP_ITERATION_FINISH_5 >= 196
+#        define BOOST_PP_ITERATION_5 196
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 197 && BOOST_PP_ITERATION_FINISH_5 >= 197
+#        define BOOST_PP_ITERATION_5 197
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 198 && BOOST_PP_ITERATION_FINISH_5 >= 198
+#        define BOOST_PP_ITERATION_5 198
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 199 && BOOST_PP_ITERATION_FINISH_5 >= 199
+#        define BOOST_PP_ITERATION_5 199
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 200 && BOOST_PP_ITERATION_FINISH_5 >= 200
+#        define BOOST_PP_ITERATION_5 200
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 201 && BOOST_PP_ITERATION_FINISH_5 >= 201
+#        define BOOST_PP_ITERATION_5 201
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 202 && BOOST_PP_ITERATION_FINISH_5 >= 202
+#        define BOOST_PP_ITERATION_5 202
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 203 && BOOST_PP_ITERATION_FINISH_5 >= 203
+#        define BOOST_PP_ITERATION_5 203
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 204 && BOOST_PP_ITERATION_FINISH_5 >= 204
+#        define BOOST_PP_ITERATION_5 204
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 205 && BOOST_PP_ITERATION_FINISH_5 >= 205
+#        define BOOST_PP_ITERATION_5 205
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 206 && BOOST_PP_ITERATION_FINISH_5 >= 206
+#        define BOOST_PP_ITERATION_5 206
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 207 && BOOST_PP_ITERATION_FINISH_5 >= 207
+#        define BOOST_PP_ITERATION_5 207
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 208 && BOOST_PP_ITERATION_FINISH_5 >= 208
+#        define BOOST_PP_ITERATION_5 208
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 209 && BOOST_PP_ITERATION_FINISH_5 >= 209
+#        define BOOST_PP_ITERATION_5 209
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 210 && BOOST_PP_ITERATION_FINISH_5 >= 210
+#        define BOOST_PP_ITERATION_5 210
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 211 && BOOST_PP_ITERATION_FINISH_5 >= 211
+#        define BOOST_PP_ITERATION_5 211
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 212 && BOOST_PP_ITERATION_FINISH_5 >= 212
+#        define BOOST_PP_ITERATION_5 212
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 213 && BOOST_PP_ITERATION_FINISH_5 >= 213
+#        define BOOST_PP_ITERATION_5 213
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 214 && BOOST_PP_ITERATION_FINISH_5 >= 214
+#        define BOOST_PP_ITERATION_5 214
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 215 && BOOST_PP_ITERATION_FINISH_5 >= 215
+#        define BOOST_PP_ITERATION_5 215
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 216 && BOOST_PP_ITERATION_FINISH_5 >= 216
+#        define BOOST_PP_ITERATION_5 216
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 217 && BOOST_PP_ITERATION_FINISH_5 >= 217
+#        define BOOST_PP_ITERATION_5 217
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 218 && BOOST_PP_ITERATION_FINISH_5 >= 218
+#        define BOOST_PP_ITERATION_5 218
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 219 && BOOST_PP_ITERATION_FINISH_5 >= 219
+#        define BOOST_PP_ITERATION_5 219
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 220 && BOOST_PP_ITERATION_FINISH_5 >= 220
+#        define BOOST_PP_ITERATION_5 220
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 221 && BOOST_PP_ITERATION_FINISH_5 >= 221
+#        define BOOST_PP_ITERATION_5 221
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 222 && BOOST_PP_ITERATION_FINISH_5 >= 222
+#        define BOOST_PP_ITERATION_5 222
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 223 && BOOST_PP_ITERATION_FINISH_5 >= 223
+#        define BOOST_PP_ITERATION_5 223
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 224 && BOOST_PP_ITERATION_FINISH_5 >= 224
+#        define BOOST_PP_ITERATION_5 224
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 225 && BOOST_PP_ITERATION_FINISH_5 >= 225
+#        define BOOST_PP_ITERATION_5 225
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 226 && BOOST_PP_ITERATION_FINISH_5 >= 226
+#        define BOOST_PP_ITERATION_5 226
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 227 && BOOST_PP_ITERATION_FINISH_5 >= 227
+#        define BOOST_PP_ITERATION_5 227
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 228 && BOOST_PP_ITERATION_FINISH_5 >= 228
+#        define BOOST_PP_ITERATION_5 228
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 229 && BOOST_PP_ITERATION_FINISH_5 >= 229
+#        define BOOST_PP_ITERATION_5 229
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 230 && BOOST_PP_ITERATION_FINISH_5 >= 230
+#        define BOOST_PP_ITERATION_5 230
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 231 && BOOST_PP_ITERATION_FINISH_5 >= 231
+#        define BOOST_PP_ITERATION_5 231
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 232 && BOOST_PP_ITERATION_FINISH_5 >= 232
+#        define BOOST_PP_ITERATION_5 232
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 233 && BOOST_PP_ITERATION_FINISH_5 >= 233
+#        define BOOST_PP_ITERATION_5 233
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 234 && BOOST_PP_ITERATION_FINISH_5 >= 234
+#        define BOOST_PP_ITERATION_5 234
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 235 && BOOST_PP_ITERATION_FINISH_5 >= 235
+#        define BOOST_PP_ITERATION_5 235
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 236 && BOOST_PP_ITERATION_FINISH_5 >= 236
+#        define BOOST_PP_ITERATION_5 236
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 237 && BOOST_PP_ITERATION_FINISH_5 >= 237
+#        define BOOST_PP_ITERATION_5 237
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 238 && BOOST_PP_ITERATION_FINISH_5 >= 238
+#        define BOOST_PP_ITERATION_5 238
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 239 && BOOST_PP_ITERATION_FINISH_5 >= 239
+#        define BOOST_PP_ITERATION_5 239
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 240 && BOOST_PP_ITERATION_FINISH_5 >= 240
+#        define BOOST_PP_ITERATION_5 240
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 241 && BOOST_PP_ITERATION_FINISH_5 >= 241
+#        define BOOST_PP_ITERATION_5 241
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 242 && BOOST_PP_ITERATION_FINISH_5 >= 242
+#        define BOOST_PP_ITERATION_5 242
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 243 && BOOST_PP_ITERATION_FINISH_5 >= 243
+#        define BOOST_PP_ITERATION_5 243
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 244 && BOOST_PP_ITERATION_FINISH_5 >= 244
+#        define BOOST_PP_ITERATION_5 244
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 245 && BOOST_PP_ITERATION_FINISH_5 >= 245
+#        define BOOST_PP_ITERATION_5 245
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 246 && BOOST_PP_ITERATION_FINISH_5 >= 246
+#        define BOOST_PP_ITERATION_5 246
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 247 && BOOST_PP_ITERATION_FINISH_5 >= 247
+#        define BOOST_PP_ITERATION_5 247
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 248 && BOOST_PP_ITERATION_FINISH_5 >= 248
+#        define BOOST_PP_ITERATION_5 248
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 249 && BOOST_PP_ITERATION_FINISH_5 >= 249
+#        define BOOST_PP_ITERATION_5 249
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 250 && BOOST_PP_ITERATION_FINISH_5 >= 250
+#        define BOOST_PP_ITERATION_5 250
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 251 && BOOST_PP_ITERATION_FINISH_5 >= 251
+#        define BOOST_PP_ITERATION_5 251
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 252 && BOOST_PP_ITERATION_FINISH_5 >= 252
+#        define BOOST_PP_ITERATION_5 252
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 253 && BOOST_PP_ITERATION_FINISH_5 >= 253
+#        define BOOST_PP_ITERATION_5 253
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 254 && BOOST_PP_ITERATION_FINISH_5 >= 254
+#        define BOOST_PP_ITERATION_5 254
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 255 && BOOST_PP_ITERATION_FINISH_5 >= 255
+#        define BOOST_PP_ITERATION_5 255
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+#    if BOOST_PP_ITERATION_START_5 <= 256 && BOOST_PP_ITERATION_FINISH_5 >= 256
+#        define BOOST_PP_ITERATION_5 256
+#        include BOOST_PP_FILENAME_5
+#        undef BOOST_PP_ITERATION_5
+#    endif
+# endif
+#
+# undef BOOST_PP_ITERATION_DEPTH
+# define BOOST_PP_ITERATION_DEPTH() 4
+#
+# undef BOOST_PP_ITERATION_START_5
+# undef BOOST_PP_ITERATION_FINISH_5
+# undef BOOST_PP_FILENAME_5
+#
+# undef BOOST_PP_ITERATION_FLAGS_5
+# undef BOOST_PP_ITERATION_PARAMS_5
index 558e856449bd0e6f98fced88fa7df90a48311821..bf88d2f3a7900a29ea973ea4931dbe76e99ffc0f 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 256 && BOOST_PP_ITERATION_START_1 >= 256\r
-#    define BOOST_PP_ITERATION_1 256\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 255 && BOOST_PP_ITERATION_START_1 >= 255\r
-#    define BOOST_PP_ITERATION_1 255\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 254 && BOOST_PP_ITERATION_START_1 >= 254\r
-#    define BOOST_PP_ITERATION_1 254\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 253 && BOOST_PP_ITERATION_START_1 >= 253\r
-#    define BOOST_PP_ITERATION_1 253\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 252 && BOOST_PP_ITERATION_START_1 >= 252\r
-#    define BOOST_PP_ITERATION_1 252\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 251 && BOOST_PP_ITERATION_START_1 >= 251\r
-#    define BOOST_PP_ITERATION_1 251\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 250 && BOOST_PP_ITERATION_START_1 >= 250\r
-#    define BOOST_PP_ITERATION_1 250\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 249 && BOOST_PP_ITERATION_START_1 >= 249\r
-#    define BOOST_PP_ITERATION_1 249\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 248 && BOOST_PP_ITERATION_START_1 >= 248\r
-#    define BOOST_PP_ITERATION_1 248\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 247 && BOOST_PP_ITERATION_START_1 >= 247\r
-#    define BOOST_PP_ITERATION_1 247\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 246 && BOOST_PP_ITERATION_START_1 >= 246\r
-#    define BOOST_PP_ITERATION_1 246\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 245 && BOOST_PP_ITERATION_START_1 >= 245\r
-#    define BOOST_PP_ITERATION_1 245\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 244 && BOOST_PP_ITERATION_START_1 >= 244\r
-#    define BOOST_PP_ITERATION_1 244\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 243 && BOOST_PP_ITERATION_START_1 >= 243\r
-#    define BOOST_PP_ITERATION_1 243\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 242 && BOOST_PP_ITERATION_START_1 >= 242\r
-#    define BOOST_PP_ITERATION_1 242\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 241 && BOOST_PP_ITERATION_START_1 >= 241\r
-#    define BOOST_PP_ITERATION_1 241\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 240 && BOOST_PP_ITERATION_START_1 >= 240\r
-#    define BOOST_PP_ITERATION_1 240\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 239 && BOOST_PP_ITERATION_START_1 >= 239\r
-#    define BOOST_PP_ITERATION_1 239\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 238 && BOOST_PP_ITERATION_START_1 >= 238\r
-#    define BOOST_PP_ITERATION_1 238\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 237 && BOOST_PP_ITERATION_START_1 >= 237\r
-#    define BOOST_PP_ITERATION_1 237\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 236 && BOOST_PP_ITERATION_START_1 >= 236\r
-#    define BOOST_PP_ITERATION_1 236\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 235 && BOOST_PP_ITERATION_START_1 >= 235\r
-#    define BOOST_PP_ITERATION_1 235\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 234 && BOOST_PP_ITERATION_START_1 >= 234\r
-#    define BOOST_PP_ITERATION_1 234\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 233 && BOOST_PP_ITERATION_START_1 >= 233\r
-#    define BOOST_PP_ITERATION_1 233\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 232 && BOOST_PP_ITERATION_START_1 >= 232\r
-#    define BOOST_PP_ITERATION_1 232\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 231 && BOOST_PP_ITERATION_START_1 >= 231\r
-#    define BOOST_PP_ITERATION_1 231\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 230 && BOOST_PP_ITERATION_START_1 >= 230\r
-#    define BOOST_PP_ITERATION_1 230\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 229 && BOOST_PP_ITERATION_START_1 >= 229\r
-#    define BOOST_PP_ITERATION_1 229\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 228 && BOOST_PP_ITERATION_START_1 >= 228\r
-#    define BOOST_PP_ITERATION_1 228\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 227 && BOOST_PP_ITERATION_START_1 >= 227\r
-#    define BOOST_PP_ITERATION_1 227\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 226 && BOOST_PP_ITERATION_START_1 >= 226\r
-#    define BOOST_PP_ITERATION_1 226\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 225 && BOOST_PP_ITERATION_START_1 >= 225\r
-#    define BOOST_PP_ITERATION_1 225\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 224 && BOOST_PP_ITERATION_START_1 >= 224\r
-#    define BOOST_PP_ITERATION_1 224\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 223 && BOOST_PP_ITERATION_START_1 >= 223\r
-#    define BOOST_PP_ITERATION_1 223\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 222 && BOOST_PP_ITERATION_START_1 >= 222\r
-#    define BOOST_PP_ITERATION_1 222\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 221 && BOOST_PP_ITERATION_START_1 >= 221\r
-#    define BOOST_PP_ITERATION_1 221\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 220 && BOOST_PP_ITERATION_START_1 >= 220\r
-#    define BOOST_PP_ITERATION_1 220\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 219 && BOOST_PP_ITERATION_START_1 >= 219\r
-#    define BOOST_PP_ITERATION_1 219\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 218 && BOOST_PP_ITERATION_START_1 >= 218\r
-#    define BOOST_PP_ITERATION_1 218\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 217 && BOOST_PP_ITERATION_START_1 >= 217\r
-#    define BOOST_PP_ITERATION_1 217\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 216 && BOOST_PP_ITERATION_START_1 >= 216\r
-#    define BOOST_PP_ITERATION_1 216\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 215 && BOOST_PP_ITERATION_START_1 >= 215\r
-#    define BOOST_PP_ITERATION_1 215\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 214 && BOOST_PP_ITERATION_START_1 >= 214\r
-#    define BOOST_PP_ITERATION_1 214\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 213 && BOOST_PP_ITERATION_START_1 >= 213\r
-#    define BOOST_PP_ITERATION_1 213\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 212 && BOOST_PP_ITERATION_START_1 >= 212\r
-#    define BOOST_PP_ITERATION_1 212\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 211 && BOOST_PP_ITERATION_START_1 >= 211\r
-#    define BOOST_PP_ITERATION_1 211\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 210 && BOOST_PP_ITERATION_START_1 >= 210\r
-#    define BOOST_PP_ITERATION_1 210\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 209 && BOOST_PP_ITERATION_START_1 >= 209\r
-#    define BOOST_PP_ITERATION_1 209\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 208 && BOOST_PP_ITERATION_START_1 >= 208\r
-#    define BOOST_PP_ITERATION_1 208\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 207 && BOOST_PP_ITERATION_START_1 >= 207\r
-#    define BOOST_PP_ITERATION_1 207\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 206 && BOOST_PP_ITERATION_START_1 >= 206\r
-#    define BOOST_PP_ITERATION_1 206\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 205 && BOOST_PP_ITERATION_START_1 >= 205\r
-#    define BOOST_PP_ITERATION_1 205\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 204 && BOOST_PP_ITERATION_START_1 >= 204\r
-#    define BOOST_PP_ITERATION_1 204\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 203 && BOOST_PP_ITERATION_START_1 >= 203\r
-#    define BOOST_PP_ITERATION_1 203\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 202 && BOOST_PP_ITERATION_START_1 >= 202\r
-#    define BOOST_PP_ITERATION_1 202\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 201 && BOOST_PP_ITERATION_START_1 >= 201\r
-#    define BOOST_PP_ITERATION_1 201\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 200 && BOOST_PP_ITERATION_START_1 >= 200\r
-#    define BOOST_PP_ITERATION_1 200\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 199 && BOOST_PP_ITERATION_START_1 >= 199\r
-#    define BOOST_PP_ITERATION_1 199\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 198 && BOOST_PP_ITERATION_START_1 >= 198\r
-#    define BOOST_PP_ITERATION_1 198\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 197 && BOOST_PP_ITERATION_START_1 >= 197\r
-#    define BOOST_PP_ITERATION_1 197\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 196 && BOOST_PP_ITERATION_START_1 >= 196\r
-#    define BOOST_PP_ITERATION_1 196\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 195 && BOOST_PP_ITERATION_START_1 >= 195\r
-#    define BOOST_PP_ITERATION_1 195\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 194 && BOOST_PP_ITERATION_START_1 >= 194\r
-#    define BOOST_PP_ITERATION_1 194\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 193 && BOOST_PP_ITERATION_START_1 >= 193\r
-#    define BOOST_PP_ITERATION_1 193\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 192 && BOOST_PP_ITERATION_START_1 >= 192\r
-#    define BOOST_PP_ITERATION_1 192\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 191 && BOOST_PP_ITERATION_START_1 >= 191\r
-#    define BOOST_PP_ITERATION_1 191\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 190 && BOOST_PP_ITERATION_START_1 >= 190\r
-#    define BOOST_PP_ITERATION_1 190\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 189 && BOOST_PP_ITERATION_START_1 >= 189\r
-#    define BOOST_PP_ITERATION_1 189\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 188 && BOOST_PP_ITERATION_START_1 >= 188\r
-#    define BOOST_PP_ITERATION_1 188\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 187 && BOOST_PP_ITERATION_START_1 >= 187\r
-#    define BOOST_PP_ITERATION_1 187\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 186 && BOOST_PP_ITERATION_START_1 >= 186\r
-#    define BOOST_PP_ITERATION_1 186\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 185 && BOOST_PP_ITERATION_START_1 >= 185\r
-#    define BOOST_PP_ITERATION_1 185\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 184 && BOOST_PP_ITERATION_START_1 >= 184\r
-#    define BOOST_PP_ITERATION_1 184\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 183 && BOOST_PP_ITERATION_START_1 >= 183\r
-#    define BOOST_PP_ITERATION_1 183\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 182 && BOOST_PP_ITERATION_START_1 >= 182\r
-#    define BOOST_PP_ITERATION_1 182\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 181 && BOOST_PP_ITERATION_START_1 >= 181\r
-#    define BOOST_PP_ITERATION_1 181\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 180 && BOOST_PP_ITERATION_START_1 >= 180\r
-#    define BOOST_PP_ITERATION_1 180\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 179 && BOOST_PP_ITERATION_START_1 >= 179\r
-#    define BOOST_PP_ITERATION_1 179\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 178 && BOOST_PP_ITERATION_START_1 >= 178\r
-#    define BOOST_PP_ITERATION_1 178\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 177 && BOOST_PP_ITERATION_START_1 >= 177\r
-#    define BOOST_PP_ITERATION_1 177\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 176 && BOOST_PP_ITERATION_START_1 >= 176\r
-#    define BOOST_PP_ITERATION_1 176\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 175 && BOOST_PP_ITERATION_START_1 >= 175\r
-#    define BOOST_PP_ITERATION_1 175\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 174 && BOOST_PP_ITERATION_START_1 >= 174\r
-#    define BOOST_PP_ITERATION_1 174\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 173 && BOOST_PP_ITERATION_START_1 >= 173\r
-#    define BOOST_PP_ITERATION_1 173\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 172 && BOOST_PP_ITERATION_START_1 >= 172\r
-#    define BOOST_PP_ITERATION_1 172\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 171 && BOOST_PP_ITERATION_START_1 >= 171\r
-#    define BOOST_PP_ITERATION_1 171\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 170 && BOOST_PP_ITERATION_START_1 >= 170\r
-#    define BOOST_PP_ITERATION_1 170\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 169 && BOOST_PP_ITERATION_START_1 >= 169\r
-#    define BOOST_PP_ITERATION_1 169\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 168 && BOOST_PP_ITERATION_START_1 >= 168\r
-#    define BOOST_PP_ITERATION_1 168\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 167 && BOOST_PP_ITERATION_START_1 >= 167\r
-#    define BOOST_PP_ITERATION_1 167\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 166 && BOOST_PP_ITERATION_START_1 >= 166\r
-#    define BOOST_PP_ITERATION_1 166\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 165 && BOOST_PP_ITERATION_START_1 >= 165\r
-#    define BOOST_PP_ITERATION_1 165\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 164 && BOOST_PP_ITERATION_START_1 >= 164\r
-#    define BOOST_PP_ITERATION_1 164\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 163 && BOOST_PP_ITERATION_START_1 >= 163\r
-#    define BOOST_PP_ITERATION_1 163\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 162 && BOOST_PP_ITERATION_START_1 >= 162\r
-#    define BOOST_PP_ITERATION_1 162\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 161 && BOOST_PP_ITERATION_START_1 >= 161\r
-#    define BOOST_PP_ITERATION_1 161\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 160 && BOOST_PP_ITERATION_START_1 >= 160\r
-#    define BOOST_PP_ITERATION_1 160\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 159 && BOOST_PP_ITERATION_START_1 >= 159\r
-#    define BOOST_PP_ITERATION_1 159\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 158 && BOOST_PP_ITERATION_START_1 >= 158\r
-#    define BOOST_PP_ITERATION_1 158\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 157 && BOOST_PP_ITERATION_START_1 >= 157\r
-#    define BOOST_PP_ITERATION_1 157\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 156 && BOOST_PP_ITERATION_START_1 >= 156\r
-#    define BOOST_PP_ITERATION_1 156\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 155 && BOOST_PP_ITERATION_START_1 >= 155\r
-#    define BOOST_PP_ITERATION_1 155\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 154 && BOOST_PP_ITERATION_START_1 >= 154\r
-#    define BOOST_PP_ITERATION_1 154\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 153 && BOOST_PP_ITERATION_START_1 >= 153\r
-#    define BOOST_PP_ITERATION_1 153\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 152 && BOOST_PP_ITERATION_START_1 >= 152\r
-#    define BOOST_PP_ITERATION_1 152\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 151 && BOOST_PP_ITERATION_START_1 >= 151\r
-#    define BOOST_PP_ITERATION_1 151\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 150 && BOOST_PP_ITERATION_START_1 >= 150\r
-#    define BOOST_PP_ITERATION_1 150\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 149 && BOOST_PP_ITERATION_START_1 >= 149\r
-#    define BOOST_PP_ITERATION_1 149\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 148 && BOOST_PP_ITERATION_START_1 >= 148\r
-#    define BOOST_PP_ITERATION_1 148\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 147 && BOOST_PP_ITERATION_START_1 >= 147\r
-#    define BOOST_PP_ITERATION_1 147\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 146 && BOOST_PP_ITERATION_START_1 >= 146\r
-#    define BOOST_PP_ITERATION_1 146\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 145 && BOOST_PP_ITERATION_START_1 >= 145\r
-#    define BOOST_PP_ITERATION_1 145\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 144 && BOOST_PP_ITERATION_START_1 >= 144\r
-#    define BOOST_PP_ITERATION_1 144\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 143 && BOOST_PP_ITERATION_START_1 >= 143\r
-#    define BOOST_PP_ITERATION_1 143\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 142 && BOOST_PP_ITERATION_START_1 >= 142\r
-#    define BOOST_PP_ITERATION_1 142\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 141 && BOOST_PP_ITERATION_START_1 >= 141\r
-#    define BOOST_PP_ITERATION_1 141\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 140 && BOOST_PP_ITERATION_START_1 >= 140\r
-#    define BOOST_PP_ITERATION_1 140\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 139 && BOOST_PP_ITERATION_START_1 >= 139\r
-#    define BOOST_PP_ITERATION_1 139\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 138 && BOOST_PP_ITERATION_START_1 >= 138\r
-#    define BOOST_PP_ITERATION_1 138\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 137 && BOOST_PP_ITERATION_START_1 >= 137\r
-#    define BOOST_PP_ITERATION_1 137\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 136 && BOOST_PP_ITERATION_START_1 >= 136\r
-#    define BOOST_PP_ITERATION_1 136\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 135 && BOOST_PP_ITERATION_START_1 >= 135\r
-#    define BOOST_PP_ITERATION_1 135\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 134 && BOOST_PP_ITERATION_START_1 >= 134\r
-#    define BOOST_PP_ITERATION_1 134\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 133 && BOOST_PP_ITERATION_START_1 >= 133\r
-#    define BOOST_PP_ITERATION_1 133\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 132 && BOOST_PP_ITERATION_START_1 >= 132\r
-#    define BOOST_PP_ITERATION_1 132\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 131 && BOOST_PP_ITERATION_START_1 >= 131\r
-#    define BOOST_PP_ITERATION_1 131\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 130 && BOOST_PP_ITERATION_START_1 >= 130\r
-#    define BOOST_PP_ITERATION_1 130\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 129 && BOOST_PP_ITERATION_START_1 >= 129\r
-#    define BOOST_PP_ITERATION_1 129\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 128 && BOOST_PP_ITERATION_START_1 >= 128\r
-#    define BOOST_PP_ITERATION_1 128\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 127 && BOOST_PP_ITERATION_START_1 >= 127\r
-#    define BOOST_PP_ITERATION_1 127\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 126 && BOOST_PP_ITERATION_START_1 >= 126\r
-#    define BOOST_PP_ITERATION_1 126\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 125 && BOOST_PP_ITERATION_START_1 >= 125\r
-#    define BOOST_PP_ITERATION_1 125\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 124 && BOOST_PP_ITERATION_START_1 >= 124\r
-#    define BOOST_PP_ITERATION_1 124\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 123 && BOOST_PP_ITERATION_START_1 >= 123\r
-#    define BOOST_PP_ITERATION_1 123\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 122 && BOOST_PP_ITERATION_START_1 >= 122\r
-#    define BOOST_PP_ITERATION_1 122\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 121 && BOOST_PP_ITERATION_START_1 >= 121\r
-#    define BOOST_PP_ITERATION_1 121\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 120 && BOOST_PP_ITERATION_START_1 >= 120\r
-#    define BOOST_PP_ITERATION_1 120\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 119 && BOOST_PP_ITERATION_START_1 >= 119\r
-#    define BOOST_PP_ITERATION_1 119\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 118 && BOOST_PP_ITERATION_START_1 >= 118\r
-#    define BOOST_PP_ITERATION_1 118\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 117 && BOOST_PP_ITERATION_START_1 >= 117\r
-#    define BOOST_PP_ITERATION_1 117\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 116 && BOOST_PP_ITERATION_START_1 >= 116\r
-#    define BOOST_PP_ITERATION_1 116\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 115 && BOOST_PP_ITERATION_START_1 >= 115\r
-#    define BOOST_PP_ITERATION_1 115\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 114 && BOOST_PP_ITERATION_START_1 >= 114\r
-#    define BOOST_PP_ITERATION_1 114\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 113 && BOOST_PP_ITERATION_START_1 >= 113\r
-#    define BOOST_PP_ITERATION_1 113\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 112 && BOOST_PP_ITERATION_START_1 >= 112\r
-#    define BOOST_PP_ITERATION_1 112\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 111 && BOOST_PP_ITERATION_START_1 >= 111\r
-#    define BOOST_PP_ITERATION_1 111\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 110 && BOOST_PP_ITERATION_START_1 >= 110\r
-#    define BOOST_PP_ITERATION_1 110\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 109 && BOOST_PP_ITERATION_START_1 >= 109\r
-#    define BOOST_PP_ITERATION_1 109\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 108 && BOOST_PP_ITERATION_START_1 >= 108\r
-#    define BOOST_PP_ITERATION_1 108\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 107 && BOOST_PP_ITERATION_START_1 >= 107\r
-#    define BOOST_PP_ITERATION_1 107\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 106 && BOOST_PP_ITERATION_START_1 >= 106\r
-#    define BOOST_PP_ITERATION_1 106\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 105 && BOOST_PP_ITERATION_START_1 >= 105\r
-#    define BOOST_PP_ITERATION_1 105\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 104 && BOOST_PP_ITERATION_START_1 >= 104\r
-#    define BOOST_PP_ITERATION_1 104\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 103 && BOOST_PP_ITERATION_START_1 >= 103\r
-#    define BOOST_PP_ITERATION_1 103\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 102 && BOOST_PP_ITERATION_START_1 >= 102\r
-#    define BOOST_PP_ITERATION_1 102\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 101 && BOOST_PP_ITERATION_START_1 >= 101\r
-#    define BOOST_PP_ITERATION_1 101\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 100 && BOOST_PP_ITERATION_START_1 >= 100\r
-#    define BOOST_PP_ITERATION_1 100\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 99 && BOOST_PP_ITERATION_START_1 >= 99\r
-#    define BOOST_PP_ITERATION_1 99\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 98 && BOOST_PP_ITERATION_START_1 >= 98\r
-#    define BOOST_PP_ITERATION_1 98\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 97 && BOOST_PP_ITERATION_START_1 >= 97\r
-#    define BOOST_PP_ITERATION_1 97\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 96 && BOOST_PP_ITERATION_START_1 >= 96\r
-#    define BOOST_PP_ITERATION_1 96\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 95 && BOOST_PP_ITERATION_START_1 >= 95\r
-#    define BOOST_PP_ITERATION_1 95\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 94 && BOOST_PP_ITERATION_START_1 >= 94\r
-#    define BOOST_PP_ITERATION_1 94\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 93 && BOOST_PP_ITERATION_START_1 >= 93\r
-#    define BOOST_PP_ITERATION_1 93\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 92 && BOOST_PP_ITERATION_START_1 >= 92\r
-#    define BOOST_PP_ITERATION_1 92\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 91 && BOOST_PP_ITERATION_START_1 >= 91\r
-#    define BOOST_PP_ITERATION_1 91\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 90 && BOOST_PP_ITERATION_START_1 >= 90\r
-#    define BOOST_PP_ITERATION_1 90\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 89 && BOOST_PP_ITERATION_START_1 >= 89\r
-#    define BOOST_PP_ITERATION_1 89\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 88 && BOOST_PP_ITERATION_START_1 >= 88\r
-#    define BOOST_PP_ITERATION_1 88\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 87 && BOOST_PP_ITERATION_START_1 >= 87\r
-#    define BOOST_PP_ITERATION_1 87\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 86 && BOOST_PP_ITERATION_START_1 >= 86\r
-#    define BOOST_PP_ITERATION_1 86\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 85 && BOOST_PP_ITERATION_START_1 >= 85\r
-#    define BOOST_PP_ITERATION_1 85\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 84 && BOOST_PP_ITERATION_START_1 >= 84\r
-#    define BOOST_PP_ITERATION_1 84\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 83 && BOOST_PP_ITERATION_START_1 >= 83\r
-#    define BOOST_PP_ITERATION_1 83\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 82 && BOOST_PP_ITERATION_START_1 >= 82\r
-#    define BOOST_PP_ITERATION_1 82\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 81 && BOOST_PP_ITERATION_START_1 >= 81\r
-#    define BOOST_PP_ITERATION_1 81\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 80 && BOOST_PP_ITERATION_START_1 >= 80\r
-#    define BOOST_PP_ITERATION_1 80\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 79 && BOOST_PP_ITERATION_START_1 >= 79\r
-#    define BOOST_PP_ITERATION_1 79\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 78 && BOOST_PP_ITERATION_START_1 >= 78\r
-#    define BOOST_PP_ITERATION_1 78\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 77 && BOOST_PP_ITERATION_START_1 >= 77\r
-#    define BOOST_PP_ITERATION_1 77\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 76 && BOOST_PP_ITERATION_START_1 >= 76\r
-#    define BOOST_PP_ITERATION_1 76\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 75 && BOOST_PP_ITERATION_START_1 >= 75\r
-#    define BOOST_PP_ITERATION_1 75\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 74 && BOOST_PP_ITERATION_START_1 >= 74\r
-#    define BOOST_PP_ITERATION_1 74\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 73 && BOOST_PP_ITERATION_START_1 >= 73\r
-#    define BOOST_PP_ITERATION_1 73\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 72 && BOOST_PP_ITERATION_START_1 >= 72\r
-#    define BOOST_PP_ITERATION_1 72\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 71 && BOOST_PP_ITERATION_START_1 >= 71\r
-#    define BOOST_PP_ITERATION_1 71\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 70 && BOOST_PP_ITERATION_START_1 >= 70\r
-#    define BOOST_PP_ITERATION_1 70\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 69 && BOOST_PP_ITERATION_START_1 >= 69\r
-#    define BOOST_PP_ITERATION_1 69\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 68 && BOOST_PP_ITERATION_START_1 >= 68\r
-#    define BOOST_PP_ITERATION_1 68\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 67 && BOOST_PP_ITERATION_START_1 >= 67\r
-#    define BOOST_PP_ITERATION_1 67\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 66 && BOOST_PP_ITERATION_START_1 >= 66\r
-#    define BOOST_PP_ITERATION_1 66\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 65 && BOOST_PP_ITERATION_START_1 >= 65\r
-#    define BOOST_PP_ITERATION_1 65\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 64 && BOOST_PP_ITERATION_START_1 >= 64\r
-#    define BOOST_PP_ITERATION_1 64\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 63 && BOOST_PP_ITERATION_START_1 >= 63\r
-#    define BOOST_PP_ITERATION_1 63\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 62 && BOOST_PP_ITERATION_START_1 >= 62\r
-#    define BOOST_PP_ITERATION_1 62\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 61 && BOOST_PP_ITERATION_START_1 >= 61\r
-#    define BOOST_PP_ITERATION_1 61\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 60 && BOOST_PP_ITERATION_START_1 >= 60\r
-#    define BOOST_PP_ITERATION_1 60\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 59 && BOOST_PP_ITERATION_START_1 >= 59\r
-#    define BOOST_PP_ITERATION_1 59\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 58 && BOOST_PP_ITERATION_START_1 >= 58\r
-#    define BOOST_PP_ITERATION_1 58\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 57 && BOOST_PP_ITERATION_START_1 >= 57\r
-#    define BOOST_PP_ITERATION_1 57\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 56 && BOOST_PP_ITERATION_START_1 >= 56\r
-#    define BOOST_PP_ITERATION_1 56\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 55 && BOOST_PP_ITERATION_START_1 >= 55\r
-#    define BOOST_PP_ITERATION_1 55\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 54 && BOOST_PP_ITERATION_START_1 >= 54\r
-#    define BOOST_PP_ITERATION_1 54\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 53 && BOOST_PP_ITERATION_START_1 >= 53\r
-#    define BOOST_PP_ITERATION_1 53\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 52 && BOOST_PP_ITERATION_START_1 >= 52\r
-#    define BOOST_PP_ITERATION_1 52\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 51 && BOOST_PP_ITERATION_START_1 >= 51\r
-#    define BOOST_PP_ITERATION_1 51\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 50 && BOOST_PP_ITERATION_START_1 >= 50\r
-#    define BOOST_PP_ITERATION_1 50\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 49 && BOOST_PP_ITERATION_START_1 >= 49\r
-#    define BOOST_PP_ITERATION_1 49\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 48 && BOOST_PP_ITERATION_START_1 >= 48\r
-#    define BOOST_PP_ITERATION_1 48\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 47 && BOOST_PP_ITERATION_START_1 >= 47\r
-#    define BOOST_PP_ITERATION_1 47\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 46 && BOOST_PP_ITERATION_START_1 >= 46\r
-#    define BOOST_PP_ITERATION_1 46\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 45 && BOOST_PP_ITERATION_START_1 >= 45\r
-#    define BOOST_PP_ITERATION_1 45\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 44 && BOOST_PP_ITERATION_START_1 >= 44\r
-#    define BOOST_PP_ITERATION_1 44\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 43 && BOOST_PP_ITERATION_START_1 >= 43\r
-#    define BOOST_PP_ITERATION_1 43\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 42 && BOOST_PP_ITERATION_START_1 >= 42\r
-#    define BOOST_PP_ITERATION_1 42\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 41 && BOOST_PP_ITERATION_START_1 >= 41\r
-#    define BOOST_PP_ITERATION_1 41\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 40 && BOOST_PP_ITERATION_START_1 >= 40\r
-#    define BOOST_PP_ITERATION_1 40\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 39 && BOOST_PP_ITERATION_START_1 >= 39\r
-#    define BOOST_PP_ITERATION_1 39\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 38 && BOOST_PP_ITERATION_START_1 >= 38\r
-#    define BOOST_PP_ITERATION_1 38\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 37 && BOOST_PP_ITERATION_START_1 >= 37\r
-#    define BOOST_PP_ITERATION_1 37\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 36 && BOOST_PP_ITERATION_START_1 >= 36\r
-#    define BOOST_PP_ITERATION_1 36\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 35 && BOOST_PP_ITERATION_START_1 >= 35\r
-#    define BOOST_PP_ITERATION_1 35\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 34 && BOOST_PP_ITERATION_START_1 >= 34\r
-#    define BOOST_PP_ITERATION_1 34\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 33 && BOOST_PP_ITERATION_START_1 >= 33\r
-#    define BOOST_PP_ITERATION_1 33\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 32 && BOOST_PP_ITERATION_START_1 >= 32\r
-#    define BOOST_PP_ITERATION_1 32\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 31 && BOOST_PP_ITERATION_START_1 >= 31\r
-#    define BOOST_PP_ITERATION_1 31\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 30 && BOOST_PP_ITERATION_START_1 >= 30\r
-#    define BOOST_PP_ITERATION_1 30\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 29 && BOOST_PP_ITERATION_START_1 >= 29\r
-#    define BOOST_PP_ITERATION_1 29\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 28 && BOOST_PP_ITERATION_START_1 >= 28\r
-#    define BOOST_PP_ITERATION_1 28\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 27 && BOOST_PP_ITERATION_START_1 >= 27\r
-#    define BOOST_PP_ITERATION_1 27\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 26 && BOOST_PP_ITERATION_START_1 >= 26\r
-#    define BOOST_PP_ITERATION_1 26\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 25 && BOOST_PP_ITERATION_START_1 >= 25\r
-#    define BOOST_PP_ITERATION_1 25\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 24 && BOOST_PP_ITERATION_START_1 >= 24\r
-#    define BOOST_PP_ITERATION_1 24\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 23 && BOOST_PP_ITERATION_START_1 >= 23\r
-#    define BOOST_PP_ITERATION_1 23\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 22 && BOOST_PP_ITERATION_START_1 >= 22\r
-#    define BOOST_PP_ITERATION_1 22\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 21 && BOOST_PP_ITERATION_START_1 >= 21\r
-#    define BOOST_PP_ITERATION_1 21\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 20 && BOOST_PP_ITERATION_START_1 >= 20\r
-#    define BOOST_PP_ITERATION_1 20\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 19 && BOOST_PP_ITERATION_START_1 >= 19\r
-#    define BOOST_PP_ITERATION_1 19\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 18 && BOOST_PP_ITERATION_START_1 >= 18\r
-#    define BOOST_PP_ITERATION_1 18\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 17 && BOOST_PP_ITERATION_START_1 >= 17\r
-#    define BOOST_PP_ITERATION_1 17\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 16 && BOOST_PP_ITERATION_START_1 >= 16\r
-#    define BOOST_PP_ITERATION_1 16\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 15 && BOOST_PP_ITERATION_START_1 >= 15\r
-#    define BOOST_PP_ITERATION_1 15\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 14 && BOOST_PP_ITERATION_START_1 >= 14\r
-#    define BOOST_PP_ITERATION_1 14\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 13 && BOOST_PP_ITERATION_START_1 >= 13\r
-#    define BOOST_PP_ITERATION_1 13\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 12 && BOOST_PP_ITERATION_START_1 >= 12\r
-#    define BOOST_PP_ITERATION_1 12\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 11 && BOOST_PP_ITERATION_START_1 >= 11\r
-#    define BOOST_PP_ITERATION_1 11\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 10 && BOOST_PP_ITERATION_START_1 >= 10\r
-#    define BOOST_PP_ITERATION_1 10\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 9 && BOOST_PP_ITERATION_START_1 >= 9\r
-#    define BOOST_PP_ITERATION_1 9\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 8 && BOOST_PP_ITERATION_START_1 >= 8\r
-#    define BOOST_PP_ITERATION_1 8\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 7 && BOOST_PP_ITERATION_START_1 >= 7\r
-#    define BOOST_PP_ITERATION_1 7\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 6 && BOOST_PP_ITERATION_START_1 >= 6\r
-#    define BOOST_PP_ITERATION_1 6\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 5 && BOOST_PP_ITERATION_START_1 >= 5\r
-#    define BOOST_PP_ITERATION_1 5\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 4 && BOOST_PP_ITERATION_START_1 >= 4\r
-#    define BOOST_PP_ITERATION_1 4\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 3 && BOOST_PP_ITERATION_START_1 >= 3\r
-#    define BOOST_PP_ITERATION_1 3\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 2 && BOOST_PP_ITERATION_START_1 >= 2\r
-#    define BOOST_PP_ITERATION_1 2\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 1 && BOOST_PP_ITERATION_START_1 >= 1\r
-#    define BOOST_PP_ITERATION_1 1\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_1 <= 0 && BOOST_PP_ITERATION_START_1 >= 0\r
-#    define BOOST_PP_ITERATION_1 0\r
-#    include BOOST_PP_FILENAME_1\r
-#    undef BOOST_PP_ITERATION_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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 BOOST_PP_ITERATION_FINISH_1 <= 256 && BOOST_PP_ITERATION_START_1 >= 256
+#    define BOOST_PP_ITERATION_1 256
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 255 && BOOST_PP_ITERATION_START_1 >= 255
+#    define BOOST_PP_ITERATION_1 255
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 254 && BOOST_PP_ITERATION_START_1 >= 254
+#    define BOOST_PP_ITERATION_1 254
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 253 && BOOST_PP_ITERATION_START_1 >= 253
+#    define BOOST_PP_ITERATION_1 253
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 252 && BOOST_PP_ITERATION_START_1 >= 252
+#    define BOOST_PP_ITERATION_1 252
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 251 && BOOST_PP_ITERATION_START_1 >= 251
+#    define BOOST_PP_ITERATION_1 251
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 250 && BOOST_PP_ITERATION_START_1 >= 250
+#    define BOOST_PP_ITERATION_1 250
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 249 && BOOST_PP_ITERATION_START_1 >= 249
+#    define BOOST_PP_ITERATION_1 249
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 248 && BOOST_PP_ITERATION_START_1 >= 248
+#    define BOOST_PP_ITERATION_1 248
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 247 && BOOST_PP_ITERATION_START_1 >= 247
+#    define BOOST_PP_ITERATION_1 247
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 246 && BOOST_PP_ITERATION_START_1 >= 246
+#    define BOOST_PP_ITERATION_1 246
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 245 && BOOST_PP_ITERATION_START_1 >= 245
+#    define BOOST_PP_ITERATION_1 245
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 244 && BOOST_PP_ITERATION_START_1 >= 244
+#    define BOOST_PP_ITERATION_1 244
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 243 && BOOST_PP_ITERATION_START_1 >= 243
+#    define BOOST_PP_ITERATION_1 243
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 242 && BOOST_PP_ITERATION_START_1 >= 242
+#    define BOOST_PP_ITERATION_1 242
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 241 && BOOST_PP_ITERATION_START_1 >= 241
+#    define BOOST_PP_ITERATION_1 241
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 240 && BOOST_PP_ITERATION_START_1 >= 240
+#    define BOOST_PP_ITERATION_1 240
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 239 && BOOST_PP_ITERATION_START_1 >= 239
+#    define BOOST_PP_ITERATION_1 239
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 238 && BOOST_PP_ITERATION_START_1 >= 238
+#    define BOOST_PP_ITERATION_1 238
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 237 && BOOST_PP_ITERATION_START_1 >= 237
+#    define BOOST_PP_ITERATION_1 237
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 236 && BOOST_PP_ITERATION_START_1 >= 236
+#    define BOOST_PP_ITERATION_1 236
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 235 && BOOST_PP_ITERATION_START_1 >= 235
+#    define BOOST_PP_ITERATION_1 235
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 234 && BOOST_PP_ITERATION_START_1 >= 234
+#    define BOOST_PP_ITERATION_1 234
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 233 && BOOST_PP_ITERATION_START_1 >= 233
+#    define BOOST_PP_ITERATION_1 233
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 232 && BOOST_PP_ITERATION_START_1 >= 232
+#    define BOOST_PP_ITERATION_1 232
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 231 && BOOST_PP_ITERATION_START_1 >= 231
+#    define BOOST_PP_ITERATION_1 231
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 230 && BOOST_PP_ITERATION_START_1 >= 230
+#    define BOOST_PP_ITERATION_1 230
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 229 && BOOST_PP_ITERATION_START_1 >= 229
+#    define BOOST_PP_ITERATION_1 229
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 228 && BOOST_PP_ITERATION_START_1 >= 228
+#    define BOOST_PP_ITERATION_1 228
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 227 && BOOST_PP_ITERATION_START_1 >= 227
+#    define BOOST_PP_ITERATION_1 227
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 226 && BOOST_PP_ITERATION_START_1 >= 226
+#    define BOOST_PP_ITERATION_1 226
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 225 && BOOST_PP_ITERATION_START_1 >= 225
+#    define BOOST_PP_ITERATION_1 225
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 224 && BOOST_PP_ITERATION_START_1 >= 224
+#    define BOOST_PP_ITERATION_1 224
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 223 && BOOST_PP_ITERATION_START_1 >= 223
+#    define BOOST_PP_ITERATION_1 223
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 222 && BOOST_PP_ITERATION_START_1 >= 222
+#    define BOOST_PP_ITERATION_1 222
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 221 && BOOST_PP_ITERATION_START_1 >= 221
+#    define BOOST_PP_ITERATION_1 221
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 220 && BOOST_PP_ITERATION_START_1 >= 220
+#    define BOOST_PP_ITERATION_1 220
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 219 && BOOST_PP_ITERATION_START_1 >= 219
+#    define BOOST_PP_ITERATION_1 219
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 218 && BOOST_PP_ITERATION_START_1 >= 218
+#    define BOOST_PP_ITERATION_1 218
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 217 && BOOST_PP_ITERATION_START_1 >= 217
+#    define BOOST_PP_ITERATION_1 217
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 216 && BOOST_PP_ITERATION_START_1 >= 216
+#    define BOOST_PP_ITERATION_1 216
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 215 && BOOST_PP_ITERATION_START_1 >= 215
+#    define BOOST_PP_ITERATION_1 215
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 214 && BOOST_PP_ITERATION_START_1 >= 214
+#    define BOOST_PP_ITERATION_1 214
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 213 && BOOST_PP_ITERATION_START_1 >= 213
+#    define BOOST_PP_ITERATION_1 213
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 212 && BOOST_PP_ITERATION_START_1 >= 212
+#    define BOOST_PP_ITERATION_1 212
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 211 && BOOST_PP_ITERATION_START_1 >= 211
+#    define BOOST_PP_ITERATION_1 211
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 210 && BOOST_PP_ITERATION_START_1 >= 210
+#    define BOOST_PP_ITERATION_1 210
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 209 && BOOST_PP_ITERATION_START_1 >= 209
+#    define BOOST_PP_ITERATION_1 209
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 208 && BOOST_PP_ITERATION_START_1 >= 208
+#    define BOOST_PP_ITERATION_1 208
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 207 && BOOST_PP_ITERATION_START_1 >= 207
+#    define BOOST_PP_ITERATION_1 207
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 206 && BOOST_PP_ITERATION_START_1 >= 206
+#    define BOOST_PP_ITERATION_1 206
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 205 && BOOST_PP_ITERATION_START_1 >= 205
+#    define BOOST_PP_ITERATION_1 205
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 204 && BOOST_PP_ITERATION_START_1 >= 204
+#    define BOOST_PP_ITERATION_1 204
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 203 && BOOST_PP_ITERATION_START_1 >= 203
+#    define BOOST_PP_ITERATION_1 203
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 202 && BOOST_PP_ITERATION_START_1 >= 202
+#    define BOOST_PP_ITERATION_1 202
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 201 && BOOST_PP_ITERATION_START_1 >= 201
+#    define BOOST_PP_ITERATION_1 201
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 200 && BOOST_PP_ITERATION_START_1 >= 200
+#    define BOOST_PP_ITERATION_1 200
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 199 && BOOST_PP_ITERATION_START_1 >= 199
+#    define BOOST_PP_ITERATION_1 199
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 198 && BOOST_PP_ITERATION_START_1 >= 198
+#    define BOOST_PP_ITERATION_1 198
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 197 && BOOST_PP_ITERATION_START_1 >= 197
+#    define BOOST_PP_ITERATION_1 197
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 196 && BOOST_PP_ITERATION_START_1 >= 196
+#    define BOOST_PP_ITERATION_1 196
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 195 && BOOST_PP_ITERATION_START_1 >= 195
+#    define BOOST_PP_ITERATION_1 195
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 194 && BOOST_PP_ITERATION_START_1 >= 194
+#    define BOOST_PP_ITERATION_1 194
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 193 && BOOST_PP_ITERATION_START_1 >= 193
+#    define BOOST_PP_ITERATION_1 193
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 192 && BOOST_PP_ITERATION_START_1 >= 192
+#    define BOOST_PP_ITERATION_1 192
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 191 && BOOST_PP_ITERATION_START_1 >= 191
+#    define BOOST_PP_ITERATION_1 191
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 190 && BOOST_PP_ITERATION_START_1 >= 190
+#    define BOOST_PP_ITERATION_1 190
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 189 && BOOST_PP_ITERATION_START_1 >= 189
+#    define BOOST_PP_ITERATION_1 189
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 188 && BOOST_PP_ITERATION_START_1 >= 188
+#    define BOOST_PP_ITERATION_1 188
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 187 && BOOST_PP_ITERATION_START_1 >= 187
+#    define BOOST_PP_ITERATION_1 187
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 186 && BOOST_PP_ITERATION_START_1 >= 186
+#    define BOOST_PP_ITERATION_1 186
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 185 && BOOST_PP_ITERATION_START_1 >= 185
+#    define BOOST_PP_ITERATION_1 185
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 184 && BOOST_PP_ITERATION_START_1 >= 184
+#    define BOOST_PP_ITERATION_1 184
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 183 && BOOST_PP_ITERATION_START_1 >= 183
+#    define BOOST_PP_ITERATION_1 183
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 182 && BOOST_PP_ITERATION_START_1 >= 182
+#    define BOOST_PP_ITERATION_1 182
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 181 && BOOST_PP_ITERATION_START_1 >= 181
+#    define BOOST_PP_ITERATION_1 181
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 180 && BOOST_PP_ITERATION_START_1 >= 180
+#    define BOOST_PP_ITERATION_1 180
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 179 && BOOST_PP_ITERATION_START_1 >= 179
+#    define BOOST_PP_ITERATION_1 179
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 178 && BOOST_PP_ITERATION_START_1 >= 178
+#    define BOOST_PP_ITERATION_1 178
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 177 && BOOST_PP_ITERATION_START_1 >= 177
+#    define BOOST_PP_ITERATION_1 177
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 176 && BOOST_PP_ITERATION_START_1 >= 176
+#    define BOOST_PP_ITERATION_1 176
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 175 && BOOST_PP_ITERATION_START_1 >= 175
+#    define BOOST_PP_ITERATION_1 175
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 174 && BOOST_PP_ITERATION_START_1 >= 174
+#    define BOOST_PP_ITERATION_1 174
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 173 && BOOST_PP_ITERATION_START_1 >= 173
+#    define BOOST_PP_ITERATION_1 173
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 172 && BOOST_PP_ITERATION_START_1 >= 172
+#    define BOOST_PP_ITERATION_1 172
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 171 && BOOST_PP_ITERATION_START_1 >= 171
+#    define BOOST_PP_ITERATION_1 171
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 170 && BOOST_PP_ITERATION_START_1 >= 170
+#    define BOOST_PP_ITERATION_1 170
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 169 && BOOST_PP_ITERATION_START_1 >= 169
+#    define BOOST_PP_ITERATION_1 169
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 168 && BOOST_PP_ITERATION_START_1 >= 168
+#    define BOOST_PP_ITERATION_1 168
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 167 && BOOST_PP_ITERATION_START_1 >= 167
+#    define BOOST_PP_ITERATION_1 167
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 166 && BOOST_PP_ITERATION_START_1 >= 166
+#    define BOOST_PP_ITERATION_1 166
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 165 && BOOST_PP_ITERATION_START_1 >= 165
+#    define BOOST_PP_ITERATION_1 165
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 164 && BOOST_PP_ITERATION_START_1 >= 164
+#    define BOOST_PP_ITERATION_1 164
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 163 && BOOST_PP_ITERATION_START_1 >= 163
+#    define BOOST_PP_ITERATION_1 163
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 162 && BOOST_PP_ITERATION_START_1 >= 162
+#    define BOOST_PP_ITERATION_1 162
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 161 && BOOST_PP_ITERATION_START_1 >= 161
+#    define BOOST_PP_ITERATION_1 161
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 160 && BOOST_PP_ITERATION_START_1 >= 160
+#    define BOOST_PP_ITERATION_1 160
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 159 && BOOST_PP_ITERATION_START_1 >= 159
+#    define BOOST_PP_ITERATION_1 159
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 158 && BOOST_PP_ITERATION_START_1 >= 158
+#    define BOOST_PP_ITERATION_1 158
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 157 && BOOST_PP_ITERATION_START_1 >= 157
+#    define BOOST_PP_ITERATION_1 157
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 156 && BOOST_PP_ITERATION_START_1 >= 156
+#    define BOOST_PP_ITERATION_1 156
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 155 && BOOST_PP_ITERATION_START_1 >= 155
+#    define BOOST_PP_ITERATION_1 155
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 154 && BOOST_PP_ITERATION_START_1 >= 154
+#    define BOOST_PP_ITERATION_1 154
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 153 && BOOST_PP_ITERATION_START_1 >= 153
+#    define BOOST_PP_ITERATION_1 153
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 152 && BOOST_PP_ITERATION_START_1 >= 152
+#    define BOOST_PP_ITERATION_1 152
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 151 && BOOST_PP_ITERATION_START_1 >= 151
+#    define BOOST_PP_ITERATION_1 151
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 150 && BOOST_PP_ITERATION_START_1 >= 150
+#    define BOOST_PP_ITERATION_1 150
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 149 && BOOST_PP_ITERATION_START_1 >= 149
+#    define BOOST_PP_ITERATION_1 149
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 148 && BOOST_PP_ITERATION_START_1 >= 148
+#    define BOOST_PP_ITERATION_1 148
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 147 && BOOST_PP_ITERATION_START_1 >= 147
+#    define BOOST_PP_ITERATION_1 147
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 146 && BOOST_PP_ITERATION_START_1 >= 146
+#    define BOOST_PP_ITERATION_1 146
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 145 && BOOST_PP_ITERATION_START_1 >= 145
+#    define BOOST_PP_ITERATION_1 145
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 144 && BOOST_PP_ITERATION_START_1 >= 144
+#    define BOOST_PP_ITERATION_1 144
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 143 && BOOST_PP_ITERATION_START_1 >= 143
+#    define BOOST_PP_ITERATION_1 143
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 142 && BOOST_PP_ITERATION_START_1 >= 142
+#    define BOOST_PP_ITERATION_1 142
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 141 && BOOST_PP_ITERATION_START_1 >= 141
+#    define BOOST_PP_ITERATION_1 141
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 140 && BOOST_PP_ITERATION_START_1 >= 140
+#    define BOOST_PP_ITERATION_1 140
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 139 && BOOST_PP_ITERATION_START_1 >= 139
+#    define BOOST_PP_ITERATION_1 139
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 138 && BOOST_PP_ITERATION_START_1 >= 138
+#    define BOOST_PP_ITERATION_1 138
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 137 && BOOST_PP_ITERATION_START_1 >= 137
+#    define BOOST_PP_ITERATION_1 137
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 136 && BOOST_PP_ITERATION_START_1 >= 136
+#    define BOOST_PP_ITERATION_1 136
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 135 && BOOST_PP_ITERATION_START_1 >= 135
+#    define BOOST_PP_ITERATION_1 135
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 134 && BOOST_PP_ITERATION_START_1 >= 134
+#    define BOOST_PP_ITERATION_1 134
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 133 && BOOST_PP_ITERATION_START_1 >= 133
+#    define BOOST_PP_ITERATION_1 133
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 132 && BOOST_PP_ITERATION_START_1 >= 132
+#    define BOOST_PP_ITERATION_1 132
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 131 && BOOST_PP_ITERATION_START_1 >= 131
+#    define BOOST_PP_ITERATION_1 131
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 130 && BOOST_PP_ITERATION_START_1 >= 130
+#    define BOOST_PP_ITERATION_1 130
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 129 && BOOST_PP_ITERATION_START_1 >= 129
+#    define BOOST_PP_ITERATION_1 129
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 128 && BOOST_PP_ITERATION_START_1 >= 128
+#    define BOOST_PP_ITERATION_1 128
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 127 && BOOST_PP_ITERATION_START_1 >= 127
+#    define BOOST_PP_ITERATION_1 127
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 126 && BOOST_PP_ITERATION_START_1 >= 126
+#    define BOOST_PP_ITERATION_1 126
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 125 && BOOST_PP_ITERATION_START_1 >= 125
+#    define BOOST_PP_ITERATION_1 125
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 124 && BOOST_PP_ITERATION_START_1 >= 124
+#    define BOOST_PP_ITERATION_1 124
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 123 && BOOST_PP_ITERATION_START_1 >= 123
+#    define BOOST_PP_ITERATION_1 123
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 122 && BOOST_PP_ITERATION_START_1 >= 122
+#    define BOOST_PP_ITERATION_1 122
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 121 && BOOST_PP_ITERATION_START_1 >= 121
+#    define BOOST_PP_ITERATION_1 121
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 120 && BOOST_PP_ITERATION_START_1 >= 120
+#    define BOOST_PP_ITERATION_1 120
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 119 && BOOST_PP_ITERATION_START_1 >= 119
+#    define BOOST_PP_ITERATION_1 119
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 118 && BOOST_PP_ITERATION_START_1 >= 118
+#    define BOOST_PP_ITERATION_1 118
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 117 && BOOST_PP_ITERATION_START_1 >= 117
+#    define BOOST_PP_ITERATION_1 117
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 116 && BOOST_PP_ITERATION_START_1 >= 116
+#    define BOOST_PP_ITERATION_1 116
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 115 && BOOST_PP_ITERATION_START_1 >= 115
+#    define BOOST_PP_ITERATION_1 115
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 114 && BOOST_PP_ITERATION_START_1 >= 114
+#    define BOOST_PP_ITERATION_1 114
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 113 && BOOST_PP_ITERATION_START_1 >= 113
+#    define BOOST_PP_ITERATION_1 113
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 112 && BOOST_PP_ITERATION_START_1 >= 112
+#    define BOOST_PP_ITERATION_1 112
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 111 && BOOST_PP_ITERATION_START_1 >= 111
+#    define BOOST_PP_ITERATION_1 111
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 110 && BOOST_PP_ITERATION_START_1 >= 110
+#    define BOOST_PP_ITERATION_1 110
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 109 && BOOST_PP_ITERATION_START_1 >= 109
+#    define BOOST_PP_ITERATION_1 109
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 108 && BOOST_PP_ITERATION_START_1 >= 108
+#    define BOOST_PP_ITERATION_1 108
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 107 && BOOST_PP_ITERATION_START_1 >= 107
+#    define BOOST_PP_ITERATION_1 107
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 106 && BOOST_PP_ITERATION_START_1 >= 106
+#    define BOOST_PP_ITERATION_1 106
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 105 && BOOST_PP_ITERATION_START_1 >= 105
+#    define BOOST_PP_ITERATION_1 105
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 104 && BOOST_PP_ITERATION_START_1 >= 104
+#    define BOOST_PP_ITERATION_1 104
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 103 && BOOST_PP_ITERATION_START_1 >= 103
+#    define BOOST_PP_ITERATION_1 103
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 102 && BOOST_PP_ITERATION_START_1 >= 102
+#    define BOOST_PP_ITERATION_1 102
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 101 && BOOST_PP_ITERATION_START_1 >= 101
+#    define BOOST_PP_ITERATION_1 101
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 100 && BOOST_PP_ITERATION_START_1 >= 100
+#    define BOOST_PP_ITERATION_1 100
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 99 && BOOST_PP_ITERATION_START_1 >= 99
+#    define BOOST_PP_ITERATION_1 99
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 98 && BOOST_PP_ITERATION_START_1 >= 98
+#    define BOOST_PP_ITERATION_1 98
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 97 && BOOST_PP_ITERATION_START_1 >= 97
+#    define BOOST_PP_ITERATION_1 97
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 96 && BOOST_PP_ITERATION_START_1 >= 96
+#    define BOOST_PP_ITERATION_1 96
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 95 && BOOST_PP_ITERATION_START_1 >= 95
+#    define BOOST_PP_ITERATION_1 95
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 94 && BOOST_PP_ITERATION_START_1 >= 94
+#    define BOOST_PP_ITERATION_1 94
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 93 && BOOST_PP_ITERATION_START_1 >= 93
+#    define BOOST_PP_ITERATION_1 93
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 92 && BOOST_PP_ITERATION_START_1 >= 92
+#    define BOOST_PP_ITERATION_1 92
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 91 && BOOST_PP_ITERATION_START_1 >= 91
+#    define BOOST_PP_ITERATION_1 91
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 90 && BOOST_PP_ITERATION_START_1 >= 90
+#    define BOOST_PP_ITERATION_1 90
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 89 && BOOST_PP_ITERATION_START_1 >= 89
+#    define BOOST_PP_ITERATION_1 89
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 88 && BOOST_PP_ITERATION_START_1 >= 88
+#    define BOOST_PP_ITERATION_1 88
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 87 && BOOST_PP_ITERATION_START_1 >= 87
+#    define BOOST_PP_ITERATION_1 87
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 86 && BOOST_PP_ITERATION_START_1 >= 86
+#    define BOOST_PP_ITERATION_1 86
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 85 && BOOST_PP_ITERATION_START_1 >= 85
+#    define BOOST_PP_ITERATION_1 85
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 84 && BOOST_PP_ITERATION_START_1 >= 84
+#    define BOOST_PP_ITERATION_1 84
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 83 && BOOST_PP_ITERATION_START_1 >= 83
+#    define BOOST_PP_ITERATION_1 83
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 82 && BOOST_PP_ITERATION_START_1 >= 82
+#    define BOOST_PP_ITERATION_1 82
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 81 && BOOST_PP_ITERATION_START_1 >= 81
+#    define BOOST_PP_ITERATION_1 81
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 80 && BOOST_PP_ITERATION_START_1 >= 80
+#    define BOOST_PP_ITERATION_1 80
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 79 && BOOST_PP_ITERATION_START_1 >= 79
+#    define BOOST_PP_ITERATION_1 79
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 78 && BOOST_PP_ITERATION_START_1 >= 78
+#    define BOOST_PP_ITERATION_1 78
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 77 && BOOST_PP_ITERATION_START_1 >= 77
+#    define BOOST_PP_ITERATION_1 77
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 76 && BOOST_PP_ITERATION_START_1 >= 76
+#    define BOOST_PP_ITERATION_1 76
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 75 && BOOST_PP_ITERATION_START_1 >= 75
+#    define BOOST_PP_ITERATION_1 75
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 74 && BOOST_PP_ITERATION_START_1 >= 74
+#    define BOOST_PP_ITERATION_1 74
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 73 && BOOST_PP_ITERATION_START_1 >= 73
+#    define BOOST_PP_ITERATION_1 73
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 72 && BOOST_PP_ITERATION_START_1 >= 72
+#    define BOOST_PP_ITERATION_1 72
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 71 && BOOST_PP_ITERATION_START_1 >= 71
+#    define BOOST_PP_ITERATION_1 71
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 70 && BOOST_PP_ITERATION_START_1 >= 70
+#    define BOOST_PP_ITERATION_1 70
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 69 && BOOST_PP_ITERATION_START_1 >= 69
+#    define BOOST_PP_ITERATION_1 69
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 68 && BOOST_PP_ITERATION_START_1 >= 68
+#    define BOOST_PP_ITERATION_1 68
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 67 && BOOST_PP_ITERATION_START_1 >= 67
+#    define BOOST_PP_ITERATION_1 67
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 66 && BOOST_PP_ITERATION_START_1 >= 66
+#    define BOOST_PP_ITERATION_1 66
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 65 && BOOST_PP_ITERATION_START_1 >= 65
+#    define BOOST_PP_ITERATION_1 65
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 64 && BOOST_PP_ITERATION_START_1 >= 64
+#    define BOOST_PP_ITERATION_1 64
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 63 && BOOST_PP_ITERATION_START_1 >= 63
+#    define BOOST_PP_ITERATION_1 63
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 62 && BOOST_PP_ITERATION_START_1 >= 62
+#    define BOOST_PP_ITERATION_1 62
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 61 && BOOST_PP_ITERATION_START_1 >= 61
+#    define BOOST_PP_ITERATION_1 61
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 60 && BOOST_PP_ITERATION_START_1 >= 60
+#    define BOOST_PP_ITERATION_1 60
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 59 && BOOST_PP_ITERATION_START_1 >= 59
+#    define BOOST_PP_ITERATION_1 59
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 58 && BOOST_PP_ITERATION_START_1 >= 58
+#    define BOOST_PP_ITERATION_1 58
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 57 && BOOST_PP_ITERATION_START_1 >= 57
+#    define BOOST_PP_ITERATION_1 57
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 56 && BOOST_PP_ITERATION_START_1 >= 56
+#    define BOOST_PP_ITERATION_1 56
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 55 && BOOST_PP_ITERATION_START_1 >= 55
+#    define BOOST_PP_ITERATION_1 55
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 54 && BOOST_PP_ITERATION_START_1 >= 54
+#    define BOOST_PP_ITERATION_1 54
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 53 && BOOST_PP_ITERATION_START_1 >= 53
+#    define BOOST_PP_ITERATION_1 53
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 52 && BOOST_PP_ITERATION_START_1 >= 52
+#    define BOOST_PP_ITERATION_1 52
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 51 && BOOST_PP_ITERATION_START_1 >= 51
+#    define BOOST_PP_ITERATION_1 51
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 50 && BOOST_PP_ITERATION_START_1 >= 50
+#    define BOOST_PP_ITERATION_1 50
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 49 && BOOST_PP_ITERATION_START_1 >= 49
+#    define BOOST_PP_ITERATION_1 49
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 48 && BOOST_PP_ITERATION_START_1 >= 48
+#    define BOOST_PP_ITERATION_1 48
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 47 && BOOST_PP_ITERATION_START_1 >= 47
+#    define BOOST_PP_ITERATION_1 47
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 46 && BOOST_PP_ITERATION_START_1 >= 46
+#    define BOOST_PP_ITERATION_1 46
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 45 && BOOST_PP_ITERATION_START_1 >= 45
+#    define BOOST_PP_ITERATION_1 45
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 44 && BOOST_PP_ITERATION_START_1 >= 44
+#    define BOOST_PP_ITERATION_1 44
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 43 && BOOST_PP_ITERATION_START_1 >= 43
+#    define BOOST_PP_ITERATION_1 43
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 42 && BOOST_PP_ITERATION_START_1 >= 42
+#    define BOOST_PP_ITERATION_1 42
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 41 && BOOST_PP_ITERATION_START_1 >= 41
+#    define BOOST_PP_ITERATION_1 41
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 40 && BOOST_PP_ITERATION_START_1 >= 40
+#    define BOOST_PP_ITERATION_1 40
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 39 && BOOST_PP_ITERATION_START_1 >= 39
+#    define BOOST_PP_ITERATION_1 39
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 38 && BOOST_PP_ITERATION_START_1 >= 38
+#    define BOOST_PP_ITERATION_1 38
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 37 && BOOST_PP_ITERATION_START_1 >= 37
+#    define BOOST_PP_ITERATION_1 37
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 36 && BOOST_PP_ITERATION_START_1 >= 36
+#    define BOOST_PP_ITERATION_1 36
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 35 && BOOST_PP_ITERATION_START_1 >= 35
+#    define BOOST_PP_ITERATION_1 35
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 34 && BOOST_PP_ITERATION_START_1 >= 34
+#    define BOOST_PP_ITERATION_1 34
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 33 && BOOST_PP_ITERATION_START_1 >= 33
+#    define BOOST_PP_ITERATION_1 33
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 32 && BOOST_PP_ITERATION_START_1 >= 32
+#    define BOOST_PP_ITERATION_1 32
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 31 && BOOST_PP_ITERATION_START_1 >= 31
+#    define BOOST_PP_ITERATION_1 31
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 30 && BOOST_PP_ITERATION_START_1 >= 30
+#    define BOOST_PP_ITERATION_1 30
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 29 && BOOST_PP_ITERATION_START_1 >= 29
+#    define BOOST_PP_ITERATION_1 29
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 28 && BOOST_PP_ITERATION_START_1 >= 28
+#    define BOOST_PP_ITERATION_1 28
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 27 && BOOST_PP_ITERATION_START_1 >= 27
+#    define BOOST_PP_ITERATION_1 27
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 26 && BOOST_PP_ITERATION_START_1 >= 26
+#    define BOOST_PP_ITERATION_1 26
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 25 && BOOST_PP_ITERATION_START_1 >= 25
+#    define BOOST_PP_ITERATION_1 25
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 24 && BOOST_PP_ITERATION_START_1 >= 24
+#    define BOOST_PP_ITERATION_1 24
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 23 && BOOST_PP_ITERATION_START_1 >= 23
+#    define BOOST_PP_ITERATION_1 23
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 22 && BOOST_PP_ITERATION_START_1 >= 22
+#    define BOOST_PP_ITERATION_1 22
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 21 && BOOST_PP_ITERATION_START_1 >= 21
+#    define BOOST_PP_ITERATION_1 21
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 20 && BOOST_PP_ITERATION_START_1 >= 20
+#    define BOOST_PP_ITERATION_1 20
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 19 && BOOST_PP_ITERATION_START_1 >= 19
+#    define BOOST_PP_ITERATION_1 19
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 18 && BOOST_PP_ITERATION_START_1 >= 18
+#    define BOOST_PP_ITERATION_1 18
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 17 && BOOST_PP_ITERATION_START_1 >= 17
+#    define BOOST_PP_ITERATION_1 17
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 16 && BOOST_PP_ITERATION_START_1 >= 16
+#    define BOOST_PP_ITERATION_1 16
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 15 && BOOST_PP_ITERATION_START_1 >= 15
+#    define BOOST_PP_ITERATION_1 15
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 14 && BOOST_PP_ITERATION_START_1 >= 14
+#    define BOOST_PP_ITERATION_1 14
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 13 && BOOST_PP_ITERATION_START_1 >= 13
+#    define BOOST_PP_ITERATION_1 13
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 12 && BOOST_PP_ITERATION_START_1 >= 12
+#    define BOOST_PP_ITERATION_1 12
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 11 && BOOST_PP_ITERATION_START_1 >= 11
+#    define BOOST_PP_ITERATION_1 11
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 10 && BOOST_PP_ITERATION_START_1 >= 10
+#    define BOOST_PP_ITERATION_1 10
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 9 && BOOST_PP_ITERATION_START_1 >= 9
+#    define BOOST_PP_ITERATION_1 9
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 8 && BOOST_PP_ITERATION_START_1 >= 8
+#    define BOOST_PP_ITERATION_1 8
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 7 && BOOST_PP_ITERATION_START_1 >= 7
+#    define BOOST_PP_ITERATION_1 7
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 6 && BOOST_PP_ITERATION_START_1 >= 6
+#    define BOOST_PP_ITERATION_1 6
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 5 && BOOST_PP_ITERATION_START_1 >= 5
+#    define BOOST_PP_ITERATION_1 5
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 4 && BOOST_PP_ITERATION_START_1 >= 4
+#    define BOOST_PP_ITERATION_1 4
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 3 && BOOST_PP_ITERATION_START_1 >= 3
+#    define BOOST_PP_ITERATION_1 3
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 2 && BOOST_PP_ITERATION_START_1 >= 2
+#    define BOOST_PP_ITERATION_1 2
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 1 && BOOST_PP_ITERATION_START_1 >= 1
+#    define BOOST_PP_ITERATION_1 1
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
+# if BOOST_PP_ITERATION_FINISH_1 <= 0 && BOOST_PP_ITERATION_START_1 >= 0
+#    define BOOST_PP_ITERATION_1 0
+#    include BOOST_PP_FILENAME_1
+#    undef BOOST_PP_ITERATION_1
+# endif
index c7841989badfabf22c3b38008427ad591bcf242d..521bd249beaa86098311c17ec42355a9fd8db048 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 256 && BOOST_PP_ITERATION_START_2 >= 256\r
-#    define BOOST_PP_ITERATION_2 256\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 255 && BOOST_PP_ITERATION_START_2 >= 255\r
-#    define BOOST_PP_ITERATION_2 255\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 254 && BOOST_PP_ITERATION_START_2 >= 254\r
-#    define BOOST_PP_ITERATION_2 254\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 253 && BOOST_PP_ITERATION_START_2 >= 253\r
-#    define BOOST_PP_ITERATION_2 253\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 252 && BOOST_PP_ITERATION_START_2 >= 252\r
-#    define BOOST_PP_ITERATION_2 252\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 251 && BOOST_PP_ITERATION_START_2 >= 251\r
-#    define BOOST_PP_ITERATION_2 251\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 250 && BOOST_PP_ITERATION_START_2 >= 250\r
-#    define BOOST_PP_ITERATION_2 250\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 249 && BOOST_PP_ITERATION_START_2 >= 249\r
-#    define BOOST_PP_ITERATION_2 249\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 248 && BOOST_PP_ITERATION_START_2 >= 248\r
-#    define BOOST_PP_ITERATION_2 248\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 247 && BOOST_PP_ITERATION_START_2 >= 247\r
-#    define BOOST_PP_ITERATION_2 247\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 246 && BOOST_PP_ITERATION_START_2 >= 246\r
-#    define BOOST_PP_ITERATION_2 246\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 245 && BOOST_PP_ITERATION_START_2 >= 245\r
-#    define BOOST_PP_ITERATION_2 245\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 244 && BOOST_PP_ITERATION_START_2 >= 244\r
-#    define BOOST_PP_ITERATION_2 244\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 243 && BOOST_PP_ITERATION_START_2 >= 243\r
-#    define BOOST_PP_ITERATION_2 243\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 242 && BOOST_PP_ITERATION_START_2 >= 242\r
-#    define BOOST_PP_ITERATION_2 242\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 241 && BOOST_PP_ITERATION_START_2 >= 241\r
-#    define BOOST_PP_ITERATION_2 241\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 240 && BOOST_PP_ITERATION_START_2 >= 240\r
-#    define BOOST_PP_ITERATION_2 240\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 239 && BOOST_PP_ITERATION_START_2 >= 239\r
-#    define BOOST_PP_ITERATION_2 239\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 238 && BOOST_PP_ITERATION_START_2 >= 238\r
-#    define BOOST_PP_ITERATION_2 238\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 237 && BOOST_PP_ITERATION_START_2 >= 237\r
-#    define BOOST_PP_ITERATION_2 237\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 236 && BOOST_PP_ITERATION_START_2 >= 236\r
-#    define BOOST_PP_ITERATION_2 236\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 235 && BOOST_PP_ITERATION_START_2 >= 235\r
-#    define BOOST_PP_ITERATION_2 235\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 234 && BOOST_PP_ITERATION_START_2 >= 234\r
-#    define BOOST_PP_ITERATION_2 234\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 233 && BOOST_PP_ITERATION_START_2 >= 233\r
-#    define BOOST_PP_ITERATION_2 233\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 232 && BOOST_PP_ITERATION_START_2 >= 232\r
-#    define BOOST_PP_ITERATION_2 232\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 231 && BOOST_PP_ITERATION_START_2 >= 231\r
-#    define BOOST_PP_ITERATION_2 231\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 230 && BOOST_PP_ITERATION_START_2 >= 230\r
-#    define BOOST_PP_ITERATION_2 230\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 229 && BOOST_PP_ITERATION_START_2 >= 229\r
-#    define BOOST_PP_ITERATION_2 229\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 228 && BOOST_PP_ITERATION_START_2 >= 228\r
-#    define BOOST_PP_ITERATION_2 228\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 227 && BOOST_PP_ITERATION_START_2 >= 227\r
-#    define BOOST_PP_ITERATION_2 227\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 226 && BOOST_PP_ITERATION_START_2 >= 226\r
-#    define BOOST_PP_ITERATION_2 226\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 225 && BOOST_PP_ITERATION_START_2 >= 225\r
-#    define BOOST_PP_ITERATION_2 225\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 224 && BOOST_PP_ITERATION_START_2 >= 224\r
-#    define BOOST_PP_ITERATION_2 224\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 223 && BOOST_PP_ITERATION_START_2 >= 223\r
-#    define BOOST_PP_ITERATION_2 223\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 222 && BOOST_PP_ITERATION_START_2 >= 222\r
-#    define BOOST_PP_ITERATION_2 222\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 221 && BOOST_PP_ITERATION_START_2 >= 221\r
-#    define BOOST_PP_ITERATION_2 221\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 220 && BOOST_PP_ITERATION_START_2 >= 220\r
-#    define BOOST_PP_ITERATION_2 220\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 219 && BOOST_PP_ITERATION_START_2 >= 219\r
-#    define BOOST_PP_ITERATION_2 219\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 218 && BOOST_PP_ITERATION_START_2 >= 218\r
-#    define BOOST_PP_ITERATION_2 218\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 217 && BOOST_PP_ITERATION_START_2 >= 217\r
-#    define BOOST_PP_ITERATION_2 217\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 216 && BOOST_PP_ITERATION_START_2 >= 216\r
-#    define BOOST_PP_ITERATION_2 216\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 215 && BOOST_PP_ITERATION_START_2 >= 215\r
-#    define BOOST_PP_ITERATION_2 215\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 214 && BOOST_PP_ITERATION_START_2 >= 214\r
-#    define BOOST_PP_ITERATION_2 214\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 213 && BOOST_PP_ITERATION_START_2 >= 213\r
-#    define BOOST_PP_ITERATION_2 213\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 212 && BOOST_PP_ITERATION_START_2 >= 212\r
-#    define BOOST_PP_ITERATION_2 212\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 211 && BOOST_PP_ITERATION_START_2 >= 211\r
-#    define BOOST_PP_ITERATION_2 211\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 210 && BOOST_PP_ITERATION_START_2 >= 210\r
-#    define BOOST_PP_ITERATION_2 210\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 209 && BOOST_PP_ITERATION_START_2 >= 209\r
-#    define BOOST_PP_ITERATION_2 209\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 208 && BOOST_PP_ITERATION_START_2 >= 208\r
-#    define BOOST_PP_ITERATION_2 208\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 207 && BOOST_PP_ITERATION_START_2 >= 207\r
-#    define BOOST_PP_ITERATION_2 207\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 206 && BOOST_PP_ITERATION_START_2 >= 206\r
-#    define BOOST_PP_ITERATION_2 206\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 205 && BOOST_PP_ITERATION_START_2 >= 205\r
-#    define BOOST_PP_ITERATION_2 205\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 204 && BOOST_PP_ITERATION_START_2 >= 204\r
-#    define BOOST_PP_ITERATION_2 204\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 203 && BOOST_PP_ITERATION_START_2 >= 203\r
-#    define BOOST_PP_ITERATION_2 203\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 202 && BOOST_PP_ITERATION_START_2 >= 202\r
-#    define BOOST_PP_ITERATION_2 202\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 201 && BOOST_PP_ITERATION_START_2 >= 201\r
-#    define BOOST_PP_ITERATION_2 201\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 200 && BOOST_PP_ITERATION_START_2 >= 200\r
-#    define BOOST_PP_ITERATION_2 200\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 199 && BOOST_PP_ITERATION_START_2 >= 199\r
-#    define BOOST_PP_ITERATION_2 199\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 198 && BOOST_PP_ITERATION_START_2 >= 198\r
-#    define BOOST_PP_ITERATION_2 198\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 197 && BOOST_PP_ITERATION_START_2 >= 197\r
-#    define BOOST_PP_ITERATION_2 197\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 196 && BOOST_PP_ITERATION_START_2 >= 196\r
-#    define BOOST_PP_ITERATION_2 196\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 195 && BOOST_PP_ITERATION_START_2 >= 195\r
-#    define BOOST_PP_ITERATION_2 195\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 194 && BOOST_PP_ITERATION_START_2 >= 194\r
-#    define BOOST_PP_ITERATION_2 194\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 193 && BOOST_PP_ITERATION_START_2 >= 193\r
-#    define BOOST_PP_ITERATION_2 193\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 192 && BOOST_PP_ITERATION_START_2 >= 192\r
-#    define BOOST_PP_ITERATION_2 192\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 191 && BOOST_PP_ITERATION_START_2 >= 191\r
-#    define BOOST_PP_ITERATION_2 191\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 190 && BOOST_PP_ITERATION_START_2 >= 190\r
-#    define BOOST_PP_ITERATION_2 190\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 189 && BOOST_PP_ITERATION_START_2 >= 189\r
-#    define BOOST_PP_ITERATION_2 189\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 188 && BOOST_PP_ITERATION_START_2 >= 188\r
-#    define BOOST_PP_ITERATION_2 188\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 187 && BOOST_PP_ITERATION_START_2 >= 187\r
-#    define BOOST_PP_ITERATION_2 187\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 186 && BOOST_PP_ITERATION_START_2 >= 186\r
-#    define BOOST_PP_ITERATION_2 186\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 185 && BOOST_PP_ITERATION_START_2 >= 185\r
-#    define BOOST_PP_ITERATION_2 185\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 184 && BOOST_PP_ITERATION_START_2 >= 184\r
-#    define BOOST_PP_ITERATION_2 184\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 183 && BOOST_PP_ITERATION_START_2 >= 183\r
-#    define BOOST_PP_ITERATION_2 183\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 182 && BOOST_PP_ITERATION_START_2 >= 182\r
-#    define BOOST_PP_ITERATION_2 182\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 181 && BOOST_PP_ITERATION_START_2 >= 181\r
-#    define BOOST_PP_ITERATION_2 181\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 180 && BOOST_PP_ITERATION_START_2 >= 180\r
-#    define BOOST_PP_ITERATION_2 180\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 179 && BOOST_PP_ITERATION_START_2 >= 179\r
-#    define BOOST_PP_ITERATION_2 179\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 178 && BOOST_PP_ITERATION_START_2 >= 178\r
-#    define BOOST_PP_ITERATION_2 178\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 177 && BOOST_PP_ITERATION_START_2 >= 177\r
-#    define BOOST_PP_ITERATION_2 177\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 176 && BOOST_PP_ITERATION_START_2 >= 176\r
-#    define BOOST_PP_ITERATION_2 176\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 175 && BOOST_PP_ITERATION_START_2 >= 175\r
-#    define BOOST_PP_ITERATION_2 175\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 174 && BOOST_PP_ITERATION_START_2 >= 174\r
-#    define BOOST_PP_ITERATION_2 174\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 173 && BOOST_PP_ITERATION_START_2 >= 173\r
-#    define BOOST_PP_ITERATION_2 173\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 172 && BOOST_PP_ITERATION_START_2 >= 172\r
-#    define BOOST_PP_ITERATION_2 172\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 171 && BOOST_PP_ITERATION_START_2 >= 171\r
-#    define BOOST_PP_ITERATION_2 171\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 170 && BOOST_PP_ITERATION_START_2 >= 170\r
-#    define BOOST_PP_ITERATION_2 170\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 169 && BOOST_PP_ITERATION_START_2 >= 169\r
-#    define BOOST_PP_ITERATION_2 169\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 168 && BOOST_PP_ITERATION_START_2 >= 168\r
-#    define BOOST_PP_ITERATION_2 168\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 167 && BOOST_PP_ITERATION_START_2 >= 167\r
-#    define BOOST_PP_ITERATION_2 167\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 166 && BOOST_PP_ITERATION_START_2 >= 166\r
-#    define BOOST_PP_ITERATION_2 166\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 165 && BOOST_PP_ITERATION_START_2 >= 165\r
-#    define BOOST_PP_ITERATION_2 165\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 164 && BOOST_PP_ITERATION_START_2 >= 164\r
-#    define BOOST_PP_ITERATION_2 164\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 163 && BOOST_PP_ITERATION_START_2 >= 163\r
-#    define BOOST_PP_ITERATION_2 163\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 162 && BOOST_PP_ITERATION_START_2 >= 162\r
-#    define BOOST_PP_ITERATION_2 162\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 161 && BOOST_PP_ITERATION_START_2 >= 161\r
-#    define BOOST_PP_ITERATION_2 161\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 160 && BOOST_PP_ITERATION_START_2 >= 160\r
-#    define BOOST_PP_ITERATION_2 160\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 159 && BOOST_PP_ITERATION_START_2 >= 159\r
-#    define BOOST_PP_ITERATION_2 159\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 158 && BOOST_PP_ITERATION_START_2 >= 158\r
-#    define BOOST_PP_ITERATION_2 158\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 157 && BOOST_PP_ITERATION_START_2 >= 157\r
-#    define BOOST_PP_ITERATION_2 157\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 156 && BOOST_PP_ITERATION_START_2 >= 156\r
-#    define BOOST_PP_ITERATION_2 156\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 155 && BOOST_PP_ITERATION_START_2 >= 155\r
-#    define BOOST_PP_ITERATION_2 155\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 154 && BOOST_PP_ITERATION_START_2 >= 154\r
-#    define BOOST_PP_ITERATION_2 154\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 153 && BOOST_PP_ITERATION_START_2 >= 153\r
-#    define BOOST_PP_ITERATION_2 153\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 152 && BOOST_PP_ITERATION_START_2 >= 152\r
-#    define BOOST_PP_ITERATION_2 152\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 151 && BOOST_PP_ITERATION_START_2 >= 151\r
-#    define BOOST_PP_ITERATION_2 151\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 150 && BOOST_PP_ITERATION_START_2 >= 150\r
-#    define BOOST_PP_ITERATION_2 150\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 149 && BOOST_PP_ITERATION_START_2 >= 149\r
-#    define BOOST_PP_ITERATION_2 149\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 148 && BOOST_PP_ITERATION_START_2 >= 148\r
-#    define BOOST_PP_ITERATION_2 148\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 147 && BOOST_PP_ITERATION_START_2 >= 147\r
-#    define BOOST_PP_ITERATION_2 147\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 146 && BOOST_PP_ITERATION_START_2 >= 146\r
-#    define BOOST_PP_ITERATION_2 146\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 145 && BOOST_PP_ITERATION_START_2 >= 145\r
-#    define BOOST_PP_ITERATION_2 145\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 144 && BOOST_PP_ITERATION_START_2 >= 144\r
-#    define BOOST_PP_ITERATION_2 144\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 143 && BOOST_PP_ITERATION_START_2 >= 143\r
-#    define BOOST_PP_ITERATION_2 143\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 142 && BOOST_PP_ITERATION_START_2 >= 142\r
-#    define BOOST_PP_ITERATION_2 142\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 141 && BOOST_PP_ITERATION_START_2 >= 141\r
-#    define BOOST_PP_ITERATION_2 141\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 140 && BOOST_PP_ITERATION_START_2 >= 140\r
-#    define BOOST_PP_ITERATION_2 140\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 139 && BOOST_PP_ITERATION_START_2 >= 139\r
-#    define BOOST_PP_ITERATION_2 139\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 138 && BOOST_PP_ITERATION_START_2 >= 138\r
-#    define BOOST_PP_ITERATION_2 138\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 137 && BOOST_PP_ITERATION_START_2 >= 137\r
-#    define BOOST_PP_ITERATION_2 137\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 136 && BOOST_PP_ITERATION_START_2 >= 136\r
-#    define BOOST_PP_ITERATION_2 136\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 135 && BOOST_PP_ITERATION_START_2 >= 135\r
-#    define BOOST_PP_ITERATION_2 135\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 134 && BOOST_PP_ITERATION_START_2 >= 134\r
-#    define BOOST_PP_ITERATION_2 134\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 133 && BOOST_PP_ITERATION_START_2 >= 133\r
-#    define BOOST_PP_ITERATION_2 133\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 132 && BOOST_PP_ITERATION_START_2 >= 132\r
-#    define BOOST_PP_ITERATION_2 132\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 131 && BOOST_PP_ITERATION_START_2 >= 131\r
-#    define BOOST_PP_ITERATION_2 131\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 130 && BOOST_PP_ITERATION_START_2 >= 130\r
-#    define BOOST_PP_ITERATION_2 130\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 129 && BOOST_PP_ITERATION_START_2 >= 129\r
-#    define BOOST_PP_ITERATION_2 129\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 128 && BOOST_PP_ITERATION_START_2 >= 128\r
-#    define BOOST_PP_ITERATION_2 128\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 127 && BOOST_PP_ITERATION_START_2 >= 127\r
-#    define BOOST_PP_ITERATION_2 127\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 126 && BOOST_PP_ITERATION_START_2 >= 126\r
-#    define BOOST_PP_ITERATION_2 126\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 125 && BOOST_PP_ITERATION_START_2 >= 125\r
-#    define BOOST_PP_ITERATION_2 125\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 124 && BOOST_PP_ITERATION_START_2 >= 124\r
-#    define BOOST_PP_ITERATION_2 124\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 123 && BOOST_PP_ITERATION_START_2 >= 123\r
-#    define BOOST_PP_ITERATION_2 123\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 122 && BOOST_PP_ITERATION_START_2 >= 122\r
-#    define BOOST_PP_ITERATION_2 122\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 121 && BOOST_PP_ITERATION_START_2 >= 121\r
-#    define BOOST_PP_ITERATION_2 121\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 120 && BOOST_PP_ITERATION_START_2 >= 120\r
-#    define BOOST_PP_ITERATION_2 120\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 119 && BOOST_PP_ITERATION_START_2 >= 119\r
-#    define BOOST_PP_ITERATION_2 119\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 118 && BOOST_PP_ITERATION_START_2 >= 118\r
-#    define BOOST_PP_ITERATION_2 118\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 117 && BOOST_PP_ITERATION_START_2 >= 117\r
-#    define BOOST_PP_ITERATION_2 117\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 116 && BOOST_PP_ITERATION_START_2 >= 116\r
-#    define BOOST_PP_ITERATION_2 116\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 115 && BOOST_PP_ITERATION_START_2 >= 115\r
-#    define BOOST_PP_ITERATION_2 115\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 114 && BOOST_PP_ITERATION_START_2 >= 114\r
-#    define BOOST_PP_ITERATION_2 114\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 113 && BOOST_PP_ITERATION_START_2 >= 113\r
-#    define BOOST_PP_ITERATION_2 113\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 112 && BOOST_PP_ITERATION_START_2 >= 112\r
-#    define BOOST_PP_ITERATION_2 112\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 111 && BOOST_PP_ITERATION_START_2 >= 111\r
-#    define BOOST_PP_ITERATION_2 111\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 110 && BOOST_PP_ITERATION_START_2 >= 110\r
-#    define BOOST_PP_ITERATION_2 110\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 109 && BOOST_PP_ITERATION_START_2 >= 109\r
-#    define BOOST_PP_ITERATION_2 109\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 108 && BOOST_PP_ITERATION_START_2 >= 108\r
-#    define BOOST_PP_ITERATION_2 108\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 107 && BOOST_PP_ITERATION_START_2 >= 107\r
-#    define BOOST_PP_ITERATION_2 107\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 106 && BOOST_PP_ITERATION_START_2 >= 106\r
-#    define BOOST_PP_ITERATION_2 106\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 105 && BOOST_PP_ITERATION_START_2 >= 105\r
-#    define BOOST_PP_ITERATION_2 105\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 104 && BOOST_PP_ITERATION_START_2 >= 104\r
-#    define BOOST_PP_ITERATION_2 104\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 103 && BOOST_PP_ITERATION_START_2 >= 103\r
-#    define BOOST_PP_ITERATION_2 103\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 102 && BOOST_PP_ITERATION_START_2 >= 102\r
-#    define BOOST_PP_ITERATION_2 102\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 101 && BOOST_PP_ITERATION_START_2 >= 101\r
-#    define BOOST_PP_ITERATION_2 101\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 100 && BOOST_PP_ITERATION_START_2 >= 100\r
-#    define BOOST_PP_ITERATION_2 100\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 99 && BOOST_PP_ITERATION_START_2 >= 99\r
-#    define BOOST_PP_ITERATION_2 99\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 98 && BOOST_PP_ITERATION_START_2 >= 98\r
-#    define BOOST_PP_ITERATION_2 98\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 97 && BOOST_PP_ITERATION_START_2 >= 97\r
-#    define BOOST_PP_ITERATION_2 97\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 96 && BOOST_PP_ITERATION_START_2 >= 96\r
-#    define BOOST_PP_ITERATION_2 96\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 95 && BOOST_PP_ITERATION_START_2 >= 95\r
-#    define BOOST_PP_ITERATION_2 95\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 94 && BOOST_PP_ITERATION_START_2 >= 94\r
-#    define BOOST_PP_ITERATION_2 94\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 93 && BOOST_PP_ITERATION_START_2 >= 93\r
-#    define BOOST_PP_ITERATION_2 93\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 92 && BOOST_PP_ITERATION_START_2 >= 92\r
-#    define BOOST_PP_ITERATION_2 92\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 91 && BOOST_PP_ITERATION_START_2 >= 91\r
-#    define BOOST_PP_ITERATION_2 91\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 90 && BOOST_PP_ITERATION_START_2 >= 90\r
-#    define BOOST_PP_ITERATION_2 90\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 89 && BOOST_PP_ITERATION_START_2 >= 89\r
-#    define BOOST_PP_ITERATION_2 89\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 88 && BOOST_PP_ITERATION_START_2 >= 88\r
-#    define BOOST_PP_ITERATION_2 88\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 87 && BOOST_PP_ITERATION_START_2 >= 87\r
-#    define BOOST_PP_ITERATION_2 87\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 86 && BOOST_PP_ITERATION_START_2 >= 86\r
-#    define BOOST_PP_ITERATION_2 86\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 85 && BOOST_PP_ITERATION_START_2 >= 85\r
-#    define BOOST_PP_ITERATION_2 85\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 84 && BOOST_PP_ITERATION_START_2 >= 84\r
-#    define BOOST_PP_ITERATION_2 84\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 83 && BOOST_PP_ITERATION_START_2 >= 83\r
-#    define BOOST_PP_ITERATION_2 83\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 82 && BOOST_PP_ITERATION_START_2 >= 82\r
-#    define BOOST_PP_ITERATION_2 82\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 81 && BOOST_PP_ITERATION_START_2 >= 81\r
-#    define BOOST_PP_ITERATION_2 81\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 80 && BOOST_PP_ITERATION_START_2 >= 80\r
-#    define BOOST_PP_ITERATION_2 80\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 79 && BOOST_PP_ITERATION_START_2 >= 79\r
-#    define BOOST_PP_ITERATION_2 79\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 78 && BOOST_PP_ITERATION_START_2 >= 78\r
-#    define BOOST_PP_ITERATION_2 78\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 77 && BOOST_PP_ITERATION_START_2 >= 77\r
-#    define BOOST_PP_ITERATION_2 77\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 76 && BOOST_PP_ITERATION_START_2 >= 76\r
-#    define BOOST_PP_ITERATION_2 76\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 75 && BOOST_PP_ITERATION_START_2 >= 75\r
-#    define BOOST_PP_ITERATION_2 75\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 74 && BOOST_PP_ITERATION_START_2 >= 74\r
-#    define BOOST_PP_ITERATION_2 74\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 73 && BOOST_PP_ITERATION_START_2 >= 73\r
-#    define BOOST_PP_ITERATION_2 73\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 72 && BOOST_PP_ITERATION_START_2 >= 72\r
-#    define BOOST_PP_ITERATION_2 72\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 71 && BOOST_PP_ITERATION_START_2 >= 71\r
-#    define BOOST_PP_ITERATION_2 71\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 70 && BOOST_PP_ITERATION_START_2 >= 70\r
-#    define BOOST_PP_ITERATION_2 70\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 69 && BOOST_PP_ITERATION_START_2 >= 69\r
-#    define BOOST_PP_ITERATION_2 69\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 68 && BOOST_PP_ITERATION_START_2 >= 68\r
-#    define BOOST_PP_ITERATION_2 68\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 67 && BOOST_PP_ITERATION_START_2 >= 67\r
-#    define BOOST_PP_ITERATION_2 67\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 66 && BOOST_PP_ITERATION_START_2 >= 66\r
-#    define BOOST_PP_ITERATION_2 66\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 65 && BOOST_PP_ITERATION_START_2 >= 65\r
-#    define BOOST_PP_ITERATION_2 65\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 64 && BOOST_PP_ITERATION_START_2 >= 64\r
-#    define BOOST_PP_ITERATION_2 64\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 63 && BOOST_PP_ITERATION_START_2 >= 63\r
-#    define BOOST_PP_ITERATION_2 63\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 62 && BOOST_PP_ITERATION_START_2 >= 62\r
-#    define BOOST_PP_ITERATION_2 62\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 61 && BOOST_PP_ITERATION_START_2 >= 61\r
-#    define BOOST_PP_ITERATION_2 61\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 60 && BOOST_PP_ITERATION_START_2 >= 60\r
-#    define BOOST_PP_ITERATION_2 60\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 59 && BOOST_PP_ITERATION_START_2 >= 59\r
-#    define BOOST_PP_ITERATION_2 59\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 58 && BOOST_PP_ITERATION_START_2 >= 58\r
-#    define BOOST_PP_ITERATION_2 58\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 57 && BOOST_PP_ITERATION_START_2 >= 57\r
-#    define BOOST_PP_ITERATION_2 57\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 56 && BOOST_PP_ITERATION_START_2 >= 56\r
-#    define BOOST_PP_ITERATION_2 56\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 55 && BOOST_PP_ITERATION_START_2 >= 55\r
-#    define BOOST_PP_ITERATION_2 55\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 54 && BOOST_PP_ITERATION_START_2 >= 54\r
-#    define BOOST_PP_ITERATION_2 54\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 53 && BOOST_PP_ITERATION_START_2 >= 53\r
-#    define BOOST_PP_ITERATION_2 53\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 52 && BOOST_PP_ITERATION_START_2 >= 52\r
-#    define BOOST_PP_ITERATION_2 52\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 51 && BOOST_PP_ITERATION_START_2 >= 51\r
-#    define BOOST_PP_ITERATION_2 51\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 50 && BOOST_PP_ITERATION_START_2 >= 50\r
-#    define BOOST_PP_ITERATION_2 50\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 49 && BOOST_PP_ITERATION_START_2 >= 49\r
-#    define BOOST_PP_ITERATION_2 49\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 48 && BOOST_PP_ITERATION_START_2 >= 48\r
-#    define BOOST_PP_ITERATION_2 48\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 47 && BOOST_PP_ITERATION_START_2 >= 47\r
-#    define BOOST_PP_ITERATION_2 47\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 46 && BOOST_PP_ITERATION_START_2 >= 46\r
-#    define BOOST_PP_ITERATION_2 46\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 45 && BOOST_PP_ITERATION_START_2 >= 45\r
-#    define BOOST_PP_ITERATION_2 45\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 44 && BOOST_PP_ITERATION_START_2 >= 44\r
-#    define BOOST_PP_ITERATION_2 44\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 43 && BOOST_PP_ITERATION_START_2 >= 43\r
-#    define BOOST_PP_ITERATION_2 43\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 42 && BOOST_PP_ITERATION_START_2 >= 42\r
-#    define BOOST_PP_ITERATION_2 42\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 41 && BOOST_PP_ITERATION_START_2 >= 41\r
-#    define BOOST_PP_ITERATION_2 41\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 40 && BOOST_PP_ITERATION_START_2 >= 40\r
-#    define BOOST_PP_ITERATION_2 40\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 39 && BOOST_PP_ITERATION_START_2 >= 39\r
-#    define BOOST_PP_ITERATION_2 39\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 38 && BOOST_PP_ITERATION_START_2 >= 38\r
-#    define BOOST_PP_ITERATION_2 38\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 37 && BOOST_PP_ITERATION_START_2 >= 37\r
-#    define BOOST_PP_ITERATION_2 37\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 36 && BOOST_PP_ITERATION_START_2 >= 36\r
-#    define BOOST_PP_ITERATION_2 36\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 35 && BOOST_PP_ITERATION_START_2 >= 35\r
-#    define BOOST_PP_ITERATION_2 35\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 34 && BOOST_PP_ITERATION_START_2 >= 34\r
-#    define BOOST_PP_ITERATION_2 34\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 33 && BOOST_PP_ITERATION_START_2 >= 33\r
-#    define BOOST_PP_ITERATION_2 33\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 32 && BOOST_PP_ITERATION_START_2 >= 32\r
-#    define BOOST_PP_ITERATION_2 32\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 31 && BOOST_PP_ITERATION_START_2 >= 31\r
-#    define BOOST_PP_ITERATION_2 31\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 30 && BOOST_PP_ITERATION_START_2 >= 30\r
-#    define BOOST_PP_ITERATION_2 30\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 29 && BOOST_PP_ITERATION_START_2 >= 29\r
-#    define BOOST_PP_ITERATION_2 29\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 28 && BOOST_PP_ITERATION_START_2 >= 28\r
-#    define BOOST_PP_ITERATION_2 28\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 27 && BOOST_PP_ITERATION_START_2 >= 27\r
-#    define BOOST_PP_ITERATION_2 27\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 26 && BOOST_PP_ITERATION_START_2 >= 26\r
-#    define BOOST_PP_ITERATION_2 26\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 25 && BOOST_PP_ITERATION_START_2 >= 25\r
-#    define BOOST_PP_ITERATION_2 25\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 24 && BOOST_PP_ITERATION_START_2 >= 24\r
-#    define BOOST_PP_ITERATION_2 24\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 23 && BOOST_PP_ITERATION_START_2 >= 23\r
-#    define BOOST_PP_ITERATION_2 23\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 22 && BOOST_PP_ITERATION_START_2 >= 22\r
-#    define BOOST_PP_ITERATION_2 22\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 21 && BOOST_PP_ITERATION_START_2 >= 21\r
-#    define BOOST_PP_ITERATION_2 21\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 20 && BOOST_PP_ITERATION_START_2 >= 20\r
-#    define BOOST_PP_ITERATION_2 20\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 19 && BOOST_PP_ITERATION_START_2 >= 19\r
-#    define BOOST_PP_ITERATION_2 19\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 18 && BOOST_PP_ITERATION_START_2 >= 18\r
-#    define BOOST_PP_ITERATION_2 18\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 17 && BOOST_PP_ITERATION_START_2 >= 17\r
-#    define BOOST_PP_ITERATION_2 17\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 16 && BOOST_PP_ITERATION_START_2 >= 16\r
-#    define BOOST_PP_ITERATION_2 16\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 15 && BOOST_PP_ITERATION_START_2 >= 15\r
-#    define BOOST_PP_ITERATION_2 15\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 14 && BOOST_PP_ITERATION_START_2 >= 14\r
-#    define BOOST_PP_ITERATION_2 14\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 13 && BOOST_PP_ITERATION_START_2 >= 13\r
-#    define BOOST_PP_ITERATION_2 13\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 12 && BOOST_PP_ITERATION_START_2 >= 12\r
-#    define BOOST_PP_ITERATION_2 12\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 11 && BOOST_PP_ITERATION_START_2 >= 11\r
-#    define BOOST_PP_ITERATION_2 11\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 10 && BOOST_PP_ITERATION_START_2 >= 10\r
-#    define BOOST_PP_ITERATION_2 10\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 9 && BOOST_PP_ITERATION_START_2 >= 9\r
-#    define BOOST_PP_ITERATION_2 9\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 8 && BOOST_PP_ITERATION_START_2 >= 8\r
-#    define BOOST_PP_ITERATION_2 8\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 7 && BOOST_PP_ITERATION_START_2 >= 7\r
-#    define BOOST_PP_ITERATION_2 7\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 6 && BOOST_PP_ITERATION_START_2 >= 6\r
-#    define BOOST_PP_ITERATION_2 6\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 5 && BOOST_PP_ITERATION_START_2 >= 5\r
-#    define BOOST_PP_ITERATION_2 5\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 4 && BOOST_PP_ITERATION_START_2 >= 4\r
-#    define BOOST_PP_ITERATION_2 4\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 3 && BOOST_PP_ITERATION_START_2 >= 3\r
-#    define BOOST_PP_ITERATION_2 3\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 2 && BOOST_PP_ITERATION_START_2 >= 2\r
-#    define BOOST_PP_ITERATION_2 2\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 1 && BOOST_PP_ITERATION_START_2 >= 1\r
-#    define BOOST_PP_ITERATION_2 1\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_2 <= 0 && BOOST_PP_ITERATION_START_2 >= 0\r
-#    define BOOST_PP_ITERATION_2 0\r
-#    include BOOST_PP_FILENAME_2\r
-#    undef BOOST_PP_ITERATION_2\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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 BOOST_PP_ITERATION_FINISH_2 <= 256 && BOOST_PP_ITERATION_START_2 >= 256
+#    define BOOST_PP_ITERATION_2 256
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 255 && BOOST_PP_ITERATION_START_2 >= 255
+#    define BOOST_PP_ITERATION_2 255
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 254 && BOOST_PP_ITERATION_START_2 >= 254
+#    define BOOST_PP_ITERATION_2 254
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 253 && BOOST_PP_ITERATION_START_2 >= 253
+#    define BOOST_PP_ITERATION_2 253
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 252 && BOOST_PP_ITERATION_START_2 >= 252
+#    define BOOST_PP_ITERATION_2 252
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 251 && BOOST_PP_ITERATION_START_2 >= 251
+#    define BOOST_PP_ITERATION_2 251
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 250 && BOOST_PP_ITERATION_START_2 >= 250
+#    define BOOST_PP_ITERATION_2 250
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 249 && BOOST_PP_ITERATION_START_2 >= 249
+#    define BOOST_PP_ITERATION_2 249
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 248 && BOOST_PP_ITERATION_START_2 >= 248
+#    define BOOST_PP_ITERATION_2 248
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 247 && BOOST_PP_ITERATION_START_2 >= 247
+#    define BOOST_PP_ITERATION_2 247
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 246 && BOOST_PP_ITERATION_START_2 >= 246
+#    define BOOST_PP_ITERATION_2 246
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 245 && BOOST_PP_ITERATION_START_2 >= 245
+#    define BOOST_PP_ITERATION_2 245
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 244 && BOOST_PP_ITERATION_START_2 >= 244
+#    define BOOST_PP_ITERATION_2 244
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 243 && BOOST_PP_ITERATION_START_2 >= 243
+#    define BOOST_PP_ITERATION_2 243
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 242 && BOOST_PP_ITERATION_START_2 >= 242
+#    define BOOST_PP_ITERATION_2 242
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 241 && BOOST_PP_ITERATION_START_2 >= 241
+#    define BOOST_PP_ITERATION_2 241
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 240 && BOOST_PP_ITERATION_START_2 >= 240
+#    define BOOST_PP_ITERATION_2 240
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 239 && BOOST_PP_ITERATION_START_2 >= 239
+#    define BOOST_PP_ITERATION_2 239
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 238 && BOOST_PP_ITERATION_START_2 >= 238
+#    define BOOST_PP_ITERATION_2 238
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 237 && BOOST_PP_ITERATION_START_2 >= 237
+#    define BOOST_PP_ITERATION_2 237
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 236 && BOOST_PP_ITERATION_START_2 >= 236
+#    define BOOST_PP_ITERATION_2 236
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 235 && BOOST_PP_ITERATION_START_2 >= 235
+#    define BOOST_PP_ITERATION_2 235
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 234 && BOOST_PP_ITERATION_START_2 >= 234
+#    define BOOST_PP_ITERATION_2 234
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 233 && BOOST_PP_ITERATION_START_2 >= 233
+#    define BOOST_PP_ITERATION_2 233
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 232 && BOOST_PP_ITERATION_START_2 >= 232
+#    define BOOST_PP_ITERATION_2 232
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 231 && BOOST_PP_ITERATION_START_2 >= 231
+#    define BOOST_PP_ITERATION_2 231
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 230 && BOOST_PP_ITERATION_START_2 >= 230
+#    define BOOST_PP_ITERATION_2 230
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 229 && BOOST_PP_ITERATION_START_2 >= 229
+#    define BOOST_PP_ITERATION_2 229
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 228 && BOOST_PP_ITERATION_START_2 >= 228
+#    define BOOST_PP_ITERATION_2 228
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 227 && BOOST_PP_ITERATION_START_2 >= 227
+#    define BOOST_PP_ITERATION_2 227
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 226 && BOOST_PP_ITERATION_START_2 >= 226
+#    define BOOST_PP_ITERATION_2 226
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 225 && BOOST_PP_ITERATION_START_2 >= 225
+#    define BOOST_PP_ITERATION_2 225
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 224 && BOOST_PP_ITERATION_START_2 >= 224
+#    define BOOST_PP_ITERATION_2 224
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 223 && BOOST_PP_ITERATION_START_2 >= 223
+#    define BOOST_PP_ITERATION_2 223
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 222 && BOOST_PP_ITERATION_START_2 >= 222
+#    define BOOST_PP_ITERATION_2 222
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 221 && BOOST_PP_ITERATION_START_2 >= 221
+#    define BOOST_PP_ITERATION_2 221
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 220 && BOOST_PP_ITERATION_START_2 >= 220
+#    define BOOST_PP_ITERATION_2 220
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 219 && BOOST_PP_ITERATION_START_2 >= 219
+#    define BOOST_PP_ITERATION_2 219
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 218 && BOOST_PP_ITERATION_START_2 >= 218
+#    define BOOST_PP_ITERATION_2 218
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 217 && BOOST_PP_ITERATION_START_2 >= 217
+#    define BOOST_PP_ITERATION_2 217
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 216 && BOOST_PP_ITERATION_START_2 >= 216
+#    define BOOST_PP_ITERATION_2 216
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 215 && BOOST_PP_ITERATION_START_2 >= 215
+#    define BOOST_PP_ITERATION_2 215
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 214 && BOOST_PP_ITERATION_START_2 >= 214
+#    define BOOST_PP_ITERATION_2 214
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 213 && BOOST_PP_ITERATION_START_2 >= 213
+#    define BOOST_PP_ITERATION_2 213
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 212 && BOOST_PP_ITERATION_START_2 >= 212
+#    define BOOST_PP_ITERATION_2 212
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 211 && BOOST_PP_ITERATION_START_2 >= 211
+#    define BOOST_PP_ITERATION_2 211
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 210 && BOOST_PP_ITERATION_START_2 >= 210
+#    define BOOST_PP_ITERATION_2 210
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 209 && BOOST_PP_ITERATION_START_2 >= 209
+#    define BOOST_PP_ITERATION_2 209
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 208 && BOOST_PP_ITERATION_START_2 >= 208
+#    define BOOST_PP_ITERATION_2 208
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 207 && BOOST_PP_ITERATION_START_2 >= 207
+#    define BOOST_PP_ITERATION_2 207
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 206 && BOOST_PP_ITERATION_START_2 >= 206
+#    define BOOST_PP_ITERATION_2 206
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 205 && BOOST_PP_ITERATION_START_2 >= 205
+#    define BOOST_PP_ITERATION_2 205
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 204 && BOOST_PP_ITERATION_START_2 >= 204
+#    define BOOST_PP_ITERATION_2 204
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 203 && BOOST_PP_ITERATION_START_2 >= 203
+#    define BOOST_PP_ITERATION_2 203
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 202 && BOOST_PP_ITERATION_START_2 >= 202
+#    define BOOST_PP_ITERATION_2 202
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 201 && BOOST_PP_ITERATION_START_2 >= 201
+#    define BOOST_PP_ITERATION_2 201
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 200 && BOOST_PP_ITERATION_START_2 >= 200
+#    define BOOST_PP_ITERATION_2 200
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 199 && BOOST_PP_ITERATION_START_2 >= 199
+#    define BOOST_PP_ITERATION_2 199
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 198 && BOOST_PP_ITERATION_START_2 >= 198
+#    define BOOST_PP_ITERATION_2 198
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 197 && BOOST_PP_ITERATION_START_2 >= 197
+#    define BOOST_PP_ITERATION_2 197
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 196 && BOOST_PP_ITERATION_START_2 >= 196
+#    define BOOST_PP_ITERATION_2 196
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 195 && BOOST_PP_ITERATION_START_2 >= 195
+#    define BOOST_PP_ITERATION_2 195
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 194 && BOOST_PP_ITERATION_START_2 >= 194
+#    define BOOST_PP_ITERATION_2 194
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 193 && BOOST_PP_ITERATION_START_2 >= 193
+#    define BOOST_PP_ITERATION_2 193
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 192 && BOOST_PP_ITERATION_START_2 >= 192
+#    define BOOST_PP_ITERATION_2 192
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 191 && BOOST_PP_ITERATION_START_2 >= 191
+#    define BOOST_PP_ITERATION_2 191
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 190 && BOOST_PP_ITERATION_START_2 >= 190
+#    define BOOST_PP_ITERATION_2 190
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 189 && BOOST_PP_ITERATION_START_2 >= 189
+#    define BOOST_PP_ITERATION_2 189
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 188 && BOOST_PP_ITERATION_START_2 >= 188
+#    define BOOST_PP_ITERATION_2 188
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 187 && BOOST_PP_ITERATION_START_2 >= 187
+#    define BOOST_PP_ITERATION_2 187
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 186 && BOOST_PP_ITERATION_START_2 >= 186
+#    define BOOST_PP_ITERATION_2 186
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 185 && BOOST_PP_ITERATION_START_2 >= 185
+#    define BOOST_PP_ITERATION_2 185
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 184 && BOOST_PP_ITERATION_START_2 >= 184
+#    define BOOST_PP_ITERATION_2 184
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 183 && BOOST_PP_ITERATION_START_2 >= 183
+#    define BOOST_PP_ITERATION_2 183
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 182 && BOOST_PP_ITERATION_START_2 >= 182
+#    define BOOST_PP_ITERATION_2 182
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 181 && BOOST_PP_ITERATION_START_2 >= 181
+#    define BOOST_PP_ITERATION_2 181
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 180 && BOOST_PP_ITERATION_START_2 >= 180
+#    define BOOST_PP_ITERATION_2 180
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 179 && BOOST_PP_ITERATION_START_2 >= 179
+#    define BOOST_PP_ITERATION_2 179
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 178 && BOOST_PP_ITERATION_START_2 >= 178
+#    define BOOST_PP_ITERATION_2 178
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 177 && BOOST_PP_ITERATION_START_2 >= 177
+#    define BOOST_PP_ITERATION_2 177
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 176 && BOOST_PP_ITERATION_START_2 >= 176
+#    define BOOST_PP_ITERATION_2 176
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 175 && BOOST_PP_ITERATION_START_2 >= 175
+#    define BOOST_PP_ITERATION_2 175
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 174 && BOOST_PP_ITERATION_START_2 >= 174
+#    define BOOST_PP_ITERATION_2 174
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 173 && BOOST_PP_ITERATION_START_2 >= 173
+#    define BOOST_PP_ITERATION_2 173
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 172 && BOOST_PP_ITERATION_START_2 >= 172
+#    define BOOST_PP_ITERATION_2 172
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 171 && BOOST_PP_ITERATION_START_2 >= 171
+#    define BOOST_PP_ITERATION_2 171
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 170 && BOOST_PP_ITERATION_START_2 >= 170
+#    define BOOST_PP_ITERATION_2 170
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 169 && BOOST_PP_ITERATION_START_2 >= 169
+#    define BOOST_PP_ITERATION_2 169
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 168 && BOOST_PP_ITERATION_START_2 >= 168
+#    define BOOST_PP_ITERATION_2 168
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 167 && BOOST_PP_ITERATION_START_2 >= 167
+#    define BOOST_PP_ITERATION_2 167
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 166 && BOOST_PP_ITERATION_START_2 >= 166
+#    define BOOST_PP_ITERATION_2 166
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 165 && BOOST_PP_ITERATION_START_2 >= 165
+#    define BOOST_PP_ITERATION_2 165
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 164 && BOOST_PP_ITERATION_START_2 >= 164
+#    define BOOST_PP_ITERATION_2 164
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 163 && BOOST_PP_ITERATION_START_2 >= 163
+#    define BOOST_PP_ITERATION_2 163
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 162 && BOOST_PP_ITERATION_START_2 >= 162
+#    define BOOST_PP_ITERATION_2 162
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 161 && BOOST_PP_ITERATION_START_2 >= 161
+#    define BOOST_PP_ITERATION_2 161
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 160 && BOOST_PP_ITERATION_START_2 >= 160
+#    define BOOST_PP_ITERATION_2 160
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 159 && BOOST_PP_ITERATION_START_2 >= 159
+#    define BOOST_PP_ITERATION_2 159
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 158 && BOOST_PP_ITERATION_START_2 >= 158
+#    define BOOST_PP_ITERATION_2 158
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 157 && BOOST_PP_ITERATION_START_2 >= 157
+#    define BOOST_PP_ITERATION_2 157
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 156 && BOOST_PP_ITERATION_START_2 >= 156
+#    define BOOST_PP_ITERATION_2 156
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 155 && BOOST_PP_ITERATION_START_2 >= 155
+#    define BOOST_PP_ITERATION_2 155
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 154 && BOOST_PP_ITERATION_START_2 >= 154
+#    define BOOST_PP_ITERATION_2 154
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 153 && BOOST_PP_ITERATION_START_2 >= 153
+#    define BOOST_PP_ITERATION_2 153
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 152 && BOOST_PP_ITERATION_START_2 >= 152
+#    define BOOST_PP_ITERATION_2 152
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 151 && BOOST_PP_ITERATION_START_2 >= 151
+#    define BOOST_PP_ITERATION_2 151
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 150 && BOOST_PP_ITERATION_START_2 >= 150
+#    define BOOST_PP_ITERATION_2 150
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 149 && BOOST_PP_ITERATION_START_2 >= 149
+#    define BOOST_PP_ITERATION_2 149
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 148 && BOOST_PP_ITERATION_START_2 >= 148
+#    define BOOST_PP_ITERATION_2 148
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 147 && BOOST_PP_ITERATION_START_2 >= 147
+#    define BOOST_PP_ITERATION_2 147
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 146 && BOOST_PP_ITERATION_START_2 >= 146
+#    define BOOST_PP_ITERATION_2 146
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 145 && BOOST_PP_ITERATION_START_2 >= 145
+#    define BOOST_PP_ITERATION_2 145
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 144 && BOOST_PP_ITERATION_START_2 >= 144
+#    define BOOST_PP_ITERATION_2 144
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 143 && BOOST_PP_ITERATION_START_2 >= 143
+#    define BOOST_PP_ITERATION_2 143
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 142 && BOOST_PP_ITERATION_START_2 >= 142
+#    define BOOST_PP_ITERATION_2 142
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 141 && BOOST_PP_ITERATION_START_2 >= 141
+#    define BOOST_PP_ITERATION_2 141
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 140 && BOOST_PP_ITERATION_START_2 >= 140
+#    define BOOST_PP_ITERATION_2 140
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 139 && BOOST_PP_ITERATION_START_2 >= 139
+#    define BOOST_PP_ITERATION_2 139
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 138 && BOOST_PP_ITERATION_START_2 >= 138
+#    define BOOST_PP_ITERATION_2 138
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 137 && BOOST_PP_ITERATION_START_2 >= 137
+#    define BOOST_PP_ITERATION_2 137
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 136 && BOOST_PP_ITERATION_START_2 >= 136
+#    define BOOST_PP_ITERATION_2 136
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 135 && BOOST_PP_ITERATION_START_2 >= 135
+#    define BOOST_PP_ITERATION_2 135
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 134 && BOOST_PP_ITERATION_START_2 >= 134
+#    define BOOST_PP_ITERATION_2 134
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 133 && BOOST_PP_ITERATION_START_2 >= 133
+#    define BOOST_PP_ITERATION_2 133
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 132 && BOOST_PP_ITERATION_START_2 >= 132
+#    define BOOST_PP_ITERATION_2 132
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 131 && BOOST_PP_ITERATION_START_2 >= 131
+#    define BOOST_PP_ITERATION_2 131
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 130 && BOOST_PP_ITERATION_START_2 >= 130
+#    define BOOST_PP_ITERATION_2 130
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 129 && BOOST_PP_ITERATION_START_2 >= 129
+#    define BOOST_PP_ITERATION_2 129
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 128 && BOOST_PP_ITERATION_START_2 >= 128
+#    define BOOST_PP_ITERATION_2 128
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 127 && BOOST_PP_ITERATION_START_2 >= 127
+#    define BOOST_PP_ITERATION_2 127
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 126 && BOOST_PP_ITERATION_START_2 >= 126
+#    define BOOST_PP_ITERATION_2 126
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 125 && BOOST_PP_ITERATION_START_2 >= 125
+#    define BOOST_PP_ITERATION_2 125
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 124 && BOOST_PP_ITERATION_START_2 >= 124
+#    define BOOST_PP_ITERATION_2 124
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 123 && BOOST_PP_ITERATION_START_2 >= 123
+#    define BOOST_PP_ITERATION_2 123
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 122 && BOOST_PP_ITERATION_START_2 >= 122
+#    define BOOST_PP_ITERATION_2 122
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 121 && BOOST_PP_ITERATION_START_2 >= 121
+#    define BOOST_PP_ITERATION_2 121
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 120 && BOOST_PP_ITERATION_START_2 >= 120
+#    define BOOST_PP_ITERATION_2 120
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 119 && BOOST_PP_ITERATION_START_2 >= 119
+#    define BOOST_PP_ITERATION_2 119
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 118 && BOOST_PP_ITERATION_START_2 >= 118
+#    define BOOST_PP_ITERATION_2 118
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 117 && BOOST_PP_ITERATION_START_2 >= 117
+#    define BOOST_PP_ITERATION_2 117
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 116 && BOOST_PP_ITERATION_START_2 >= 116
+#    define BOOST_PP_ITERATION_2 116
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 115 && BOOST_PP_ITERATION_START_2 >= 115
+#    define BOOST_PP_ITERATION_2 115
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 114 && BOOST_PP_ITERATION_START_2 >= 114
+#    define BOOST_PP_ITERATION_2 114
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 113 && BOOST_PP_ITERATION_START_2 >= 113
+#    define BOOST_PP_ITERATION_2 113
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 112 && BOOST_PP_ITERATION_START_2 >= 112
+#    define BOOST_PP_ITERATION_2 112
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 111 && BOOST_PP_ITERATION_START_2 >= 111
+#    define BOOST_PP_ITERATION_2 111
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 110 && BOOST_PP_ITERATION_START_2 >= 110
+#    define BOOST_PP_ITERATION_2 110
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 109 && BOOST_PP_ITERATION_START_2 >= 109
+#    define BOOST_PP_ITERATION_2 109
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 108 && BOOST_PP_ITERATION_START_2 >= 108
+#    define BOOST_PP_ITERATION_2 108
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 107 && BOOST_PP_ITERATION_START_2 >= 107
+#    define BOOST_PP_ITERATION_2 107
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 106 && BOOST_PP_ITERATION_START_2 >= 106
+#    define BOOST_PP_ITERATION_2 106
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 105 && BOOST_PP_ITERATION_START_2 >= 105
+#    define BOOST_PP_ITERATION_2 105
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 104 && BOOST_PP_ITERATION_START_2 >= 104
+#    define BOOST_PP_ITERATION_2 104
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 103 && BOOST_PP_ITERATION_START_2 >= 103
+#    define BOOST_PP_ITERATION_2 103
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 102 && BOOST_PP_ITERATION_START_2 >= 102
+#    define BOOST_PP_ITERATION_2 102
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 101 && BOOST_PP_ITERATION_START_2 >= 101
+#    define BOOST_PP_ITERATION_2 101
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 100 && BOOST_PP_ITERATION_START_2 >= 100
+#    define BOOST_PP_ITERATION_2 100
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 99 && BOOST_PP_ITERATION_START_2 >= 99
+#    define BOOST_PP_ITERATION_2 99
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 98 && BOOST_PP_ITERATION_START_2 >= 98
+#    define BOOST_PP_ITERATION_2 98
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 97 && BOOST_PP_ITERATION_START_2 >= 97
+#    define BOOST_PP_ITERATION_2 97
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 96 && BOOST_PP_ITERATION_START_2 >= 96
+#    define BOOST_PP_ITERATION_2 96
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 95 && BOOST_PP_ITERATION_START_2 >= 95
+#    define BOOST_PP_ITERATION_2 95
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 94 && BOOST_PP_ITERATION_START_2 >= 94
+#    define BOOST_PP_ITERATION_2 94
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 93 && BOOST_PP_ITERATION_START_2 >= 93
+#    define BOOST_PP_ITERATION_2 93
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 92 && BOOST_PP_ITERATION_START_2 >= 92
+#    define BOOST_PP_ITERATION_2 92
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 91 && BOOST_PP_ITERATION_START_2 >= 91
+#    define BOOST_PP_ITERATION_2 91
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 90 && BOOST_PP_ITERATION_START_2 >= 90
+#    define BOOST_PP_ITERATION_2 90
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 89 && BOOST_PP_ITERATION_START_2 >= 89
+#    define BOOST_PP_ITERATION_2 89
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 88 && BOOST_PP_ITERATION_START_2 >= 88
+#    define BOOST_PP_ITERATION_2 88
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 87 && BOOST_PP_ITERATION_START_2 >= 87
+#    define BOOST_PP_ITERATION_2 87
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 86 && BOOST_PP_ITERATION_START_2 >= 86
+#    define BOOST_PP_ITERATION_2 86
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 85 && BOOST_PP_ITERATION_START_2 >= 85
+#    define BOOST_PP_ITERATION_2 85
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 84 && BOOST_PP_ITERATION_START_2 >= 84
+#    define BOOST_PP_ITERATION_2 84
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 83 && BOOST_PP_ITERATION_START_2 >= 83
+#    define BOOST_PP_ITERATION_2 83
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 82 && BOOST_PP_ITERATION_START_2 >= 82
+#    define BOOST_PP_ITERATION_2 82
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 81 && BOOST_PP_ITERATION_START_2 >= 81
+#    define BOOST_PP_ITERATION_2 81
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 80 && BOOST_PP_ITERATION_START_2 >= 80
+#    define BOOST_PP_ITERATION_2 80
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 79 && BOOST_PP_ITERATION_START_2 >= 79
+#    define BOOST_PP_ITERATION_2 79
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 78 && BOOST_PP_ITERATION_START_2 >= 78
+#    define BOOST_PP_ITERATION_2 78
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 77 && BOOST_PP_ITERATION_START_2 >= 77
+#    define BOOST_PP_ITERATION_2 77
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 76 && BOOST_PP_ITERATION_START_2 >= 76
+#    define BOOST_PP_ITERATION_2 76
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 75 && BOOST_PP_ITERATION_START_2 >= 75
+#    define BOOST_PP_ITERATION_2 75
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 74 && BOOST_PP_ITERATION_START_2 >= 74
+#    define BOOST_PP_ITERATION_2 74
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 73 && BOOST_PP_ITERATION_START_2 >= 73
+#    define BOOST_PP_ITERATION_2 73
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 72 && BOOST_PP_ITERATION_START_2 >= 72
+#    define BOOST_PP_ITERATION_2 72
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 71 && BOOST_PP_ITERATION_START_2 >= 71
+#    define BOOST_PP_ITERATION_2 71
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 70 && BOOST_PP_ITERATION_START_2 >= 70
+#    define BOOST_PP_ITERATION_2 70
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 69 && BOOST_PP_ITERATION_START_2 >= 69
+#    define BOOST_PP_ITERATION_2 69
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 68 && BOOST_PP_ITERATION_START_2 >= 68
+#    define BOOST_PP_ITERATION_2 68
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 67 && BOOST_PP_ITERATION_START_2 >= 67
+#    define BOOST_PP_ITERATION_2 67
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 66 && BOOST_PP_ITERATION_START_2 >= 66
+#    define BOOST_PP_ITERATION_2 66
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 65 && BOOST_PP_ITERATION_START_2 >= 65
+#    define BOOST_PP_ITERATION_2 65
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 64 && BOOST_PP_ITERATION_START_2 >= 64
+#    define BOOST_PP_ITERATION_2 64
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 63 && BOOST_PP_ITERATION_START_2 >= 63
+#    define BOOST_PP_ITERATION_2 63
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 62 && BOOST_PP_ITERATION_START_2 >= 62
+#    define BOOST_PP_ITERATION_2 62
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 61 && BOOST_PP_ITERATION_START_2 >= 61
+#    define BOOST_PP_ITERATION_2 61
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 60 && BOOST_PP_ITERATION_START_2 >= 60
+#    define BOOST_PP_ITERATION_2 60
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 59 && BOOST_PP_ITERATION_START_2 >= 59
+#    define BOOST_PP_ITERATION_2 59
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 58 && BOOST_PP_ITERATION_START_2 >= 58
+#    define BOOST_PP_ITERATION_2 58
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 57 && BOOST_PP_ITERATION_START_2 >= 57
+#    define BOOST_PP_ITERATION_2 57
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 56 && BOOST_PP_ITERATION_START_2 >= 56
+#    define BOOST_PP_ITERATION_2 56
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 55 && BOOST_PP_ITERATION_START_2 >= 55
+#    define BOOST_PP_ITERATION_2 55
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 54 && BOOST_PP_ITERATION_START_2 >= 54
+#    define BOOST_PP_ITERATION_2 54
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 53 && BOOST_PP_ITERATION_START_2 >= 53
+#    define BOOST_PP_ITERATION_2 53
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 52 && BOOST_PP_ITERATION_START_2 >= 52
+#    define BOOST_PP_ITERATION_2 52
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 51 && BOOST_PP_ITERATION_START_2 >= 51
+#    define BOOST_PP_ITERATION_2 51
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 50 && BOOST_PP_ITERATION_START_2 >= 50
+#    define BOOST_PP_ITERATION_2 50
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 49 && BOOST_PP_ITERATION_START_2 >= 49
+#    define BOOST_PP_ITERATION_2 49
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 48 && BOOST_PP_ITERATION_START_2 >= 48
+#    define BOOST_PP_ITERATION_2 48
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 47 && BOOST_PP_ITERATION_START_2 >= 47
+#    define BOOST_PP_ITERATION_2 47
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 46 && BOOST_PP_ITERATION_START_2 >= 46
+#    define BOOST_PP_ITERATION_2 46
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 45 && BOOST_PP_ITERATION_START_2 >= 45
+#    define BOOST_PP_ITERATION_2 45
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 44 && BOOST_PP_ITERATION_START_2 >= 44
+#    define BOOST_PP_ITERATION_2 44
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 43 && BOOST_PP_ITERATION_START_2 >= 43
+#    define BOOST_PP_ITERATION_2 43
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 42 && BOOST_PP_ITERATION_START_2 >= 42
+#    define BOOST_PP_ITERATION_2 42
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 41 && BOOST_PP_ITERATION_START_2 >= 41
+#    define BOOST_PP_ITERATION_2 41
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 40 && BOOST_PP_ITERATION_START_2 >= 40
+#    define BOOST_PP_ITERATION_2 40
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 39 && BOOST_PP_ITERATION_START_2 >= 39
+#    define BOOST_PP_ITERATION_2 39
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 38 && BOOST_PP_ITERATION_START_2 >= 38
+#    define BOOST_PP_ITERATION_2 38
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 37 && BOOST_PP_ITERATION_START_2 >= 37
+#    define BOOST_PP_ITERATION_2 37
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 36 && BOOST_PP_ITERATION_START_2 >= 36
+#    define BOOST_PP_ITERATION_2 36
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 35 && BOOST_PP_ITERATION_START_2 >= 35
+#    define BOOST_PP_ITERATION_2 35
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 34 && BOOST_PP_ITERATION_START_2 >= 34
+#    define BOOST_PP_ITERATION_2 34
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 33 && BOOST_PP_ITERATION_START_2 >= 33
+#    define BOOST_PP_ITERATION_2 33
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 32 && BOOST_PP_ITERATION_START_2 >= 32
+#    define BOOST_PP_ITERATION_2 32
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 31 && BOOST_PP_ITERATION_START_2 >= 31
+#    define BOOST_PP_ITERATION_2 31
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 30 && BOOST_PP_ITERATION_START_2 >= 30
+#    define BOOST_PP_ITERATION_2 30
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 29 && BOOST_PP_ITERATION_START_2 >= 29
+#    define BOOST_PP_ITERATION_2 29
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 28 && BOOST_PP_ITERATION_START_2 >= 28
+#    define BOOST_PP_ITERATION_2 28
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 27 && BOOST_PP_ITERATION_START_2 >= 27
+#    define BOOST_PP_ITERATION_2 27
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 26 && BOOST_PP_ITERATION_START_2 >= 26
+#    define BOOST_PP_ITERATION_2 26
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 25 && BOOST_PP_ITERATION_START_2 >= 25
+#    define BOOST_PP_ITERATION_2 25
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 24 && BOOST_PP_ITERATION_START_2 >= 24
+#    define BOOST_PP_ITERATION_2 24
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 23 && BOOST_PP_ITERATION_START_2 >= 23
+#    define BOOST_PP_ITERATION_2 23
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 22 && BOOST_PP_ITERATION_START_2 >= 22
+#    define BOOST_PP_ITERATION_2 22
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 21 && BOOST_PP_ITERATION_START_2 >= 21
+#    define BOOST_PP_ITERATION_2 21
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 20 && BOOST_PP_ITERATION_START_2 >= 20
+#    define BOOST_PP_ITERATION_2 20
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 19 && BOOST_PP_ITERATION_START_2 >= 19
+#    define BOOST_PP_ITERATION_2 19
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 18 && BOOST_PP_ITERATION_START_2 >= 18
+#    define BOOST_PP_ITERATION_2 18
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 17 && BOOST_PP_ITERATION_START_2 >= 17
+#    define BOOST_PP_ITERATION_2 17
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 16 && BOOST_PP_ITERATION_START_2 >= 16
+#    define BOOST_PP_ITERATION_2 16
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 15 && BOOST_PP_ITERATION_START_2 >= 15
+#    define BOOST_PP_ITERATION_2 15
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 14 && BOOST_PP_ITERATION_START_2 >= 14
+#    define BOOST_PP_ITERATION_2 14
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 13 && BOOST_PP_ITERATION_START_2 >= 13
+#    define BOOST_PP_ITERATION_2 13
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 12 && BOOST_PP_ITERATION_START_2 >= 12
+#    define BOOST_PP_ITERATION_2 12
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 11 && BOOST_PP_ITERATION_START_2 >= 11
+#    define BOOST_PP_ITERATION_2 11
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 10 && BOOST_PP_ITERATION_START_2 >= 10
+#    define BOOST_PP_ITERATION_2 10
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 9 && BOOST_PP_ITERATION_START_2 >= 9
+#    define BOOST_PP_ITERATION_2 9
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 8 && BOOST_PP_ITERATION_START_2 >= 8
+#    define BOOST_PP_ITERATION_2 8
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 7 && BOOST_PP_ITERATION_START_2 >= 7
+#    define BOOST_PP_ITERATION_2 7
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 6 && BOOST_PP_ITERATION_START_2 >= 6
+#    define BOOST_PP_ITERATION_2 6
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 5 && BOOST_PP_ITERATION_START_2 >= 5
+#    define BOOST_PP_ITERATION_2 5
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 4 && BOOST_PP_ITERATION_START_2 >= 4
+#    define BOOST_PP_ITERATION_2 4
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 3 && BOOST_PP_ITERATION_START_2 >= 3
+#    define BOOST_PP_ITERATION_2 3
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 2 && BOOST_PP_ITERATION_START_2 >= 2
+#    define BOOST_PP_ITERATION_2 2
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 1 && BOOST_PP_ITERATION_START_2 >= 1
+#    define BOOST_PP_ITERATION_2 1
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
+# if BOOST_PP_ITERATION_FINISH_2 <= 0 && BOOST_PP_ITERATION_START_2 >= 0
+#    define BOOST_PP_ITERATION_2 0
+#    include BOOST_PP_FILENAME_2
+#    undef BOOST_PP_ITERATION_2
+# endif
index 189f77c582327cc500a5deeb140ffa8660b2339d..0a655149c9c766d88783198e9969bf5e8275c9f4 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 256 && BOOST_PP_ITERATION_START_3 >= 256\r
-#    define BOOST_PP_ITERATION_3 256\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 255 && BOOST_PP_ITERATION_START_3 >= 255\r
-#    define BOOST_PP_ITERATION_3 255\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 254 && BOOST_PP_ITERATION_START_3 >= 254\r
-#    define BOOST_PP_ITERATION_3 254\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 253 && BOOST_PP_ITERATION_START_3 >= 253\r
-#    define BOOST_PP_ITERATION_3 253\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 252 && BOOST_PP_ITERATION_START_3 >= 252\r
-#    define BOOST_PP_ITERATION_3 252\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 251 && BOOST_PP_ITERATION_START_3 >= 251\r
-#    define BOOST_PP_ITERATION_3 251\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 250 && BOOST_PP_ITERATION_START_3 >= 250\r
-#    define BOOST_PP_ITERATION_3 250\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 249 && BOOST_PP_ITERATION_START_3 >= 249\r
-#    define BOOST_PP_ITERATION_3 249\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 248 && BOOST_PP_ITERATION_START_3 >= 248\r
-#    define BOOST_PP_ITERATION_3 248\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 247 && BOOST_PP_ITERATION_START_3 >= 247\r
-#    define BOOST_PP_ITERATION_3 247\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 246 && BOOST_PP_ITERATION_START_3 >= 246\r
-#    define BOOST_PP_ITERATION_3 246\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 245 && BOOST_PP_ITERATION_START_3 >= 245\r
-#    define BOOST_PP_ITERATION_3 245\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 244 && BOOST_PP_ITERATION_START_3 >= 244\r
-#    define BOOST_PP_ITERATION_3 244\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 243 && BOOST_PP_ITERATION_START_3 >= 243\r
-#    define BOOST_PP_ITERATION_3 243\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 242 && BOOST_PP_ITERATION_START_3 >= 242\r
-#    define BOOST_PP_ITERATION_3 242\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 241 && BOOST_PP_ITERATION_START_3 >= 241\r
-#    define BOOST_PP_ITERATION_3 241\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 240 && BOOST_PP_ITERATION_START_3 >= 240\r
-#    define BOOST_PP_ITERATION_3 240\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 239 && BOOST_PP_ITERATION_START_3 >= 239\r
-#    define BOOST_PP_ITERATION_3 239\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 238 && BOOST_PP_ITERATION_START_3 >= 238\r
-#    define BOOST_PP_ITERATION_3 238\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 237 && BOOST_PP_ITERATION_START_3 >= 237\r
-#    define BOOST_PP_ITERATION_3 237\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 236 && BOOST_PP_ITERATION_START_3 >= 236\r
-#    define BOOST_PP_ITERATION_3 236\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 235 && BOOST_PP_ITERATION_START_3 >= 235\r
-#    define BOOST_PP_ITERATION_3 235\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 234 && BOOST_PP_ITERATION_START_3 >= 234\r
-#    define BOOST_PP_ITERATION_3 234\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 233 && BOOST_PP_ITERATION_START_3 >= 233\r
-#    define BOOST_PP_ITERATION_3 233\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 232 && BOOST_PP_ITERATION_START_3 >= 232\r
-#    define BOOST_PP_ITERATION_3 232\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 231 && BOOST_PP_ITERATION_START_3 >= 231\r
-#    define BOOST_PP_ITERATION_3 231\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 230 && BOOST_PP_ITERATION_START_3 >= 230\r
-#    define BOOST_PP_ITERATION_3 230\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 229 && BOOST_PP_ITERATION_START_3 >= 229\r
-#    define BOOST_PP_ITERATION_3 229\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 228 && BOOST_PP_ITERATION_START_3 >= 228\r
-#    define BOOST_PP_ITERATION_3 228\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 227 && BOOST_PP_ITERATION_START_3 >= 227\r
-#    define BOOST_PP_ITERATION_3 227\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 226 && BOOST_PP_ITERATION_START_3 >= 226\r
-#    define BOOST_PP_ITERATION_3 226\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 225 && BOOST_PP_ITERATION_START_3 >= 225\r
-#    define BOOST_PP_ITERATION_3 225\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 224 && BOOST_PP_ITERATION_START_3 >= 224\r
-#    define BOOST_PP_ITERATION_3 224\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 223 && BOOST_PP_ITERATION_START_3 >= 223\r
-#    define BOOST_PP_ITERATION_3 223\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 222 && BOOST_PP_ITERATION_START_3 >= 222\r
-#    define BOOST_PP_ITERATION_3 222\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 221 && BOOST_PP_ITERATION_START_3 >= 221\r
-#    define BOOST_PP_ITERATION_3 221\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 220 && BOOST_PP_ITERATION_START_3 >= 220\r
-#    define BOOST_PP_ITERATION_3 220\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 219 && BOOST_PP_ITERATION_START_3 >= 219\r
-#    define BOOST_PP_ITERATION_3 219\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 218 && BOOST_PP_ITERATION_START_3 >= 218\r
-#    define BOOST_PP_ITERATION_3 218\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 217 && BOOST_PP_ITERATION_START_3 >= 217\r
-#    define BOOST_PP_ITERATION_3 217\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 216 && BOOST_PP_ITERATION_START_3 >= 216\r
-#    define BOOST_PP_ITERATION_3 216\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 215 && BOOST_PP_ITERATION_START_3 >= 215\r
-#    define BOOST_PP_ITERATION_3 215\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 214 && BOOST_PP_ITERATION_START_3 >= 214\r
-#    define BOOST_PP_ITERATION_3 214\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 213 && BOOST_PP_ITERATION_START_3 >= 213\r
-#    define BOOST_PP_ITERATION_3 213\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 212 && BOOST_PP_ITERATION_START_3 >= 212\r
-#    define BOOST_PP_ITERATION_3 212\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 211 && BOOST_PP_ITERATION_START_3 >= 211\r
-#    define BOOST_PP_ITERATION_3 211\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 210 && BOOST_PP_ITERATION_START_3 >= 210\r
-#    define BOOST_PP_ITERATION_3 210\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 209 && BOOST_PP_ITERATION_START_3 >= 209\r
-#    define BOOST_PP_ITERATION_3 209\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 208 && BOOST_PP_ITERATION_START_3 >= 208\r
-#    define BOOST_PP_ITERATION_3 208\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 207 && BOOST_PP_ITERATION_START_3 >= 207\r
-#    define BOOST_PP_ITERATION_3 207\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 206 && BOOST_PP_ITERATION_START_3 >= 206\r
-#    define BOOST_PP_ITERATION_3 206\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 205 && BOOST_PP_ITERATION_START_3 >= 205\r
-#    define BOOST_PP_ITERATION_3 205\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 204 && BOOST_PP_ITERATION_START_3 >= 204\r
-#    define BOOST_PP_ITERATION_3 204\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 203 && BOOST_PP_ITERATION_START_3 >= 203\r
-#    define BOOST_PP_ITERATION_3 203\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 202 && BOOST_PP_ITERATION_START_3 >= 202\r
-#    define BOOST_PP_ITERATION_3 202\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 201 && BOOST_PP_ITERATION_START_3 >= 201\r
-#    define BOOST_PP_ITERATION_3 201\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 200 && BOOST_PP_ITERATION_START_3 >= 200\r
-#    define BOOST_PP_ITERATION_3 200\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 199 && BOOST_PP_ITERATION_START_3 >= 199\r
-#    define BOOST_PP_ITERATION_3 199\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 198 && BOOST_PP_ITERATION_START_3 >= 198\r
-#    define BOOST_PP_ITERATION_3 198\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 197 && BOOST_PP_ITERATION_START_3 >= 197\r
-#    define BOOST_PP_ITERATION_3 197\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 196 && BOOST_PP_ITERATION_START_3 >= 196\r
-#    define BOOST_PP_ITERATION_3 196\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 195 && BOOST_PP_ITERATION_START_3 >= 195\r
-#    define BOOST_PP_ITERATION_3 195\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 194 && BOOST_PP_ITERATION_START_3 >= 194\r
-#    define BOOST_PP_ITERATION_3 194\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 193 && BOOST_PP_ITERATION_START_3 >= 193\r
-#    define BOOST_PP_ITERATION_3 193\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 192 && BOOST_PP_ITERATION_START_3 >= 192\r
-#    define BOOST_PP_ITERATION_3 192\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 191 && BOOST_PP_ITERATION_START_3 >= 191\r
-#    define BOOST_PP_ITERATION_3 191\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 190 && BOOST_PP_ITERATION_START_3 >= 190\r
-#    define BOOST_PP_ITERATION_3 190\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 189 && BOOST_PP_ITERATION_START_3 >= 189\r
-#    define BOOST_PP_ITERATION_3 189\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 188 && BOOST_PP_ITERATION_START_3 >= 188\r
-#    define BOOST_PP_ITERATION_3 188\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 187 && BOOST_PP_ITERATION_START_3 >= 187\r
-#    define BOOST_PP_ITERATION_3 187\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 186 && BOOST_PP_ITERATION_START_3 >= 186\r
-#    define BOOST_PP_ITERATION_3 186\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 185 && BOOST_PP_ITERATION_START_3 >= 185\r
-#    define BOOST_PP_ITERATION_3 185\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 184 && BOOST_PP_ITERATION_START_3 >= 184\r
-#    define BOOST_PP_ITERATION_3 184\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 183 && BOOST_PP_ITERATION_START_3 >= 183\r
-#    define BOOST_PP_ITERATION_3 183\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 182 && BOOST_PP_ITERATION_START_3 >= 182\r
-#    define BOOST_PP_ITERATION_3 182\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 181 && BOOST_PP_ITERATION_START_3 >= 181\r
-#    define BOOST_PP_ITERATION_3 181\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 180 && BOOST_PP_ITERATION_START_3 >= 180\r
-#    define BOOST_PP_ITERATION_3 180\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 179 && BOOST_PP_ITERATION_START_3 >= 179\r
-#    define BOOST_PP_ITERATION_3 179\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 178 && BOOST_PP_ITERATION_START_3 >= 178\r
-#    define BOOST_PP_ITERATION_3 178\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 177 && BOOST_PP_ITERATION_START_3 >= 177\r
-#    define BOOST_PP_ITERATION_3 177\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 176 && BOOST_PP_ITERATION_START_3 >= 176\r
-#    define BOOST_PP_ITERATION_3 176\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 175 && BOOST_PP_ITERATION_START_3 >= 175\r
-#    define BOOST_PP_ITERATION_3 175\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 174 && BOOST_PP_ITERATION_START_3 >= 174\r
-#    define BOOST_PP_ITERATION_3 174\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 173 && BOOST_PP_ITERATION_START_3 >= 173\r
-#    define BOOST_PP_ITERATION_3 173\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 172 && BOOST_PP_ITERATION_START_3 >= 172\r
-#    define BOOST_PP_ITERATION_3 172\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 171 && BOOST_PP_ITERATION_START_3 >= 171\r
-#    define BOOST_PP_ITERATION_3 171\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 170 && BOOST_PP_ITERATION_START_3 >= 170\r
-#    define BOOST_PP_ITERATION_3 170\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 169 && BOOST_PP_ITERATION_START_3 >= 169\r
-#    define BOOST_PP_ITERATION_3 169\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 168 && BOOST_PP_ITERATION_START_3 >= 168\r
-#    define BOOST_PP_ITERATION_3 168\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 167 && BOOST_PP_ITERATION_START_3 >= 167\r
-#    define BOOST_PP_ITERATION_3 167\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 166 && BOOST_PP_ITERATION_START_3 >= 166\r
-#    define BOOST_PP_ITERATION_3 166\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 165 && BOOST_PP_ITERATION_START_3 >= 165\r
-#    define BOOST_PP_ITERATION_3 165\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 164 && BOOST_PP_ITERATION_START_3 >= 164\r
-#    define BOOST_PP_ITERATION_3 164\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 163 && BOOST_PP_ITERATION_START_3 >= 163\r
-#    define BOOST_PP_ITERATION_3 163\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 162 && BOOST_PP_ITERATION_START_3 >= 162\r
-#    define BOOST_PP_ITERATION_3 162\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 161 && BOOST_PP_ITERATION_START_3 >= 161\r
-#    define BOOST_PP_ITERATION_3 161\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 160 && BOOST_PP_ITERATION_START_3 >= 160\r
-#    define BOOST_PP_ITERATION_3 160\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 159 && BOOST_PP_ITERATION_START_3 >= 159\r
-#    define BOOST_PP_ITERATION_3 159\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 158 && BOOST_PP_ITERATION_START_3 >= 158\r
-#    define BOOST_PP_ITERATION_3 158\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 157 && BOOST_PP_ITERATION_START_3 >= 157\r
-#    define BOOST_PP_ITERATION_3 157\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 156 && BOOST_PP_ITERATION_START_3 >= 156\r
-#    define BOOST_PP_ITERATION_3 156\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 155 && BOOST_PP_ITERATION_START_3 >= 155\r
-#    define BOOST_PP_ITERATION_3 155\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 154 && BOOST_PP_ITERATION_START_3 >= 154\r
-#    define BOOST_PP_ITERATION_3 154\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 153 && BOOST_PP_ITERATION_START_3 >= 153\r
-#    define BOOST_PP_ITERATION_3 153\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 152 && BOOST_PP_ITERATION_START_3 >= 152\r
-#    define BOOST_PP_ITERATION_3 152\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 151 && BOOST_PP_ITERATION_START_3 >= 151\r
-#    define BOOST_PP_ITERATION_3 151\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 150 && BOOST_PP_ITERATION_START_3 >= 150\r
-#    define BOOST_PP_ITERATION_3 150\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 149 && BOOST_PP_ITERATION_START_3 >= 149\r
-#    define BOOST_PP_ITERATION_3 149\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 148 && BOOST_PP_ITERATION_START_3 >= 148\r
-#    define BOOST_PP_ITERATION_3 148\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 147 && BOOST_PP_ITERATION_START_3 >= 147\r
-#    define BOOST_PP_ITERATION_3 147\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 146 && BOOST_PP_ITERATION_START_3 >= 146\r
-#    define BOOST_PP_ITERATION_3 146\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 145 && BOOST_PP_ITERATION_START_3 >= 145\r
-#    define BOOST_PP_ITERATION_3 145\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 144 && BOOST_PP_ITERATION_START_3 >= 144\r
-#    define BOOST_PP_ITERATION_3 144\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 143 && BOOST_PP_ITERATION_START_3 >= 143\r
-#    define BOOST_PP_ITERATION_3 143\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 142 && BOOST_PP_ITERATION_START_3 >= 142\r
-#    define BOOST_PP_ITERATION_3 142\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 141 && BOOST_PP_ITERATION_START_3 >= 141\r
-#    define BOOST_PP_ITERATION_3 141\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 140 && BOOST_PP_ITERATION_START_3 >= 140\r
-#    define BOOST_PP_ITERATION_3 140\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 139 && BOOST_PP_ITERATION_START_3 >= 139\r
-#    define BOOST_PP_ITERATION_3 139\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 138 && BOOST_PP_ITERATION_START_3 >= 138\r
-#    define BOOST_PP_ITERATION_3 138\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 137 && BOOST_PP_ITERATION_START_3 >= 137\r
-#    define BOOST_PP_ITERATION_3 137\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 136 && BOOST_PP_ITERATION_START_3 >= 136\r
-#    define BOOST_PP_ITERATION_3 136\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 135 && BOOST_PP_ITERATION_START_3 >= 135\r
-#    define BOOST_PP_ITERATION_3 135\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 134 && BOOST_PP_ITERATION_START_3 >= 134\r
-#    define BOOST_PP_ITERATION_3 134\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 133 && BOOST_PP_ITERATION_START_3 >= 133\r
-#    define BOOST_PP_ITERATION_3 133\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 132 && BOOST_PP_ITERATION_START_3 >= 132\r
-#    define BOOST_PP_ITERATION_3 132\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 131 && BOOST_PP_ITERATION_START_3 >= 131\r
-#    define BOOST_PP_ITERATION_3 131\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 130 && BOOST_PP_ITERATION_START_3 >= 130\r
-#    define BOOST_PP_ITERATION_3 130\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 129 && BOOST_PP_ITERATION_START_3 >= 129\r
-#    define BOOST_PP_ITERATION_3 129\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 128 && BOOST_PP_ITERATION_START_3 >= 128\r
-#    define BOOST_PP_ITERATION_3 128\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 127 && BOOST_PP_ITERATION_START_3 >= 127\r
-#    define BOOST_PP_ITERATION_3 127\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 126 && BOOST_PP_ITERATION_START_3 >= 126\r
-#    define BOOST_PP_ITERATION_3 126\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 125 && BOOST_PP_ITERATION_START_3 >= 125\r
-#    define BOOST_PP_ITERATION_3 125\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 124 && BOOST_PP_ITERATION_START_3 >= 124\r
-#    define BOOST_PP_ITERATION_3 124\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 123 && BOOST_PP_ITERATION_START_3 >= 123\r
-#    define BOOST_PP_ITERATION_3 123\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 122 && BOOST_PP_ITERATION_START_3 >= 122\r
-#    define BOOST_PP_ITERATION_3 122\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 121 && BOOST_PP_ITERATION_START_3 >= 121\r
-#    define BOOST_PP_ITERATION_3 121\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 120 && BOOST_PP_ITERATION_START_3 >= 120\r
-#    define BOOST_PP_ITERATION_3 120\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 119 && BOOST_PP_ITERATION_START_3 >= 119\r
-#    define BOOST_PP_ITERATION_3 119\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 118 && BOOST_PP_ITERATION_START_3 >= 118\r
-#    define BOOST_PP_ITERATION_3 118\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 117 && BOOST_PP_ITERATION_START_3 >= 117\r
-#    define BOOST_PP_ITERATION_3 117\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 116 && BOOST_PP_ITERATION_START_3 >= 116\r
-#    define BOOST_PP_ITERATION_3 116\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 115 && BOOST_PP_ITERATION_START_3 >= 115\r
-#    define BOOST_PP_ITERATION_3 115\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 114 && BOOST_PP_ITERATION_START_3 >= 114\r
-#    define BOOST_PP_ITERATION_3 114\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 113 && BOOST_PP_ITERATION_START_3 >= 113\r
-#    define BOOST_PP_ITERATION_3 113\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 112 && BOOST_PP_ITERATION_START_3 >= 112\r
-#    define BOOST_PP_ITERATION_3 112\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 111 && BOOST_PP_ITERATION_START_3 >= 111\r
-#    define BOOST_PP_ITERATION_3 111\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 110 && BOOST_PP_ITERATION_START_3 >= 110\r
-#    define BOOST_PP_ITERATION_3 110\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 109 && BOOST_PP_ITERATION_START_3 >= 109\r
-#    define BOOST_PP_ITERATION_3 109\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 108 && BOOST_PP_ITERATION_START_3 >= 108\r
-#    define BOOST_PP_ITERATION_3 108\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 107 && BOOST_PP_ITERATION_START_3 >= 107\r
-#    define BOOST_PP_ITERATION_3 107\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 106 && BOOST_PP_ITERATION_START_3 >= 106\r
-#    define BOOST_PP_ITERATION_3 106\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 105 && BOOST_PP_ITERATION_START_3 >= 105\r
-#    define BOOST_PP_ITERATION_3 105\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 104 && BOOST_PP_ITERATION_START_3 >= 104\r
-#    define BOOST_PP_ITERATION_3 104\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 103 && BOOST_PP_ITERATION_START_3 >= 103\r
-#    define BOOST_PP_ITERATION_3 103\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 102 && BOOST_PP_ITERATION_START_3 >= 102\r
-#    define BOOST_PP_ITERATION_3 102\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 101 && BOOST_PP_ITERATION_START_3 >= 101\r
-#    define BOOST_PP_ITERATION_3 101\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 100 && BOOST_PP_ITERATION_START_3 >= 100\r
-#    define BOOST_PP_ITERATION_3 100\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 99 && BOOST_PP_ITERATION_START_3 >= 99\r
-#    define BOOST_PP_ITERATION_3 99\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 98 && BOOST_PP_ITERATION_START_3 >= 98\r
-#    define BOOST_PP_ITERATION_3 98\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 97 && BOOST_PP_ITERATION_START_3 >= 97\r
-#    define BOOST_PP_ITERATION_3 97\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 96 && BOOST_PP_ITERATION_START_3 >= 96\r
-#    define BOOST_PP_ITERATION_3 96\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 95 && BOOST_PP_ITERATION_START_3 >= 95\r
-#    define BOOST_PP_ITERATION_3 95\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 94 && BOOST_PP_ITERATION_START_3 >= 94\r
-#    define BOOST_PP_ITERATION_3 94\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 93 && BOOST_PP_ITERATION_START_3 >= 93\r
-#    define BOOST_PP_ITERATION_3 93\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 92 && BOOST_PP_ITERATION_START_3 >= 92\r
-#    define BOOST_PP_ITERATION_3 92\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 91 && BOOST_PP_ITERATION_START_3 >= 91\r
-#    define BOOST_PP_ITERATION_3 91\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 90 && BOOST_PP_ITERATION_START_3 >= 90\r
-#    define BOOST_PP_ITERATION_3 90\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 89 && BOOST_PP_ITERATION_START_3 >= 89\r
-#    define BOOST_PP_ITERATION_3 89\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 88 && BOOST_PP_ITERATION_START_3 >= 88\r
-#    define BOOST_PP_ITERATION_3 88\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 87 && BOOST_PP_ITERATION_START_3 >= 87\r
-#    define BOOST_PP_ITERATION_3 87\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 86 && BOOST_PP_ITERATION_START_3 >= 86\r
-#    define BOOST_PP_ITERATION_3 86\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 85 && BOOST_PP_ITERATION_START_3 >= 85\r
-#    define BOOST_PP_ITERATION_3 85\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 84 && BOOST_PP_ITERATION_START_3 >= 84\r
-#    define BOOST_PP_ITERATION_3 84\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 83 && BOOST_PP_ITERATION_START_3 >= 83\r
-#    define BOOST_PP_ITERATION_3 83\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 82 && BOOST_PP_ITERATION_START_3 >= 82\r
-#    define BOOST_PP_ITERATION_3 82\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 81 && BOOST_PP_ITERATION_START_3 >= 81\r
-#    define BOOST_PP_ITERATION_3 81\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 80 && BOOST_PP_ITERATION_START_3 >= 80\r
-#    define BOOST_PP_ITERATION_3 80\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 79 && BOOST_PP_ITERATION_START_3 >= 79\r
-#    define BOOST_PP_ITERATION_3 79\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 78 && BOOST_PP_ITERATION_START_3 >= 78\r
-#    define BOOST_PP_ITERATION_3 78\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 77 && BOOST_PP_ITERATION_START_3 >= 77\r
-#    define BOOST_PP_ITERATION_3 77\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 76 && BOOST_PP_ITERATION_START_3 >= 76\r
-#    define BOOST_PP_ITERATION_3 76\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 75 && BOOST_PP_ITERATION_START_3 >= 75\r
-#    define BOOST_PP_ITERATION_3 75\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 74 && BOOST_PP_ITERATION_START_3 >= 74\r
-#    define BOOST_PP_ITERATION_3 74\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 73 && BOOST_PP_ITERATION_START_3 >= 73\r
-#    define BOOST_PP_ITERATION_3 73\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 72 && BOOST_PP_ITERATION_START_3 >= 72\r
-#    define BOOST_PP_ITERATION_3 72\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 71 && BOOST_PP_ITERATION_START_3 >= 71\r
-#    define BOOST_PP_ITERATION_3 71\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 70 && BOOST_PP_ITERATION_START_3 >= 70\r
-#    define BOOST_PP_ITERATION_3 70\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 69 && BOOST_PP_ITERATION_START_3 >= 69\r
-#    define BOOST_PP_ITERATION_3 69\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 68 && BOOST_PP_ITERATION_START_3 >= 68\r
-#    define BOOST_PP_ITERATION_3 68\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 67 && BOOST_PP_ITERATION_START_3 >= 67\r
-#    define BOOST_PP_ITERATION_3 67\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 66 && BOOST_PP_ITERATION_START_3 >= 66\r
-#    define BOOST_PP_ITERATION_3 66\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 65 && BOOST_PP_ITERATION_START_3 >= 65\r
-#    define BOOST_PP_ITERATION_3 65\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 64 && BOOST_PP_ITERATION_START_3 >= 64\r
-#    define BOOST_PP_ITERATION_3 64\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 63 && BOOST_PP_ITERATION_START_3 >= 63\r
-#    define BOOST_PP_ITERATION_3 63\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 62 && BOOST_PP_ITERATION_START_3 >= 62\r
-#    define BOOST_PP_ITERATION_3 62\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 61 && BOOST_PP_ITERATION_START_3 >= 61\r
-#    define BOOST_PP_ITERATION_3 61\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 60 && BOOST_PP_ITERATION_START_3 >= 60\r
-#    define BOOST_PP_ITERATION_3 60\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 59 && BOOST_PP_ITERATION_START_3 >= 59\r
-#    define BOOST_PP_ITERATION_3 59\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 58 && BOOST_PP_ITERATION_START_3 >= 58\r
-#    define BOOST_PP_ITERATION_3 58\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 57 && BOOST_PP_ITERATION_START_3 >= 57\r
-#    define BOOST_PP_ITERATION_3 57\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 56 && BOOST_PP_ITERATION_START_3 >= 56\r
-#    define BOOST_PP_ITERATION_3 56\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 55 && BOOST_PP_ITERATION_START_3 >= 55\r
-#    define BOOST_PP_ITERATION_3 55\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 54 && BOOST_PP_ITERATION_START_3 >= 54\r
-#    define BOOST_PP_ITERATION_3 54\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 53 && BOOST_PP_ITERATION_START_3 >= 53\r
-#    define BOOST_PP_ITERATION_3 53\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 52 && BOOST_PP_ITERATION_START_3 >= 52\r
-#    define BOOST_PP_ITERATION_3 52\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 51 && BOOST_PP_ITERATION_START_3 >= 51\r
-#    define BOOST_PP_ITERATION_3 51\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 50 && BOOST_PP_ITERATION_START_3 >= 50\r
-#    define BOOST_PP_ITERATION_3 50\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 49 && BOOST_PP_ITERATION_START_3 >= 49\r
-#    define BOOST_PP_ITERATION_3 49\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 48 && BOOST_PP_ITERATION_START_3 >= 48\r
-#    define BOOST_PP_ITERATION_3 48\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 47 && BOOST_PP_ITERATION_START_3 >= 47\r
-#    define BOOST_PP_ITERATION_3 47\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 46 && BOOST_PP_ITERATION_START_3 >= 46\r
-#    define BOOST_PP_ITERATION_3 46\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 45 && BOOST_PP_ITERATION_START_3 >= 45\r
-#    define BOOST_PP_ITERATION_3 45\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 44 && BOOST_PP_ITERATION_START_3 >= 44\r
-#    define BOOST_PP_ITERATION_3 44\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 43 && BOOST_PP_ITERATION_START_3 >= 43\r
-#    define BOOST_PP_ITERATION_3 43\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 42 && BOOST_PP_ITERATION_START_3 >= 42\r
-#    define BOOST_PP_ITERATION_3 42\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 41 && BOOST_PP_ITERATION_START_3 >= 41\r
-#    define BOOST_PP_ITERATION_3 41\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 40 && BOOST_PP_ITERATION_START_3 >= 40\r
-#    define BOOST_PP_ITERATION_3 40\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 39 && BOOST_PP_ITERATION_START_3 >= 39\r
-#    define BOOST_PP_ITERATION_3 39\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 38 && BOOST_PP_ITERATION_START_3 >= 38\r
-#    define BOOST_PP_ITERATION_3 38\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 37 && BOOST_PP_ITERATION_START_3 >= 37\r
-#    define BOOST_PP_ITERATION_3 37\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 36 && BOOST_PP_ITERATION_START_3 >= 36\r
-#    define BOOST_PP_ITERATION_3 36\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 35 && BOOST_PP_ITERATION_START_3 >= 35\r
-#    define BOOST_PP_ITERATION_3 35\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 34 && BOOST_PP_ITERATION_START_3 >= 34\r
-#    define BOOST_PP_ITERATION_3 34\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 33 && BOOST_PP_ITERATION_START_3 >= 33\r
-#    define BOOST_PP_ITERATION_3 33\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 32 && BOOST_PP_ITERATION_START_3 >= 32\r
-#    define BOOST_PP_ITERATION_3 32\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 31 && BOOST_PP_ITERATION_START_3 >= 31\r
-#    define BOOST_PP_ITERATION_3 31\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 30 && BOOST_PP_ITERATION_START_3 >= 30\r
-#    define BOOST_PP_ITERATION_3 30\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 29 && BOOST_PP_ITERATION_START_3 >= 29\r
-#    define BOOST_PP_ITERATION_3 29\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 28 && BOOST_PP_ITERATION_START_3 >= 28\r
-#    define BOOST_PP_ITERATION_3 28\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 27 && BOOST_PP_ITERATION_START_3 >= 27\r
-#    define BOOST_PP_ITERATION_3 27\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 26 && BOOST_PP_ITERATION_START_3 >= 26\r
-#    define BOOST_PP_ITERATION_3 26\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 25 && BOOST_PP_ITERATION_START_3 >= 25\r
-#    define BOOST_PP_ITERATION_3 25\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 24 && BOOST_PP_ITERATION_START_3 >= 24\r
-#    define BOOST_PP_ITERATION_3 24\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 23 && BOOST_PP_ITERATION_START_3 >= 23\r
-#    define BOOST_PP_ITERATION_3 23\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 22 && BOOST_PP_ITERATION_START_3 >= 22\r
-#    define BOOST_PP_ITERATION_3 22\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 21 && BOOST_PP_ITERATION_START_3 >= 21\r
-#    define BOOST_PP_ITERATION_3 21\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 20 && BOOST_PP_ITERATION_START_3 >= 20\r
-#    define BOOST_PP_ITERATION_3 20\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 19 && BOOST_PP_ITERATION_START_3 >= 19\r
-#    define BOOST_PP_ITERATION_3 19\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 18 && BOOST_PP_ITERATION_START_3 >= 18\r
-#    define BOOST_PP_ITERATION_3 18\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 17 && BOOST_PP_ITERATION_START_3 >= 17\r
-#    define BOOST_PP_ITERATION_3 17\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 16 && BOOST_PP_ITERATION_START_3 >= 16\r
-#    define BOOST_PP_ITERATION_3 16\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 15 && BOOST_PP_ITERATION_START_3 >= 15\r
-#    define BOOST_PP_ITERATION_3 15\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 14 && BOOST_PP_ITERATION_START_3 >= 14\r
-#    define BOOST_PP_ITERATION_3 14\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 13 && BOOST_PP_ITERATION_START_3 >= 13\r
-#    define BOOST_PP_ITERATION_3 13\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 12 && BOOST_PP_ITERATION_START_3 >= 12\r
-#    define BOOST_PP_ITERATION_3 12\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 11 && BOOST_PP_ITERATION_START_3 >= 11\r
-#    define BOOST_PP_ITERATION_3 11\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 10 && BOOST_PP_ITERATION_START_3 >= 10\r
-#    define BOOST_PP_ITERATION_3 10\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 9 && BOOST_PP_ITERATION_START_3 >= 9\r
-#    define BOOST_PP_ITERATION_3 9\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 8 && BOOST_PP_ITERATION_START_3 >= 8\r
-#    define BOOST_PP_ITERATION_3 8\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 7 && BOOST_PP_ITERATION_START_3 >= 7\r
-#    define BOOST_PP_ITERATION_3 7\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 6 && BOOST_PP_ITERATION_START_3 >= 6\r
-#    define BOOST_PP_ITERATION_3 6\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 5 && BOOST_PP_ITERATION_START_3 >= 5\r
-#    define BOOST_PP_ITERATION_3 5\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 4 && BOOST_PP_ITERATION_START_3 >= 4\r
-#    define BOOST_PP_ITERATION_3 4\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 3 && BOOST_PP_ITERATION_START_3 >= 3\r
-#    define BOOST_PP_ITERATION_3 3\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 2 && BOOST_PP_ITERATION_START_3 >= 2\r
-#    define BOOST_PP_ITERATION_3 2\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 1 && BOOST_PP_ITERATION_START_3 >= 1\r
-#    define BOOST_PP_ITERATION_3 1\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_3 <= 0 && BOOST_PP_ITERATION_START_3 >= 0\r
-#    define BOOST_PP_ITERATION_3 0\r
-#    include BOOST_PP_FILENAME_3\r
-#    undef BOOST_PP_ITERATION_3\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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 BOOST_PP_ITERATION_FINISH_3 <= 256 && BOOST_PP_ITERATION_START_3 >= 256
+#    define BOOST_PP_ITERATION_3 256
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 255 && BOOST_PP_ITERATION_START_3 >= 255
+#    define BOOST_PP_ITERATION_3 255
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 254 && BOOST_PP_ITERATION_START_3 >= 254
+#    define BOOST_PP_ITERATION_3 254
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 253 && BOOST_PP_ITERATION_START_3 >= 253
+#    define BOOST_PP_ITERATION_3 253
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 252 && BOOST_PP_ITERATION_START_3 >= 252
+#    define BOOST_PP_ITERATION_3 252
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 251 && BOOST_PP_ITERATION_START_3 >= 251
+#    define BOOST_PP_ITERATION_3 251
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 250 && BOOST_PP_ITERATION_START_3 >= 250
+#    define BOOST_PP_ITERATION_3 250
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 249 && BOOST_PP_ITERATION_START_3 >= 249
+#    define BOOST_PP_ITERATION_3 249
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 248 && BOOST_PP_ITERATION_START_3 >= 248
+#    define BOOST_PP_ITERATION_3 248
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 247 && BOOST_PP_ITERATION_START_3 >= 247
+#    define BOOST_PP_ITERATION_3 247
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 246 && BOOST_PP_ITERATION_START_3 >= 246
+#    define BOOST_PP_ITERATION_3 246
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 245 && BOOST_PP_ITERATION_START_3 >= 245
+#    define BOOST_PP_ITERATION_3 245
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 244 && BOOST_PP_ITERATION_START_3 >= 244
+#    define BOOST_PP_ITERATION_3 244
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 243 && BOOST_PP_ITERATION_START_3 >= 243
+#    define BOOST_PP_ITERATION_3 243
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 242 && BOOST_PP_ITERATION_START_3 >= 242
+#    define BOOST_PP_ITERATION_3 242
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 241 && BOOST_PP_ITERATION_START_3 >= 241
+#    define BOOST_PP_ITERATION_3 241
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 240 && BOOST_PP_ITERATION_START_3 >= 240
+#    define BOOST_PP_ITERATION_3 240
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 239 && BOOST_PP_ITERATION_START_3 >= 239
+#    define BOOST_PP_ITERATION_3 239
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 238 && BOOST_PP_ITERATION_START_3 >= 238
+#    define BOOST_PP_ITERATION_3 238
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 237 && BOOST_PP_ITERATION_START_3 >= 237
+#    define BOOST_PP_ITERATION_3 237
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 236 && BOOST_PP_ITERATION_START_3 >= 236
+#    define BOOST_PP_ITERATION_3 236
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 235 && BOOST_PP_ITERATION_START_3 >= 235
+#    define BOOST_PP_ITERATION_3 235
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 234 && BOOST_PP_ITERATION_START_3 >= 234
+#    define BOOST_PP_ITERATION_3 234
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 233 && BOOST_PP_ITERATION_START_3 >= 233
+#    define BOOST_PP_ITERATION_3 233
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 232 && BOOST_PP_ITERATION_START_3 >= 232
+#    define BOOST_PP_ITERATION_3 232
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 231 && BOOST_PP_ITERATION_START_3 >= 231
+#    define BOOST_PP_ITERATION_3 231
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 230 && BOOST_PP_ITERATION_START_3 >= 230
+#    define BOOST_PP_ITERATION_3 230
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 229 && BOOST_PP_ITERATION_START_3 >= 229
+#    define BOOST_PP_ITERATION_3 229
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 228 && BOOST_PP_ITERATION_START_3 >= 228
+#    define BOOST_PP_ITERATION_3 228
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 227 && BOOST_PP_ITERATION_START_3 >= 227
+#    define BOOST_PP_ITERATION_3 227
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 226 && BOOST_PP_ITERATION_START_3 >= 226
+#    define BOOST_PP_ITERATION_3 226
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 225 && BOOST_PP_ITERATION_START_3 >= 225
+#    define BOOST_PP_ITERATION_3 225
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 224 && BOOST_PP_ITERATION_START_3 >= 224
+#    define BOOST_PP_ITERATION_3 224
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 223 && BOOST_PP_ITERATION_START_3 >= 223
+#    define BOOST_PP_ITERATION_3 223
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 222 && BOOST_PP_ITERATION_START_3 >= 222
+#    define BOOST_PP_ITERATION_3 222
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 221 && BOOST_PP_ITERATION_START_3 >= 221
+#    define BOOST_PP_ITERATION_3 221
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 220 && BOOST_PP_ITERATION_START_3 >= 220
+#    define BOOST_PP_ITERATION_3 220
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 219 && BOOST_PP_ITERATION_START_3 >= 219
+#    define BOOST_PP_ITERATION_3 219
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 218 && BOOST_PP_ITERATION_START_3 >= 218
+#    define BOOST_PP_ITERATION_3 218
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 217 && BOOST_PP_ITERATION_START_3 >= 217
+#    define BOOST_PP_ITERATION_3 217
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 216 && BOOST_PP_ITERATION_START_3 >= 216
+#    define BOOST_PP_ITERATION_3 216
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 215 && BOOST_PP_ITERATION_START_3 >= 215
+#    define BOOST_PP_ITERATION_3 215
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 214 && BOOST_PP_ITERATION_START_3 >= 214
+#    define BOOST_PP_ITERATION_3 214
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 213 && BOOST_PP_ITERATION_START_3 >= 213
+#    define BOOST_PP_ITERATION_3 213
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 212 && BOOST_PP_ITERATION_START_3 >= 212
+#    define BOOST_PP_ITERATION_3 212
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 211 && BOOST_PP_ITERATION_START_3 >= 211
+#    define BOOST_PP_ITERATION_3 211
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 210 && BOOST_PP_ITERATION_START_3 >= 210
+#    define BOOST_PP_ITERATION_3 210
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 209 && BOOST_PP_ITERATION_START_3 >= 209
+#    define BOOST_PP_ITERATION_3 209
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 208 && BOOST_PP_ITERATION_START_3 >= 208
+#    define BOOST_PP_ITERATION_3 208
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 207 && BOOST_PP_ITERATION_START_3 >= 207
+#    define BOOST_PP_ITERATION_3 207
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 206 && BOOST_PP_ITERATION_START_3 >= 206
+#    define BOOST_PP_ITERATION_3 206
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 205 && BOOST_PP_ITERATION_START_3 >= 205
+#    define BOOST_PP_ITERATION_3 205
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 204 && BOOST_PP_ITERATION_START_3 >= 204
+#    define BOOST_PP_ITERATION_3 204
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 203 && BOOST_PP_ITERATION_START_3 >= 203
+#    define BOOST_PP_ITERATION_3 203
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 202 && BOOST_PP_ITERATION_START_3 >= 202
+#    define BOOST_PP_ITERATION_3 202
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 201 && BOOST_PP_ITERATION_START_3 >= 201
+#    define BOOST_PP_ITERATION_3 201
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 200 && BOOST_PP_ITERATION_START_3 >= 200
+#    define BOOST_PP_ITERATION_3 200
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 199 && BOOST_PP_ITERATION_START_3 >= 199
+#    define BOOST_PP_ITERATION_3 199
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 198 && BOOST_PP_ITERATION_START_3 >= 198
+#    define BOOST_PP_ITERATION_3 198
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 197 && BOOST_PP_ITERATION_START_3 >= 197
+#    define BOOST_PP_ITERATION_3 197
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 196 && BOOST_PP_ITERATION_START_3 >= 196
+#    define BOOST_PP_ITERATION_3 196
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 195 && BOOST_PP_ITERATION_START_3 >= 195
+#    define BOOST_PP_ITERATION_3 195
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 194 && BOOST_PP_ITERATION_START_3 >= 194
+#    define BOOST_PP_ITERATION_3 194
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 193 && BOOST_PP_ITERATION_START_3 >= 193
+#    define BOOST_PP_ITERATION_3 193
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 192 && BOOST_PP_ITERATION_START_3 >= 192
+#    define BOOST_PP_ITERATION_3 192
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 191 && BOOST_PP_ITERATION_START_3 >= 191
+#    define BOOST_PP_ITERATION_3 191
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 190 && BOOST_PP_ITERATION_START_3 >= 190
+#    define BOOST_PP_ITERATION_3 190
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 189 && BOOST_PP_ITERATION_START_3 >= 189
+#    define BOOST_PP_ITERATION_3 189
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 188 && BOOST_PP_ITERATION_START_3 >= 188
+#    define BOOST_PP_ITERATION_3 188
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 187 && BOOST_PP_ITERATION_START_3 >= 187
+#    define BOOST_PP_ITERATION_3 187
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 186 && BOOST_PP_ITERATION_START_3 >= 186
+#    define BOOST_PP_ITERATION_3 186
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 185 && BOOST_PP_ITERATION_START_3 >= 185
+#    define BOOST_PP_ITERATION_3 185
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 184 && BOOST_PP_ITERATION_START_3 >= 184
+#    define BOOST_PP_ITERATION_3 184
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 183 && BOOST_PP_ITERATION_START_3 >= 183
+#    define BOOST_PP_ITERATION_3 183
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 182 && BOOST_PP_ITERATION_START_3 >= 182
+#    define BOOST_PP_ITERATION_3 182
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 181 && BOOST_PP_ITERATION_START_3 >= 181
+#    define BOOST_PP_ITERATION_3 181
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 180 && BOOST_PP_ITERATION_START_3 >= 180
+#    define BOOST_PP_ITERATION_3 180
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 179 && BOOST_PP_ITERATION_START_3 >= 179
+#    define BOOST_PP_ITERATION_3 179
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 178 && BOOST_PP_ITERATION_START_3 >= 178
+#    define BOOST_PP_ITERATION_3 178
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 177 && BOOST_PP_ITERATION_START_3 >= 177
+#    define BOOST_PP_ITERATION_3 177
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 176 && BOOST_PP_ITERATION_START_3 >= 176
+#    define BOOST_PP_ITERATION_3 176
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 175 && BOOST_PP_ITERATION_START_3 >= 175
+#    define BOOST_PP_ITERATION_3 175
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 174 && BOOST_PP_ITERATION_START_3 >= 174
+#    define BOOST_PP_ITERATION_3 174
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 173 && BOOST_PP_ITERATION_START_3 >= 173
+#    define BOOST_PP_ITERATION_3 173
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 172 && BOOST_PP_ITERATION_START_3 >= 172
+#    define BOOST_PP_ITERATION_3 172
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 171 && BOOST_PP_ITERATION_START_3 >= 171
+#    define BOOST_PP_ITERATION_3 171
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 170 && BOOST_PP_ITERATION_START_3 >= 170
+#    define BOOST_PP_ITERATION_3 170
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 169 && BOOST_PP_ITERATION_START_3 >= 169
+#    define BOOST_PP_ITERATION_3 169
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 168 && BOOST_PP_ITERATION_START_3 >= 168
+#    define BOOST_PP_ITERATION_3 168
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 167 && BOOST_PP_ITERATION_START_3 >= 167
+#    define BOOST_PP_ITERATION_3 167
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 166 && BOOST_PP_ITERATION_START_3 >= 166
+#    define BOOST_PP_ITERATION_3 166
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 165 && BOOST_PP_ITERATION_START_3 >= 165
+#    define BOOST_PP_ITERATION_3 165
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 164 && BOOST_PP_ITERATION_START_3 >= 164
+#    define BOOST_PP_ITERATION_3 164
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 163 && BOOST_PP_ITERATION_START_3 >= 163
+#    define BOOST_PP_ITERATION_3 163
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 162 && BOOST_PP_ITERATION_START_3 >= 162
+#    define BOOST_PP_ITERATION_3 162
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 161 && BOOST_PP_ITERATION_START_3 >= 161
+#    define BOOST_PP_ITERATION_3 161
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 160 && BOOST_PP_ITERATION_START_3 >= 160
+#    define BOOST_PP_ITERATION_3 160
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 159 && BOOST_PP_ITERATION_START_3 >= 159
+#    define BOOST_PP_ITERATION_3 159
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 158 && BOOST_PP_ITERATION_START_3 >= 158
+#    define BOOST_PP_ITERATION_3 158
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 157 && BOOST_PP_ITERATION_START_3 >= 157
+#    define BOOST_PP_ITERATION_3 157
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 156 && BOOST_PP_ITERATION_START_3 >= 156
+#    define BOOST_PP_ITERATION_3 156
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 155 && BOOST_PP_ITERATION_START_3 >= 155
+#    define BOOST_PP_ITERATION_3 155
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 154 && BOOST_PP_ITERATION_START_3 >= 154
+#    define BOOST_PP_ITERATION_3 154
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 153 && BOOST_PP_ITERATION_START_3 >= 153
+#    define BOOST_PP_ITERATION_3 153
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 152 && BOOST_PP_ITERATION_START_3 >= 152
+#    define BOOST_PP_ITERATION_3 152
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 151 && BOOST_PP_ITERATION_START_3 >= 151
+#    define BOOST_PP_ITERATION_3 151
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 150 && BOOST_PP_ITERATION_START_3 >= 150
+#    define BOOST_PP_ITERATION_3 150
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 149 && BOOST_PP_ITERATION_START_3 >= 149
+#    define BOOST_PP_ITERATION_3 149
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 148 && BOOST_PP_ITERATION_START_3 >= 148
+#    define BOOST_PP_ITERATION_3 148
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 147 && BOOST_PP_ITERATION_START_3 >= 147
+#    define BOOST_PP_ITERATION_3 147
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 146 && BOOST_PP_ITERATION_START_3 >= 146
+#    define BOOST_PP_ITERATION_3 146
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 145 && BOOST_PP_ITERATION_START_3 >= 145
+#    define BOOST_PP_ITERATION_3 145
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 144 && BOOST_PP_ITERATION_START_3 >= 144
+#    define BOOST_PP_ITERATION_3 144
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 143 && BOOST_PP_ITERATION_START_3 >= 143
+#    define BOOST_PP_ITERATION_3 143
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 142 && BOOST_PP_ITERATION_START_3 >= 142
+#    define BOOST_PP_ITERATION_3 142
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 141 && BOOST_PP_ITERATION_START_3 >= 141
+#    define BOOST_PP_ITERATION_3 141
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 140 && BOOST_PP_ITERATION_START_3 >= 140
+#    define BOOST_PP_ITERATION_3 140
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 139 && BOOST_PP_ITERATION_START_3 >= 139
+#    define BOOST_PP_ITERATION_3 139
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 138 && BOOST_PP_ITERATION_START_3 >= 138
+#    define BOOST_PP_ITERATION_3 138
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 137 && BOOST_PP_ITERATION_START_3 >= 137
+#    define BOOST_PP_ITERATION_3 137
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 136 && BOOST_PP_ITERATION_START_3 >= 136
+#    define BOOST_PP_ITERATION_3 136
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 135 && BOOST_PP_ITERATION_START_3 >= 135
+#    define BOOST_PP_ITERATION_3 135
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 134 && BOOST_PP_ITERATION_START_3 >= 134
+#    define BOOST_PP_ITERATION_3 134
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 133 && BOOST_PP_ITERATION_START_3 >= 133
+#    define BOOST_PP_ITERATION_3 133
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 132 && BOOST_PP_ITERATION_START_3 >= 132
+#    define BOOST_PP_ITERATION_3 132
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 131 && BOOST_PP_ITERATION_START_3 >= 131
+#    define BOOST_PP_ITERATION_3 131
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 130 && BOOST_PP_ITERATION_START_3 >= 130
+#    define BOOST_PP_ITERATION_3 130
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 129 && BOOST_PP_ITERATION_START_3 >= 129
+#    define BOOST_PP_ITERATION_3 129
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 128 && BOOST_PP_ITERATION_START_3 >= 128
+#    define BOOST_PP_ITERATION_3 128
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 127 && BOOST_PP_ITERATION_START_3 >= 127
+#    define BOOST_PP_ITERATION_3 127
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 126 && BOOST_PP_ITERATION_START_3 >= 126
+#    define BOOST_PP_ITERATION_3 126
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 125 && BOOST_PP_ITERATION_START_3 >= 125
+#    define BOOST_PP_ITERATION_3 125
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 124 && BOOST_PP_ITERATION_START_3 >= 124
+#    define BOOST_PP_ITERATION_3 124
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 123 && BOOST_PP_ITERATION_START_3 >= 123
+#    define BOOST_PP_ITERATION_3 123
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 122 && BOOST_PP_ITERATION_START_3 >= 122
+#    define BOOST_PP_ITERATION_3 122
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 121 && BOOST_PP_ITERATION_START_3 >= 121
+#    define BOOST_PP_ITERATION_3 121
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 120 && BOOST_PP_ITERATION_START_3 >= 120
+#    define BOOST_PP_ITERATION_3 120
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 119 && BOOST_PP_ITERATION_START_3 >= 119
+#    define BOOST_PP_ITERATION_3 119
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 118 && BOOST_PP_ITERATION_START_3 >= 118
+#    define BOOST_PP_ITERATION_3 118
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 117 && BOOST_PP_ITERATION_START_3 >= 117
+#    define BOOST_PP_ITERATION_3 117
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 116 && BOOST_PP_ITERATION_START_3 >= 116
+#    define BOOST_PP_ITERATION_3 116
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 115 && BOOST_PP_ITERATION_START_3 >= 115
+#    define BOOST_PP_ITERATION_3 115
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 114 && BOOST_PP_ITERATION_START_3 >= 114
+#    define BOOST_PP_ITERATION_3 114
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 113 && BOOST_PP_ITERATION_START_3 >= 113
+#    define BOOST_PP_ITERATION_3 113
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 112 && BOOST_PP_ITERATION_START_3 >= 112
+#    define BOOST_PP_ITERATION_3 112
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 111 && BOOST_PP_ITERATION_START_3 >= 111
+#    define BOOST_PP_ITERATION_3 111
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 110 && BOOST_PP_ITERATION_START_3 >= 110
+#    define BOOST_PP_ITERATION_3 110
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 109 && BOOST_PP_ITERATION_START_3 >= 109
+#    define BOOST_PP_ITERATION_3 109
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 108 && BOOST_PP_ITERATION_START_3 >= 108
+#    define BOOST_PP_ITERATION_3 108
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 107 && BOOST_PP_ITERATION_START_3 >= 107
+#    define BOOST_PP_ITERATION_3 107
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 106 && BOOST_PP_ITERATION_START_3 >= 106
+#    define BOOST_PP_ITERATION_3 106
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 105 && BOOST_PP_ITERATION_START_3 >= 105
+#    define BOOST_PP_ITERATION_3 105
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 104 && BOOST_PP_ITERATION_START_3 >= 104
+#    define BOOST_PP_ITERATION_3 104
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 103 && BOOST_PP_ITERATION_START_3 >= 103
+#    define BOOST_PP_ITERATION_3 103
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 102 && BOOST_PP_ITERATION_START_3 >= 102
+#    define BOOST_PP_ITERATION_3 102
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 101 && BOOST_PP_ITERATION_START_3 >= 101
+#    define BOOST_PP_ITERATION_3 101
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 100 && BOOST_PP_ITERATION_START_3 >= 100
+#    define BOOST_PP_ITERATION_3 100
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 99 && BOOST_PP_ITERATION_START_3 >= 99
+#    define BOOST_PP_ITERATION_3 99
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 98 && BOOST_PP_ITERATION_START_3 >= 98
+#    define BOOST_PP_ITERATION_3 98
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 97 && BOOST_PP_ITERATION_START_3 >= 97
+#    define BOOST_PP_ITERATION_3 97
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 96 && BOOST_PP_ITERATION_START_3 >= 96
+#    define BOOST_PP_ITERATION_3 96
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 95 && BOOST_PP_ITERATION_START_3 >= 95
+#    define BOOST_PP_ITERATION_3 95
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 94 && BOOST_PP_ITERATION_START_3 >= 94
+#    define BOOST_PP_ITERATION_3 94
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 93 && BOOST_PP_ITERATION_START_3 >= 93
+#    define BOOST_PP_ITERATION_3 93
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 92 && BOOST_PP_ITERATION_START_3 >= 92
+#    define BOOST_PP_ITERATION_3 92
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 91 && BOOST_PP_ITERATION_START_3 >= 91
+#    define BOOST_PP_ITERATION_3 91
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 90 && BOOST_PP_ITERATION_START_3 >= 90
+#    define BOOST_PP_ITERATION_3 90
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 89 && BOOST_PP_ITERATION_START_3 >= 89
+#    define BOOST_PP_ITERATION_3 89
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 88 && BOOST_PP_ITERATION_START_3 >= 88
+#    define BOOST_PP_ITERATION_3 88
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 87 && BOOST_PP_ITERATION_START_3 >= 87
+#    define BOOST_PP_ITERATION_3 87
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 86 && BOOST_PP_ITERATION_START_3 >= 86
+#    define BOOST_PP_ITERATION_3 86
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 85 && BOOST_PP_ITERATION_START_3 >= 85
+#    define BOOST_PP_ITERATION_3 85
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 84 && BOOST_PP_ITERATION_START_3 >= 84
+#    define BOOST_PP_ITERATION_3 84
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 83 && BOOST_PP_ITERATION_START_3 >= 83
+#    define BOOST_PP_ITERATION_3 83
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 82 && BOOST_PP_ITERATION_START_3 >= 82
+#    define BOOST_PP_ITERATION_3 82
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 81 && BOOST_PP_ITERATION_START_3 >= 81
+#    define BOOST_PP_ITERATION_3 81
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 80 && BOOST_PP_ITERATION_START_3 >= 80
+#    define BOOST_PP_ITERATION_3 80
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 79 && BOOST_PP_ITERATION_START_3 >= 79
+#    define BOOST_PP_ITERATION_3 79
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 78 && BOOST_PP_ITERATION_START_3 >= 78
+#    define BOOST_PP_ITERATION_3 78
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 77 && BOOST_PP_ITERATION_START_3 >= 77
+#    define BOOST_PP_ITERATION_3 77
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 76 && BOOST_PP_ITERATION_START_3 >= 76
+#    define BOOST_PP_ITERATION_3 76
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 75 && BOOST_PP_ITERATION_START_3 >= 75
+#    define BOOST_PP_ITERATION_3 75
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 74 && BOOST_PP_ITERATION_START_3 >= 74
+#    define BOOST_PP_ITERATION_3 74
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 73 && BOOST_PP_ITERATION_START_3 >= 73
+#    define BOOST_PP_ITERATION_3 73
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 72 && BOOST_PP_ITERATION_START_3 >= 72
+#    define BOOST_PP_ITERATION_3 72
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 71 && BOOST_PP_ITERATION_START_3 >= 71
+#    define BOOST_PP_ITERATION_3 71
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 70 && BOOST_PP_ITERATION_START_3 >= 70
+#    define BOOST_PP_ITERATION_3 70
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 69 && BOOST_PP_ITERATION_START_3 >= 69
+#    define BOOST_PP_ITERATION_3 69
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 68 && BOOST_PP_ITERATION_START_3 >= 68
+#    define BOOST_PP_ITERATION_3 68
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 67 && BOOST_PP_ITERATION_START_3 >= 67
+#    define BOOST_PP_ITERATION_3 67
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 66 && BOOST_PP_ITERATION_START_3 >= 66
+#    define BOOST_PP_ITERATION_3 66
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 65 && BOOST_PP_ITERATION_START_3 >= 65
+#    define BOOST_PP_ITERATION_3 65
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 64 && BOOST_PP_ITERATION_START_3 >= 64
+#    define BOOST_PP_ITERATION_3 64
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 63 && BOOST_PP_ITERATION_START_3 >= 63
+#    define BOOST_PP_ITERATION_3 63
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 62 && BOOST_PP_ITERATION_START_3 >= 62
+#    define BOOST_PP_ITERATION_3 62
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 61 && BOOST_PP_ITERATION_START_3 >= 61
+#    define BOOST_PP_ITERATION_3 61
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 60 && BOOST_PP_ITERATION_START_3 >= 60
+#    define BOOST_PP_ITERATION_3 60
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 59 && BOOST_PP_ITERATION_START_3 >= 59
+#    define BOOST_PP_ITERATION_3 59
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 58 && BOOST_PP_ITERATION_START_3 >= 58
+#    define BOOST_PP_ITERATION_3 58
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 57 && BOOST_PP_ITERATION_START_3 >= 57
+#    define BOOST_PP_ITERATION_3 57
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 56 && BOOST_PP_ITERATION_START_3 >= 56
+#    define BOOST_PP_ITERATION_3 56
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 55 && BOOST_PP_ITERATION_START_3 >= 55
+#    define BOOST_PP_ITERATION_3 55
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 54 && BOOST_PP_ITERATION_START_3 >= 54
+#    define BOOST_PP_ITERATION_3 54
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 53 && BOOST_PP_ITERATION_START_3 >= 53
+#    define BOOST_PP_ITERATION_3 53
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 52 && BOOST_PP_ITERATION_START_3 >= 52
+#    define BOOST_PP_ITERATION_3 52
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 51 && BOOST_PP_ITERATION_START_3 >= 51
+#    define BOOST_PP_ITERATION_3 51
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 50 && BOOST_PP_ITERATION_START_3 >= 50
+#    define BOOST_PP_ITERATION_3 50
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 49 && BOOST_PP_ITERATION_START_3 >= 49
+#    define BOOST_PP_ITERATION_3 49
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 48 && BOOST_PP_ITERATION_START_3 >= 48
+#    define BOOST_PP_ITERATION_3 48
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 47 && BOOST_PP_ITERATION_START_3 >= 47
+#    define BOOST_PP_ITERATION_3 47
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 46 && BOOST_PP_ITERATION_START_3 >= 46
+#    define BOOST_PP_ITERATION_3 46
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 45 && BOOST_PP_ITERATION_START_3 >= 45
+#    define BOOST_PP_ITERATION_3 45
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 44 && BOOST_PP_ITERATION_START_3 >= 44
+#    define BOOST_PP_ITERATION_3 44
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 43 && BOOST_PP_ITERATION_START_3 >= 43
+#    define BOOST_PP_ITERATION_3 43
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 42 && BOOST_PP_ITERATION_START_3 >= 42
+#    define BOOST_PP_ITERATION_3 42
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 41 && BOOST_PP_ITERATION_START_3 >= 41
+#    define BOOST_PP_ITERATION_3 41
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 40 && BOOST_PP_ITERATION_START_3 >= 40
+#    define BOOST_PP_ITERATION_3 40
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 39 && BOOST_PP_ITERATION_START_3 >= 39
+#    define BOOST_PP_ITERATION_3 39
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 38 && BOOST_PP_ITERATION_START_3 >= 38
+#    define BOOST_PP_ITERATION_3 38
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 37 && BOOST_PP_ITERATION_START_3 >= 37
+#    define BOOST_PP_ITERATION_3 37
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 36 && BOOST_PP_ITERATION_START_3 >= 36
+#    define BOOST_PP_ITERATION_3 36
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 35 && BOOST_PP_ITERATION_START_3 >= 35
+#    define BOOST_PP_ITERATION_3 35
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 34 && BOOST_PP_ITERATION_START_3 >= 34
+#    define BOOST_PP_ITERATION_3 34
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 33 && BOOST_PP_ITERATION_START_3 >= 33
+#    define BOOST_PP_ITERATION_3 33
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 32 && BOOST_PP_ITERATION_START_3 >= 32
+#    define BOOST_PP_ITERATION_3 32
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 31 && BOOST_PP_ITERATION_START_3 >= 31
+#    define BOOST_PP_ITERATION_3 31
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 30 && BOOST_PP_ITERATION_START_3 >= 30
+#    define BOOST_PP_ITERATION_3 30
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 29 && BOOST_PP_ITERATION_START_3 >= 29
+#    define BOOST_PP_ITERATION_3 29
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 28 && BOOST_PP_ITERATION_START_3 >= 28
+#    define BOOST_PP_ITERATION_3 28
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 27 && BOOST_PP_ITERATION_START_3 >= 27
+#    define BOOST_PP_ITERATION_3 27
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 26 && BOOST_PP_ITERATION_START_3 >= 26
+#    define BOOST_PP_ITERATION_3 26
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 25 && BOOST_PP_ITERATION_START_3 >= 25
+#    define BOOST_PP_ITERATION_3 25
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 24 && BOOST_PP_ITERATION_START_3 >= 24
+#    define BOOST_PP_ITERATION_3 24
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 23 && BOOST_PP_ITERATION_START_3 >= 23
+#    define BOOST_PP_ITERATION_3 23
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 22 && BOOST_PP_ITERATION_START_3 >= 22
+#    define BOOST_PP_ITERATION_3 22
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 21 && BOOST_PP_ITERATION_START_3 >= 21
+#    define BOOST_PP_ITERATION_3 21
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 20 && BOOST_PP_ITERATION_START_3 >= 20
+#    define BOOST_PP_ITERATION_3 20
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 19 && BOOST_PP_ITERATION_START_3 >= 19
+#    define BOOST_PP_ITERATION_3 19
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 18 && BOOST_PP_ITERATION_START_3 >= 18
+#    define BOOST_PP_ITERATION_3 18
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 17 && BOOST_PP_ITERATION_START_3 >= 17
+#    define BOOST_PP_ITERATION_3 17
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 16 && BOOST_PP_ITERATION_START_3 >= 16
+#    define BOOST_PP_ITERATION_3 16
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 15 && BOOST_PP_ITERATION_START_3 >= 15
+#    define BOOST_PP_ITERATION_3 15
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 14 && BOOST_PP_ITERATION_START_3 >= 14
+#    define BOOST_PP_ITERATION_3 14
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 13 && BOOST_PP_ITERATION_START_3 >= 13
+#    define BOOST_PP_ITERATION_3 13
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 12 && BOOST_PP_ITERATION_START_3 >= 12
+#    define BOOST_PP_ITERATION_3 12
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 11 && BOOST_PP_ITERATION_START_3 >= 11
+#    define BOOST_PP_ITERATION_3 11
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 10 && BOOST_PP_ITERATION_START_3 >= 10
+#    define BOOST_PP_ITERATION_3 10
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 9 && BOOST_PP_ITERATION_START_3 >= 9
+#    define BOOST_PP_ITERATION_3 9
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 8 && BOOST_PP_ITERATION_START_3 >= 8
+#    define BOOST_PP_ITERATION_3 8
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 7 && BOOST_PP_ITERATION_START_3 >= 7
+#    define BOOST_PP_ITERATION_3 7
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 6 && BOOST_PP_ITERATION_START_3 >= 6
+#    define BOOST_PP_ITERATION_3 6
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 5 && BOOST_PP_ITERATION_START_3 >= 5
+#    define BOOST_PP_ITERATION_3 5
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 4 && BOOST_PP_ITERATION_START_3 >= 4
+#    define BOOST_PP_ITERATION_3 4
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 3 && BOOST_PP_ITERATION_START_3 >= 3
+#    define BOOST_PP_ITERATION_3 3
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 2 && BOOST_PP_ITERATION_START_3 >= 2
+#    define BOOST_PP_ITERATION_3 2
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 1 && BOOST_PP_ITERATION_START_3 >= 1
+#    define BOOST_PP_ITERATION_3 1
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
+# if BOOST_PP_ITERATION_FINISH_3 <= 0 && BOOST_PP_ITERATION_START_3 >= 0
+#    define BOOST_PP_ITERATION_3 0
+#    include BOOST_PP_FILENAME_3
+#    undef BOOST_PP_ITERATION_3
+# endif
index aedceb3d870522923510ce2e3862fadb0f07d78c..3bcfba04e0c3e1dd4b3ccb06aaa251960dca94bb 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 256 && BOOST_PP_ITERATION_START_4 >= 256\r
-#    define BOOST_PP_ITERATION_4 256\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 255 && BOOST_PP_ITERATION_START_4 >= 255\r
-#    define BOOST_PP_ITERATION_4 255\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 254 && BOOST_PP_ITERATION_START_4 >= 254\r
-#    define BOOST_PP_ITERATION_4 254\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 253 && BOOST_PP_ITERATION_START_4 >= 253\r
-#    define BOOST_PP_ITERATION_4 253\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 252 && BOOST_PP_ITERATION_START_4 >= 252\r
-#    define BOOST_PP_ITERATION_4 252\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 251 && BOOST_PP_ITERATION_START_4 >= 251\r
-#    define BOOST_PP_ITERATION_4 251\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 250 && BOOST_PP_ITERATION_START_4 >= 250\r
-#    define BOOST_PP_ITERATION_4 250\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 249 && BOOST_PP_ITERATION_START_4 >= 249\r
-#    define BOOST_PP_ITERATION_4 249\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 248 && BOOST_PP_ITERATION_START_4 >= 248\r
-#    define BOOST_PP_ITERATION_4 248\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 247 && BOOST_PP_ITERATION_START_4 >= 247\r
-#    define BOOST_PP_ITERATION_4 247\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 246 && BOOST_PP_ITERATION_START_4 >= 246\r
-#    define BOOST_PP_ITERATION_4 246\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 245 && BOOST_PP_ITERATION_START_4 >= 245\r
-#    define BOOST_PP_ITERATION_4 245\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 244 && BOOST_PP_ITERATION_START_4 >= 244\r
-#    define BOOST_PP_ITERATION_4 244\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 243 && BOOST_PP_ITERATION_START_4 >= 243\r
-#    define BOOST_PP_ITERATION_4 243\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 242 && BOOST_PP_ITERATION_START_4 >= 242\r
-#    define BOOST_PP_ITERATION_4 242\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 241 && BOOST_PP_ITERATION_START_4 >= 241\r
-#    define BOOST_PP_ITERATION_4 241\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 240 && BOOST_PP_ITERATION_START_4 >= 240\r
-#    define BOOST_PP_ITERATION_4 240\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 239 && BOOST_PP_ITERATION_START_4 >= 239\r
-#    define BOOST_PP_ITERATION_4 239\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 238 && BOOST_PP_ITERATION_START_4 >= 238\r
-#    define BOOST_PP_ITERATION_4 238\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 237 && BOOST_PP_ITERATION_START_4 >= 237\r
-#    define BOOST_PP_ITERATION_4 237\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 236 && BOOST_PP_ITERATION_START_4 >= 236\r
-#    define BOOST_PP_ITERATION_4 236\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 235 && BOOST_PP_ITERATION_START_4 >= 235\r
-#    define BOOST_PP_ITERATION_4 235\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 234 && BOOST_PP_ITERATION_START_4 >= 234\r
-#    define BOOST_PP_ITERATION_4 234\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 233 && BOOST_PP_ITERATION_START_4 >= 233\r
-#    define BOOST_PP_ITERATION_4 233\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 232 && BOOST_PP_ITERATION_START_4 >= 232\r
-#    define BOOST_PP_ITERATION_4 232\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 231 && BOOST_PP_ITERATION_START_4 >= 231\r
-#    define BOOST_PP_ITERATION_4 231\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 230 && BOOST_PP_ITERATION_START_4 >= 230\r
-#    define BOOST_PP_ITERATION_4 230\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 229 && BOOST_PP_ITERATION_START_4 >= 229\r
-#    define BOOST_PP_ITERATION_4 229\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 228 && BOOST_PP_ITERATION_START_4 >= 228\r
-#    define BOOST_PP_ITERATION_4 228\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 227 && BOOST_PP_ITERATION_START_4 >= 227\r
-#    define BOOST_PP_ITERATION_4 227\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 226 && BOOST_PP_ITERATION_START_4 >= 226\r
-#    define BOOST_PP_ITERATION_4 226\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 225 && BOOST_PP_ITERATION_START_4 >= 225\r
-#    define BOOST_PP_ITERATION_4 225\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 224 && BOOST_PP_ITERATION_START_4 >= 224\r
-#    define BOOST_PP_ITERATION_4 224\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 223 && BOOST_PP_ITERATION_START_4 >= 223\r
-#    define BOOST_PP_ITERATION_4 223\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 222 && BOOST_PP_ITERATION_START_4 >= 222\r
-#    define BOOST_PP_ITERATION_4 222\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 221 && BOOST_PP_ITERATION_START_4 >= 221\r
-#    define BOOST_PP_ITERATION_4 221\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 220 && BOOST_PP_ITERATION_START_4 >= 220\r
-#    define BOOST_PP_ITERATION_4 220\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 219 && BOOST_PP_ITERATION_START_4 >= 219\r
-#    define BOOST_PP_ITERATION_4 219\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 218 && BOOST_PP_ITERATION_START_4 >= 218\r
-#    define BOOST_PP_ITERATION_4 218\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 217 && BOOST_PP_ITERATION_START_4 >= 217\r
-#    define BOOST_PP_ITERATION_4 217\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 216 && BOOST_PP_ITERATION_START_4 >= 216\r
-#    define BOOST_PP_ITERATION_4 216\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 215 && BOOST_PP_ITERATION_START_4 >= 215\r
-#    define BOOST_PP_ITERATION_4 215\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 214 && BOOST_PP_ITERATION_START_4 >= 214\r
-#    define BOOST_PP_ITERATION_4 214\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 213 && BOOST_PP_ITERATION_START_4 >= 213\r
-#    define BOOST_PP_ITERATION_4 213\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 212 && BOOST_PP_ITERATION_START_4 >= 212\r
-#    define BOOST_PP_ITERATION_4 212\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 211 && BOOST_PP_ITERATION_START_4 >= 211\r
-#    define BOOST_PP_ITERATION_4 211\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 210 && BOOST_PP_ITERATION_START_4 >= 210\r
-#    define BOOST_PP_ITERATION_4 210\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 209 && BOOST_PP_ITERATION_START_4 >= 209\r
-#    define BOOST_PP_ITERATION_4 209\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 208 && BOOST_PP_ITERATION_START_4 >= 208\r
-#    define BOOST_PP_ITERATION_4 208\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 207 && BOOST_PP_ITERATION_START_4 >= 207\r
-#    define BOOST_PP_ITERATION_4 207\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 206 && BOOST_PP_ITERATION_START_4 >= 206\r
-#    define BOOST_PP_ITERATION_4 206\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 205 && BOOST_PP_ITERATION_START_4 >= 205\r
-#    define BOOST_PP_ITERATION_4 205\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 204 && BOOST_PP_ITERATION_START_4 >= 204\r
-#    define BOOST_PP_ITERATION_4 204\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 203 && BOOST_PP_ITERATION_START_4 >= 203\r
-#    define BOOST_PP_ITERATION_4 203\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 202 && BOOST_PP_ITERATION_START_4 >= 202\r
-#    define BOOST_PP_ITERATION_4 202\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 201 && BOOST_PP_ITERATION_START_4 >= 201\r
-#    define BOOST_PP_ITERATION_4 201\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 200 && BOOST_PP_ITERATION_START_4 >= 200\r
-#    define BOOST_PP_ITERATION_4 200\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 199 && BOOST_PP_ITERATION_START_4 >= 199\r
-#    define BOOST_PP_ITERATION_4 199\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 198 && BOOST_PP_ITERATION_START_4 >= 198\r
-#    define BOOST_PP_ITERATION_4 198\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 197 && BOOST_PP_ITERATION_START_4 >= 197\r
-#    define BOOST_PP_ITERATION_4 197\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 196 && BOOST_PP_ITERATION_START_4 >= 196\r
-#    define BOOST_PP_ITERATION_4 196\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 195 && BOOST_PP_ITERATION_START_4 >= 195\r
-#    define BOOST_PP_ITERATION_4 195\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 194 && BOOST_PP_ITERATION_START_4 >= 194\r
-#    define BOOST_PP_ITERATION_4 194\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 193 && BOOST_PP_ITERATION_START_4 >= 193\r
-#    define BOOST_PP_ITERATION_4 193\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 192 && BOOST_PP_ITERATION_START_4 >= 192\r
-#    define BOOST_PP_ITERATION_4 192\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 191 && BOOST_PP_ITERATION_START_4 >= 191\r
-#    define BOOST_PP_ITERATION_4 191\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 190 && BOOST_PP_ITERATION_START_4 >= 190\r
-#    define BOOST_PP_ITERATION_4 190\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 189 && BOOST_PP_ITERATION_START_4 >= 189\r
-#    define BOOST_PP_ITERATION_4 189\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 188 && BOOST_PP_ITERATION_START_4 >= 188\r
-#    define BOOST_PP_ITERATION_4 188\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 187 && BOOST_PP_ITERATION_START_4 >= 187\r
-#    define BOOST_PP_ITERATION_4 187\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 186 && BOOST_PP_ITERATION_START_4 >= 186\r
-#    define BOOST_PP_ITERATION_4 186\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 185 && BOOST_PP_ITERATION_START_4 >= 185\r
-#    define BOOST_PP_ITERATION_4 185\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 184 && BOOST_PP_ITERATION_START_4 >= 184\r
-#    define BOOST_PP_ITERATION_4 184\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 183 && BOOST_PP_ITERATION_START_4 >= 183\r
-#    define BOOST_PP_ITERATION_4 183\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 182 && BOOST_PP_ITERATION_START_4 >= 182\r
-#    define BOOST_PP_ITERATION_4 182\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 181 && BOOST_PP_ITERATION_START_4 >= 181\r
-#    define BOOST_PP_ITERATION_4 181\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 180 && BOOST_PP_ITERATION_START_4 >= 180\r
-#    define BOOST_PP_ITERATION_4 180\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 179 && BOOST_PP_ITERATION_START_4 >= 179\r
-#    define BOOST_PP_ITERATION_4 179\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 178 && BOOST_PP_ITERATION_START_4 >= 178\r
-#    define BOOST_PP_ITERATION_4 178\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 177 && BOOST_PP_ITERATION_START_4 >= 177\r
-#    define BOOST_PP_ITERATION_4 177\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 176 && BOOST_PP_ITERATION_START_4 >= 176\r
-#    define BOOST_PP_ITERATION_4 176\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 175 && BOOST_PP_ITERATION_START_4 >= 175\r
-#    define BOOST_PP_ITERATION_4 175\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 174 && BOOST_PP_ITERATION_START_4 >= 174\r
-#    define BOOST_PP_ITERATION_4 174\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 173 && BOOST_PP_ITERATION_START_4 >= 173\r
-#    define BOOST_PP_ITERATION_4 173\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 172 && BOOST_PP_ITERATION_START_4 >= 172\r
-#    define BOOST_PP_ITERATION_4 172\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 171 && BOOST_PP_ITERATION_START_4 >= 171\r
-#    define BOOST_PP_ITERATION_4 171\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 170 && BOOST_PP_ITERATION_START_4 >= 170\r
-#    define BOOST_PP_ITERATION_4 170\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 169 && BOOST_PP_ITERATION_START_4 >= 169\r
-#    define BOOST_PP_ITERATION_4 169\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 168 && BOOST_PP_ITERATION_START_4 >= 168\r
-#    define BOOST_PP_ITERATION_4 168\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 167 && BOOST_PP_ITERATION_START_4 >= 167\r
-#    define BOOST_PP_ITERATION_4 167\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 166 && BOOST_PP_ITERATION_START_4 >= 166\r
-#    define BOOST_PP_ITERATION_4 166\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 165 && BOOST_PP_ITERATION_START_4 >= 165\r
-#    define BOOST_PP_ITERATION_4 165\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 164 && BOOST_PP_ITERATION_START_4 >= 164\r
-#    define BOOST_PP_ITERATION_4 164\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 163 && BOOST_PP_ITERATION_START_4 >= 163\r
-#    define BOOST_PP_ITERATION_4 163\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 162 && BOOST_PP_ITERATION_START_4 >= 162\r
-#    define BOOST_PP_ITERATION_4 162\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 161 && BOOST_PP_ITERATION_START_4 >= 161\r
-#    define BOOST_PP_ITERATION_4 161\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 160 && BOOST_PP_ITERATION_START_4 >= 160\r
-#    define BOOST_PP_ITERATION_4 160\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 159 && BOOST_PP_ITERATION_START_4 >= 159\r
-#    define BOOST_PP_ITERATION_4 159\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 158 && BOOST_PP_ITERATION_START_4 >= 158\r
-#    define BOOST_PP_ITERATION_4 158\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 157 && BOOST_PP_ITERATION_START_4 >= 157\r
-#    define BOOST_PP_ITERATION_4 157\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 156 && BOOST_PP_ITERATION_START_4 >= 156\r
-#    define BOOST_PP_ITERATION_4 156\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 155 && BOOST_PP_ITERATION_START_4 >= 155\r
-#    define BOOST_PP_ITERATION_4 155\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 154 && BOOST_PP_ITERATION_START_4 >= 154\r
-#    define BOOST_PP_ITERATION_4 154\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 153 && BOOST_PP_ITERATION_START_4 >= 153\r
-#    define BOOST_PP_ITERATION_4 153\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 152 && BOOST_PP_ITERATION_START_4 >= 152\r
-#    define BOOST_PP_ITERATION_4 152\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 151 && BOOST_PP_ITERATION_START_4 >= 151\r
-#    define BOOST_PP_ITERATION_4 151\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 150 && BOOST_PP_ITERATION_START_4 >= 150\r
-#    define BOOST_PP_ITERATION_4 150\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 149 && BOOST_PP_ITERATION_START_4 >= 149\r
-#    define BOOST_PP_ITERATION_4 149\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 148 && BOOST_PP_ITERATION_START_4 >= 148\r
-#    define BOOST_PP_ITERATION_4 148\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 147 && BOOST_PP_ITERATION_START_4 >= 147\r
-#    define BOOST_PP_ITERATION_4 147\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 146 && BOOST_PP_ITERATION_START_4 >= 146\r
-#    define BOOST_PP_ITERATION_4 146\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 145 && BOOST_PP_ITERATION_START_4 >= 145\r
-#    define BOOST_PP_ITERATION_4 145\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 144 && BOOST_PP_ITERATION_START_4 >= 144\r
-#    define BOOST_PP_ITERATION_4 144\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 143 && BOOST_PP_ITERATION_START_4 >= 143\r
-#    define BOOST_PP_ITERATION_4 143\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 142 && BOOST_PP_ITERATION_START_4 >= 142\r
-#    define BOOST_PP_ITERATION_4 142\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 141 && BOOST_PP_ITERATION_START_4 >= 141\r
-#    define BOOST_PP_ITERATION_4 141\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 140 && BOOST_PP_ITERATION_START_4 >= 140\r
-#    define BOOST_PP_ITERATION_4 140\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 139 && BOOST_PP_ITERATION_START_4 >= 139\r
-#    define BOOST_PP_ITERATION_4 139\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 138 && BOOST_PP_ITERATION_START_4 >= 138\r
-#    define BOOST_PP_ITERATION_4 138\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 137 && BOOST_PP_ITERATION_START_4 >= 137\r
-#    define BOOST_PP_ITERATION_4 137\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 136 && BOOST_PP_ITERATION_START_4 >= 136\r
-#    define BOOST_PP_ITERATION_4 136\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 135 && BOOST_PP_ITERATION_START_4 >= 135\r
-#    define BOOST_PP_ITERATION_4 135\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 134 && BOOST_PP_ITERATION_START_4 >= 134\r
-#    define BOOST_PP_ITERATION_4 134\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 133 && BOOST_PP_ITERATION_START_4 >= 133\r
-#    define BOOST_PP_ITERATION_4 133\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 132 && BOOST_PP_ITERATION_START_4 >= 132\r
-#    define BOOST_PP_ITERATION_4 132\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 131 && BOOST_PP_ITERATION_START_4 >= 131\r
-#    define BOOST_PP_ITERATION_4 131\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 130 && BOOST_PP_ITERATION_START_4 >= 130\r
-#    define BOOST_PP_ITERATION_4 130\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 129 && BOOST_PP_ITERATION_START_4 >= 129\r
-#    define BOOST_PP_ITERATION_4 129\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 128 && BOOST_PP_ITERATION_START_4 >= 128\r
-#    define BOOST_PP_ITERATION_4 128\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 127 && BOOST_PP_ITERATION_START_4 >= 127\r
-#    define BOOST_PP_ITERATION_4 127\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 126 && BOOST_PP_ITERATION_START_4 >= 126\r
-#    define BOOST_PP_ITERATION_4 126\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 125 && BOOST_PP_ITERATION_START_4 >= 125\r
-#    define BOOST_PP_ITERATION_4 125\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 124 && BOOST_PP_ITERATION_START_4 >= 124\r
-#    define BOOST_PP_ITERATION_4 124\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 123 && BOOST_PP_ITERATION_START_4 >= 123\r
-#    define BOOST_PP_ITERATION_4 123\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 122 && BOOST_PP_ITERATION_START_4 >= 122\r
-#    define BOOST_PP_ITERATION_4 122\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 121 && BOOST_PP_ITERATION_START_4 >= 121\r
-#    define BOOST_PP_ITERATION_4 121\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 120 && BOOST_PP_ITERATION_START_4 >= 120\r
-#    define BOOST_PP_ITERATION_4 120\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 119 && BOOST_PP_ITERATION_START_4 >= 119\r
-#    define BOOST_PP_ITERATION_4 119\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 118 && BOOST_PP_ITERATION_START_4 >= 118\r
-#    define BOOST_PP_ITERATION_4 118\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 117 && BOOST_PP_ITERATION_START_4 >= 117\r
-#    define BOOST_PP_ITERATION_4 117\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 116 && BOOST_PP_ITERATION_START_4 >= 116\r
-#    define BOOST_PP_ITERATION_4 116\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 115 && BOOST_PP_ITERATION_START_4 >= 115\r
-#    define BOOST_PP_ITERATION_4 115\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 114 && BOOST_PP_ITERATION_START_4 >= 114\r
-#    define BOOST_PP_ITERATION_4 114\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 113 && BOOST_PP_ITERATION_START_4 >= 113\r
-#    define BOOST_PP_ITERATION_4 113\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 112 && BOOST_PP_ITERATION_START_4 >= 112\r
-#    define BOOST_PP_ITERATION_4 112\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 111 && BOOST_PP_ITERATION_START_4 >= 111\r
-#    define BOOST_PP_ITERATION_4 111\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 110 && BOOST_PP_ITERATION_START_4 >= 110\r
-#    define BOOST_PP_ITERATION_4 110\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 109 && BOOST_PP_ITERATION_START_4 >= 109\r
-#    define BOOST_PP_ITERATION_4 109\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 108 && BOOST_PP_ITERATION_START_4 >= 108\r
-#    define BOOST_PP_ITERATION_4 108\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 107 && BOOST_PP_ITERATION_START_4 >= 107\r
-#    define BOOST_PP_ITERATION_4 107\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 106 && BOOST_PP_ITERATION_START_4 >= 106\r
-#    define BOOST_PP_ITERATION_4 106\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 105 && BOOST_PP_ITERATION_START_4 >= 105\r
-#    define BOOST_PP_ITERATION_4 105\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 104 && BOOST_PP_ITERATION_START_4 >= 104\r
-#    define BOOST_PP_ITERATION_4 104\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 103 && BOOST_PP_ITERATION_START_4 >= 103\r
-#    define BOOST_PP_ITERATION_4 103\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 102 && BOOST_PP_ITERATION_START_4 >= 102\r
-#    define BOOST_PP_ITERATION_4 102\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 101 && BOOST_PP_ITERATION_START_4 >= 101\r
-#    define BOOST_PP_ITERATION_4 101\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 100 && BOOST_PP_ITERATION_START_4 >= 100\r
-#    define BOOST_PP_ITERATION_4 100\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 99 && BOOST_PP_ITERATION_START_4 >= 99\r
-#    define BOOST_PP_ITERATION_4 99\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 98 && BOOST_PP_ITERATION_START_4 >= 98\r
-#    define BOOST_PP_ITERATION_4 98\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 97 && BOOST_PP_ITERATION_START_4 >= 97\r
-#    define BOOST_PP_ITERATION_4 97\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 96 && BOOST_PP_ITERATION_START_4 >= 96\r
-#    define BOOST_PP_ITERATION_4 96\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 95 && BOOST_PP_ITERATION_START_4 >= 95\r
-#    define BOOST_PP_ITERATION_4 95\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 94 && BOOST_PP_ITERATION_START_4 >= 94\r
-#    define BOOST_PP_ITERATION_4 94\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 93 && BOOST_PP_ITERATION_START_4 >= 93\r
-#    define BOOST_PP_ITERATION_4 93\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 92 && BOOST_PP_ITERATION_START_4 >= 92\r
-#    define BOOST_PP_ITERATION_4 92\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 91 && BOOST_PP_ITERATION_START_4 >= 91\r
-#    define BOOST_PP_ITERATION_4 91\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 90 && BOOST_PP_ITERATION_START_4 >= 90\r
-#    define BOOST_PP_ITERATION_4 90\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 89 && BOOST_PP_ITERATION_START_4 >= 89\r
-#    define BOOST_PP_ITERATION_4 89\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 88 && BOOST_PP_ITERATION_START_4 >= 88\r
-#    define BOOST_PP_ITERATION_4 88\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 87 && BOOST_PP_ITERATION_START_4 >= 87\r
-#    define BOOST_PP_ITERATION_4 87\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 86 && BOOST_PP_ITERATION_START_4 >= 86\r
-#    define BOOST_PP_ITERATION_4 86\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 85 && BOOST_PP_ITERATION_START_4 >= 85\r
-#    define BOOST_PP_ITERATION_4 85\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 84 && BOOST_PP_ITERATION_START_4 >= 84\r
-#    define BOOST_PP_ITERATION_4 84\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 83 && BOOST_PP_ITERATION_START_4 >= 83\r
-#    define BOOST_PP_ITERATION_4 83\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 82 && BOOST_PP_ITERATION_START_4 >= 82\r
-#    define BOOST_PP_ITERATION_4 82\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 81 && BOOST_PP_ITERATION_START_4 >= 81\r
-#    define BOOST_PP_ITERATION_4 81\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 80 && BOOST_PP_ITERATION_START_4 >= 80\r
-#    define BOOST_PP_ITERATION_4 80\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 79 && BOOST_PP_ITERATION_START_4 >= 79\r
-#    define BOOST_PP_ITERATION_4 79\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 78 && BOOST_PP_ITERATION_START_4 >= 78\r
-#    define BOOST_PP_ITERATION_4 78\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 77 && BOOST_PP_ITERATION_START_4 >= 77\r
-#    define BOOST_PP_ITERATION_4 77\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 76 && BOOST_PP_ITERATION_START_4 >= 76\r
-#    define BOOST_PP_ITERATION_4 76\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 75 && BOOST_PP_ITERATION_START_4 >= 75\r
-#    define BOOST_PP_ITERATION_4 75\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 74 && BOOST_PP_ITERATION_START_4 >= 74\r
-#    define BOOST_PP_ITERATION_4 74\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 73 && BOOST_PP_ITERATION_START_4 >= 73\r
-#    define BOOST_PP_ITERATION_4 73\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 72 && BOOST_PP_ITERATION_START_4 >= 72\r
-#    define BOOST_PP_ITERATION_4 72\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 71 && BOOST_PP_ITERATION_START_4 >= 71\r
-#    define BOOST_PP_ITERATION_4 71\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 70 && BOOST_PP_ITERATION_START_4 >= 70\r
-#    define BOOST_PP_ITERATION_4 70\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 69 && BOOST_PP_ITERATION_START_4 >= 69\r
-#    define BOOST_PP_ITERATION_4 69\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 68 && BOOST_PP_ITERATION_START_4 >= 68\r
-#    define BOOST_PP_ITERATION_4 68\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 67 && BOOST_PP_ITERATION_START_4 >= 67\r
-#    define BOOST_PP_ITERATION_4 67\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 66 && BOOST_PP_ITERATION_START_4 >= 66\r
-#    define BOOST_PP_ITERATION_4 66\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 65 && BOOST_PP_ITERATION_START_4 >= 65\r
-#    define BOOST_PP_ITERATION_4 65\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 64 && BOOST_PP_ITERATION_START_4 >= 64\r
-#    define BOOST_PP_ITERATION_4 64\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 63 && BOOST_PP_ITERATION_START_4 >= 63\r
-#    define BOOST_PP_ITERATION_4 63\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 62 && BOOST_PP_ITERATION_START_4 >= 62\r
-#    define BOOST_PP_ITERATION_4 62\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 61 && BOOST_PP_ITERATION_START_4 >= 61\r
-#    define BOOST_PP_ITERATION_4 61\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 60 && BOOST_PP_ITERATION_START_4 >= 60\r
-#    define BOOST_PP_ITERATION_4 60\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 59 && BOOST_PP_ITERATION_START_4 >= 59\r
-#    define BOOST_PP_ITERATION_4 59\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 58 && BOOST_PP_ITERATION_START_4 >= 58\r
-#    define BOOST_PP_ITERATION_4 58\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 57 && BOOST_PP_ITERATION_START_4 >= 57\r
-#    define BOOST_PP_ITERATION_4 57\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 56 && BOOST_PP_ITERATION_START_4 >= 56\r
-#    define BOOST_PP_ITERATION_4 56\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 55 && BOOST_PP_ITERATION_START_4 >= 55\r
-#    define BOOST_PP_ITERATION_4 55\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 54 && BOOST_PP_ITERATION_START_4 >= 54\r
-#    define BOOST_PP_ITERATION_4 54\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 53 && BOOST_PP_ITERATION_START_4 >= 53\r
-#    define BOOST_PP_ITERATION_4 53\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 52 && BOOST_PP_ITERATION_START_4 >= 52\r
-#    define BOOST_PP_ITERATION_4 52\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 51 && BOOST_PP_ITERATION_START_4 >= 51\r
-#    define BOOST_PP_ITERATION_4 51\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 50 && BOOST_PP_ITERATION_START_4 >= 50\r
-#    define BOOST_PP_ITERATION_4 50\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 49 && BOOST_PP_ITERATION_START_4 >= 49\r
-#    define BOOST_PP_ITERATION_4 49\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 48 && BOOST_PP_ITERATION_START_4 >= 48\r
-#    define BOOST_PP_ITERATION_4 48\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 47 && BOOST_PP_ITERATION_START_4 >= 47\r
-#    define BOOST_PP_ITERATION_4 47\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 46 && BOOST_PP_ITERATION_START_4 >= 46\r
-#    define BOOST_PP_ITERATION_4 46\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 45 && BOOST_PP_ITERATION_START_4 >= 45\r
-#    define BOOST_PP_ITERATION_4 45\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 44 && BOOST_PP_ITERATION_START_4 >= 44\r
-#    define BOOST_PP_ITERATION_4 44\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 43 && BOOST_PP_ITERATION_START_4 >= 43\r
-#    define BOOST_PP_ITERATION_4 43\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 42 && BOOST_PP_ITERATION_START_4 >= 42\r
-#    define BOOST_PP_ITERATION_4 42\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 41 && BOOST_PP_ITERATION_START_4 >= 41\r
-#    define BOOST_PP_ITERATION_4 41\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 40 && BOOST_PP_ITERATION_START_4 >= 40\r
-#    define BOOST_PP_ITERATION_4 40\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 39 && BOOST_PP_ITERATION_START_4 >= 39\r
-#    define BOOST_PP_ITERATION_4 39\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 38 && BOOST_PP_ITERATION_START_4 >= 38\r
-#    define BOOST_PP_ITERATION_4 38\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 37 && BOOST_PP_ITERATION_START_4 >= 37\r
-#    define BOOST_PP_ITERATION_4 37\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 36 && BOOST_PP_ITERATION_START_4 >= 36\r
-#    define BOOST_PP_ITERATION_4 36\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 35 && BOOST_PP_ITERATION_START_4 >= 35\r
-#    define BOOST_PP_ITERATION_4 35\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 34 && BOOST_PP_ITERATION_START_4 >= 34\r
-#    define BOOST_PP_ITERATION_4 34\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 33 && BOOST_PP_ITERATION_START_4 >= 33\r
-#    define BOOST_PP_ITERATION_4 33\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 32 && BOOST_PP_ITERATION_START_4 >= 32\r
-#    define BOOST_PP_ITERATION_4 32\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 31 && BOOST_PP_ITERATION_START_4 >= 31\r
-#    define BOOST_PP_ITERATION_4 31\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 30 && BOOST_PP_ITERATION_START_4 >= 30\r
-#    define BOOST_PP_ITERATION_4 30\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 29 && BOOST_PP_ITERATION_START_4 >= 29\r
-#    define BOOST_PP_ITERATION_4 29\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 28 && BOOST_PP_ITERATION_START_4 >= 28\r
-#    define BOOST_PP_ITERATION_4 28\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 27 && BOOST_PP_ITERATION_START_4 >= 27\r
-#    define BOOST_PP_ITERATION_4 27\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 26 && BOOST_PP_ITERATION_START_4 >= 26\r
-#    define BOOST_PP_ITERATION_4 26\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 25 && BOOST_PP_ITERATION_START_4 >= 25\r
-#    define BOOST_PP_ITERATION_4 25\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 24 && BOOST_PP_ITERATION_START_4 >= 24\r
-#    define BOOST_PP_ITERATION_4 24\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 23 && BOOST_PP_ITERATION_START_4 >= 23\r
-#    define BOOST_PP_ITERATION_4 23\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 22 && BOOST_PP_ITERATION_START_4 >= 22\r
-#    define BOOST_PP_ITERATION_4 22\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 21 && BOOST_PP_ITERATION_START_4 >= 21\r
-#    define BOOST_PP_ITERATION_4 21\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 20 && BOOST_PP_ITERATION_START_4 >= 20\r
-#    define BOOST_PP_ITERATION_4 20\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 19 && BOOST_PP_ITERATION_START_4 >= 19\r
-#    define BOOST_PP_ITERATION_4 19\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 18 && BOOST_PP_ITERATION_START_4 >= 18\r
-#    define BOOST_PP_ITERATION_4 18\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 17 && BOOST_PP_ITERATION_START_4 >= 17\r
-#    define BOOST_PP_ITERATION_4 17\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 16 && BOOST_PP_ITERATION_START_4 >= 16\r
-#    define BOOST_PP_ITERATION_4 16\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 15 && BOOST_PP_ITERATION_START_4 >= 15\r
-#    define BOOST_PP_ITERATION_4 15\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 14 && BOOST_PP_ITERATION_START_4 >= 14\r
-#    define BOOST_PP_ITERATION_4 14\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 13 && BOOST_PP_ITERATION_START_4 >= 13\r
-#    define BOOST_PP_ITERATION_4 13\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 12 && BOOST_PP_ITERATION_START_4 >= 12\r
-#    define BOOST_PP_ITERATION_4 12\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 11 && BOOST_PP_ITERATION_START_4 >= 11\r
-#    define BOOST_PP_ITERATION_4 11\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 10 && BOOST_PP_ITERATION_START_4 >= 10\r
-#    define BOOST_PP_ITERATION_4 10\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 9 && BOOST_PP_ITERATION_START_4 >= 9\r
-#    define BOOST_PP_ITERATION_4 9\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 8 && BOOST_PP_ITERATION_START_4 >= 8\r
-#    define BOOST_PP_ITERATION_4 8\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 7 && BOOST_PP_ITERATION_START_4 >= 7\r
-#    define BOOST_PP_ITERATION_4 7\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 6 && BOOST_PP_ITERATION_START_4 >= 6\r
-#    define BOOST_PP_ITERATION_4 6\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 5 && BOOST_PP_ITERATION_START_4 >= 5\r
-#    define BOOST_PP_ITERATION_4 5\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 4 && BOOST_PP_ITERATION_START_4 >= 4\r
-#    define BOOST_PP_ITERATION_4 4\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 3 && BOOST_PP_ITERATION_START_4 >= 3\r
-#    define BOOST_PP_ITERATION_4 3\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 2 && BOOST_PP_ITERATION_START_4 >= 2\r
-#    define BOOST_PP_ITERATION_4 2\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 1 && BOOST_PP_ITERATION_START_4 >= 1\r
-#    define BOOST_PP_ITERATION_4 1\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_4 <= 0 && BOOST_PP_ITERATION_START_4 >= 0\r
-#    define BOOST_PP_ITERATION_4 0\r
-#    include BOOST_PP_FILENAME_4\r
-#    undef BOOST_PP_ITERATION_4\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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 BOOST_PP_ITERATION_FINISH_4 <= 256 && BOOST_PP_ITERATION_START_4 >= 256
+#    define BOOST_PP_ITERATION_4 256
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 255 && BOOST_PP_ITERATION_START_4 >= 255
+#    define BOOST_PP_ITERATION_4 255
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 254 && BOOST_PP_ITERATION_START_4 >= 254
+#    define BOOST_PP_ITERATION_4 254
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 253 && BOOST_PP_ITERATION_START_4 >= 253
+#    define BOOST_PP_ITERATION_4 253
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 252 && BOOST_PP_ITERATION_START_4 >= 252
+#    define BOOST_PP_ITERATION_4 252
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 251 && BOOST_PP_ITERATION_START_4 >= 251
+#    define BOOST_PP_ITERATION_4 251
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 250 && BOOST_PP_ITERATION_START_4 >= 250
+#    define BOOST_PP_ITERATION_4 250
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 249 && BOOST_PP_ITERATION_START_4 >= 249
+#    define BOOST_PP_ITERATION_4 249
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 248 && BOOST_PP_ITERATION_START_4 >= 248
+#    define BOOST_PP_ITERATION_4 248
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 247 && BOOST_PP_ITERATION_START_4 >= 247
+#    define BOOST_PP_ITERATION_4 247
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 246 && BOOST_PP_ITERATION_START_4 >= 246
+#    define BOOST_PP_ITERATION_4 246
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 245 && BOOST_PP_ITERATION_START_4 >= 245
+#    define BOOST_PP_ITERATION_4 245
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 244 && BOOST_PP_ITERATION_START_4 >= 244
+#    define BOOST_PP_ITERATION_4 244
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 243 && BOOST_PP_ITERATION_START_4 >= 243
+#    define BOOST_PP_ITERATION_4 243
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 242 && BOOST_PP_ITERATION_START_4 >= 242
+#    define BOOST_PP_ITERATION_4 242
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 241 && BOOST_PP_ITERATION_START_4 >= 241
+#    define BOOST_PP_ITERATION_4 241
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 240 && BOOST_PP_ITERATION_START_4 >= 240
+#    define BOOST_PP_ITERATION_4 240
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 239 && BOOST_PP_ITERATION_START_4 >= 239
+#    define BOOST_PP_ITERATION_4 239
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 238 && BOOST_PP_ITERATION_START_4 >= 238
+#    define BOOST_PP_ITERATION_4 238
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 237 && BOOST_PP_ITERATION_START_4 >= 237
+#    define BOOST_PP_ITERATION_4 237
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 236 && BOOST_PP_ITERATION_START_4 >= 236
+#    define BOOST_PP_ITERATION_4 236
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 235 && BOOST_PP_ITERATION_START_4 >= 235
+#    define BOOST_PP_ITERATION_4 235
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 234 && BOOST_PP_ITERATION_START_4 >= 234
+#    define BOOST_PP_ITERATION_4 234
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 233 && BOOST_PP_ITERATION_START_4 >= 233
+#    define BOOST_PP_ITERATION_4 233
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 232 && BOOST_PP_ITERATION_START_4 >= 232
+#    define BOOST_PP_ITERATION_4 232
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 231 && BOOST_PP_ITERATION_START_4 >= 231
+#    define BOOST_PP_ITERATION_4 231
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 230 && BOOST_PP_ITERATION_START_4 >= 230
+#    define BOOST_PP_ITERATION_4 230
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 229 && BOOST_PP_ITERATION_START_4 >= 229
+#    define BOOST_PP_ITERATION_4 229
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 228 && BOOST_PP_ITERATION_START_4 >= 228
+#    define BOOST_PP_ITERATION_4 228
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 227 && BOOST_PP_ITERATION_START_4 >= 227
+#    define BOOST_PP_ITERATION_4 227
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 226 && BOOST_PP_ITERATION_START_4 >= 226
+#    define BOOST_PP_ITERATION_4 226
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 225 && BOOST_PP_ITERATION_START_4 >= 225
+#    define BOOST_PP_ITERATION_4 225
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 224 && BOOST_PP_ITERATION_START_4 >= 224
+#    define BOOST_PP_ITERATION_4 224
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 223 && BOOST_PP_ITERATION_START_4 >= 223
+#    define BOOST_PP_ITERATION_4 223
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 222 && BOOST_PP_ITERATION_START_4 >= 222
+#    define BOOST_PP_ITERATION_4 222
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 221 && BOOST_PP_ITERATION_START_4 >= 221
+#    define BOOST_PP_ITERATION_4 221
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 220 && BOOST_PP_ITERATION_START_4 >= 220
+#    define BOOST_PP_ITERATION_4 220
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 219 && BOOST_PP_ITERATION_START_4 >= 219
+#    define BOOST_PP_ITERATION_4 219
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 218 && BOOST_PP_ITERATION_START_4 >= 218
+#    define BOOST_PP_ITERATION_4 218
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 217 && BOOST_PP_ITERATION_START_4 >= 217
+#    define BOOST_PP_ITERATION_4 217
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 216 && BOOST_PP_ITERATION_START_4 >= 216
+#    define BOOST_PP_ITERATION_4 216
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 215 && BOOST_PP_ITERATION_START_4 >= 215
+#    define BOOST_PP_ITERATION_4 215
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 214 && BOOST_PP_ITERATION_START_4 >= 214
+#    define BOOST_PP_ITERATION_4 214
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 213 && BOOST_PP_ITERATION_START_4 >= 213
+#    define BOOST_PP_ITERATION_4 213
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 212 && BOOST_PP_ITERATION_START_4 >= 212
+#    define BOOST_PP_ITERATION_4 212
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 211 && BOOST_PP_ITERATION_START_4 >= 211
+#    define BOOST_PP_ITERATION_4 211
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 210 && BOOST_PP_ITERATION_START_4 >= 210
+#    define BOOST_PP_ITERATION_4 210
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 209 && BOOST_PP_ITERATION_START_4 >= 209
+#    define BOOST_PP_ITERATION_4 209
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 208 && BOOST_PP_ITERATION_START_4 >= 208
+#    define BOOST_PP_ITERATION_4 208
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 207 && BOOST_PP_ITERATION_START_4 >= 207
+#    define BOOST_PP_ITERATION_4 207
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 206 && BOOST_PP_ITERATION_START_4 >= 206
+#    define BOOST_PP_ITERATION_4 206
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 205 && BOOST_PP_ITERATION_START_4 >= 205
+#    define BOOST_PP_ITERATION_4 205
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 204 && BOOST_PP_ITERATION_START_4 >= 204
+#    define BOOST_PP_ITERATION_4 204
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 203 && BOOST_PP_ITERATION_START_4 >= 203
+#    define BOOST_PP_ITERATION_4 203
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 202 && BOOST_PP_ITERATION_START_4 >= 202
+#    define BOOST_PP_ITERATION_4 202
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 201 && BOOST_PP_ITERATION_START_4 >= 201
+#    define BOOST_PP_ITERATION_4 201
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 200 && BOOST_PP_ITERATION_START_4 >= 200
+#    define BOOST_PP_ITERATION_4 200
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 199 && BOOST_PP_ITERATION_START_4 >= 199
+#    define BOOST_PP_ITERATION_4 199
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 198 && BOOST_PP_ITERATION_START_4 >= 198
+#    define BOOST_PP_ITERATION_4 198
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 197 && BOOST_PP_ITERATION_START_4 >= 197
+#    define BOOST_PP_ITERATION_4 197
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 196 && BOOST_PP_ITERATION_START_4 >= 196
+#    define BOOST_PP_ITERATION_4 196
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 195 && BOOST_PP_ITERATION_START_4 >= 195
+#    define BOOST_PP_ITERATION_4 195
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 194 && BOOST_PP_ITERATION_START_4 >= 194
+#    define BOOST_PP_ITERATION_4 194
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 193 && BOOST_PP_ITERATION_START_4 >= 193
+#    define BOOST_PP_ITERATION_4 193
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 192 && BOOST_PP_ITERATION_START_4 >= 192
+#    define BOOST_PP_ITERATION_4 192
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 191 && BOOST_PP_ITERATION_START_4 >= 191
+#    define BOOST_PP_ITERATION_4 191
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 190 && BOOST_PP_ITERATION_START_4 >= 190
+#    define BOOST_PP_ITERATION_4 190
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 189 && BOOST_PP_ITERATION_START_4 >= 189
+#    define BOOST_PP_ITERATION_4 189
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 188 && BOOST_PP_ITERATION_START_4 >= 188
+#    define BOOST_PP_ITERATION_4 188
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 187 && BOOST_PP_ITERATION_START_4 >= 187
+#    define BOOST_PP_ITERATION_4 187
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 186 && BOOST_PP_ITERATION_START_4 >= 186
+#    define BOOST_PP_ITERATION_4 186
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 185 && BOOST_PP_ITERATION_START_4 >= 185
+#    define BOOST_PP_ITERATION_4 185
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 184 && BOOST_PP_ITERATION_START_4 >= 184
+#    define BOOST_PP_ITERATION_4 184
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 183 && BOOST_PP_ITERATION_START_4 >= 183
+#    define BOOST_PP_ITERATION_4 183
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 182 && BOOST_PP_ITERATION_START_4 >= 182
+#    define BOOST_PP_ITERATION_4 182
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 181 && BOOST_PP_ITERATION_START_4 >= 181
+#    define BOOST_PP_ITERATION_4 181
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 180 && BOOST_PP_ITERATION_START_4 >= 180
+#    define BOOST_PP_ITERATION_4 180
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 179 && BOOST_PP_ITERATION_START_4 >= 179
+#    define BOOST_PP_ITERATION_4 179
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 178 && BOOST_PP_ITERATION_START_4 >= 178
+#    define BOOST_PP_ITERATION_4 178
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 177 && BOOST_PP_ITERATION_START_4 >= 177
+#    define BOOST_PP_ITERATION_4 177
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 176 && BOOST_PP_ITERATION_START_4 >= 176
+#    define BOOST_PP_ITERATION_4 176
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 175 && BOOST_PP_ITERATION_START_4 >= 175
+#    define BOOST_PP_ITERATION_4 175
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 174 && BOOST_PP_ITERATION_START_4 >= 174
+#    define BOOST_PP_ITERATION_4 174
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 173 && BOOST_PP_ITERATION_START_4 >= 173
+#    define BOOST_PP_ITERATION_4 173
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 172 && BOOST_PP_ITERATION_START_4 >= 172
+#    define BOOST_PP_ITERATION_4 172
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 171 && BOOST_PP_ITERATION_START_4 >= 171
+#    define BOOST_PP_ITERATION_4 171
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 170 && BOOST_PP_ITERATION_START_4 >= 170
+#    define BOOST_PP_ITERATION_4 170
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 169 && BOOST_PP_ITERATION_START_4 >= 169
+#    define BOOST_PP_ITERATION_4 169
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 168 && BOOST_PP_ITERATION_START_4 >= 168
+#    define BOOST_PP_ITERATION_4 168
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 167 && BOOST_PP_ITERATION_START_4 >= 167
+#    define BOOST_PP_ITERATION_4 167
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 166 && BOOST_PP_ITERATION_START_4 >= 166
+#    define BOOST_PP_ITERATION_4 166
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 165 && BOOST_PP_ITERATION_START_4 >= 165
+#    define BOOST_PP_ITERATION_4 165
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 164 && BOOST_PP_ITERATION_START_4 >= 164
+#    define BOOST_PP_ITERATION_4 164
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 163 && BOOST_PP_ITERATION_START_4 >= 163
+#    define BOOST_PP_ITERATION_4 163
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 162 && BOOST_PP_ITERATION_START_4 >= 162
+#    define BOOST_PP_ITERATION_4 162
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 161 && BOOST_PP_ITERATION_START_4 >= 161
+#    define BOOST_PP_ITERATION_4 161
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 160 && BOOST_PP_ITERATION_START_4 >= 160
+#    define BOOST_PP_ITERATION_4 160
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 159 && BOOST_PP_ITERATION_START_4 >= 159
+#    define BOOST_PP_ITERATION_4 159
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 158 && BOOST_PP_ITERATION_START_4 >= 158
+#    define BOOST_PP_ITERATION_4 158
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 157 && BOOST_PP_ITERATION_START_4 >= 157
+#    define BOOST_PP_ITERATION_4 157
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 156 && BOOST_PP_ITERATION_START_4 >= 156
+#    define BOOST_PP_ITERATION_4 156
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 155 && BOOST_PP_ITERATION_START_4 >= 155
+#    define BOOST_PP_ITERATION_4 155
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 154 && BOOST_PP_ITERATION_START_4 >= 154
+#    define BOOST_PP_ITERATION_4 154
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 153 && BOOST_PP_ITERATION_START_4 >= 153
+#    define BOOST_PP_ITERATION_4 153
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 152 && BOOST_PP_ITERATION_START_4 >= 152
+#    define BOOST_PP_ITERATION_4 152
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 151 && BOOST_PP_ITERATION_START_4 >= 151
+#    define BOOST_PP_ITERATION_4 151
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 150 && BOOST_PP_ITERATION_START_4 >= 150
+#    define BOOST_PP_ITERATION_4 150
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 149 && BOOST_PP_ITERATION_START_4 >= 149
+#    define BOOST_PP_ITERATION_4 149
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 148 && BOOST_PP_ITERATION_START_4 >= 148
+#    define BOOST_PP_ITERATION_4 148
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 147 && BOOST_PP_ITERATION_START_4 >= 147
+#    define BOOST_PP_ITERATION_4 147
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 146 && BOOST_PP_ITERATION_START_4 >= 146
+#    define BOOST_PP_ITERATION_4 146
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 145 && BOOST_PP_ITERATION_START_4 >= 145
+#    define BOOST_PP_ITERATION_4 145
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 144 && BOOST_PP_ITERATION_START_4 >= 144
+#    define BOOST_PP_ITERATION_4 144
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 143 && BOOST_PP_ITERATION_START_4 >= 143
+#    define BOOST_PP_ITERATION_4 143
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 142 && BOOST_PP_ITERATION_START_4 >= 142
+#    define BOOST_PP_ITERATION_4 142
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 141 && BOOST_PP_ITERATION_START_4 >= 141
+#    define BOOST_PP_ITERATION_4 141
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 140 && BOOST_PP_ITERATION_START_4 >= 140
+#    define BOOST_PP_ITERATION_4 140
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 139 && BOOST_PP_ITERATION_START_4 >= 139
+#    define BOOST_PP_ITERATION_4 139
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 138 && BOOST_PP_ITERATION_START_4 >= 138
+#    define BOOST_PP_ITERATION_4 138
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 137 && BOOST_PP_ITERATION_START_4 >= 137
+#    define BOOST_PP_ITERATION_4 137
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 136 && BOOST_PP_ITERATION_START_4 >= 136
+#    define BOOST_PP_ITERATION_4 136
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 135 && BOOST_PP_ITERATION_START_4 >= 135
+#    define BOOST_PP_ITERATION_4 135
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 134 && BOOST_PP_ITERATION_START_4 >= 134
+#    define BOOST_PP_ITERATION_4 134
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 133 && BOOST_PP_ITERATION_START_4 >= 133
+#    define BOOST_PP_ITERATION_4 133
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 132 && BOOST_PP_ITERATION_START_4 >= 132
+#    define BOOST_PP_ITERATION_4 132
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 131 && BOOST_PP_ITERATION_START_4 >= 131
+#    define BOOST_PP_ITERATION_4 131
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 130 && BOOST_PP_ITERATION_START_4 >= 130
+#    define BOOST_PP_ITERATION_4 130
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 129 && BOOST_PP_ITERATION_START_4 >= 129
+#    define BOOST_PP_ITERATION_4 129
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 128 && BOOST_PP_ITERATION_START_4 >= 128
+#    define BOOST_PP_ITERATION_4 128
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 127 && BOOST_PP_ITERATION_START_4 >= 127
+#    define BOOST_PP_ITERATION_4 127
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 126 && BOOST_PP_ITERATION_START_4 >= 126
+#    define BOOST_PP_ITERATION_4 126
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 125 && BOOST_PP_ITERATION_START_4 >= 125
+#    define BOOST_PP_ITERATION_4 125
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 124 && BOOST_PP_ITERATION_START_4 >= 124
+#    define BOOST_PP_ITERATION_4 124
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 123 && BOOST_PP_ITERATION_START_4 >= 123
+#    define BOOST_PP_ITERATION_4 123
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 122 && BOOST_PP_ITERATION_START_4 >= 122
+#    define BOOST_PP_ITERATION_4 122
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 121 && BOOST_PP_ITERATION_START_4 >= 121
+#    define BOOST_PP_ITERATION_4 121
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 120 && BOOST_PP_ITERATION_START_4 >= 120
+#    define BOOST_PP_ITERATION_4 120
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 119 && BOOST_PP_ITERATION_START_4 >= 119
+#    define BOOST_PP_ITERATION_4 119
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 118 && BOOST_PP_ITERATION_START_4 >= 118
+#    define BOOST_PP_ITERATION_4 118
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 117 && BOOST_PP_ITERATION_START_4 >= 117
+#    define BOOST_PP_ITERATION_4 117
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 116 && BOOST_PP_ITERATION_START_4 >= 116
+#    define BOOST_PP_ITERATION_4 116
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 115 && BOOST_PP_ITERATION_START_4 >= 115
+#    define BOOST_PP_ITERATION_4 115
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 114 && BOOST_PP_ITERATION_START_4 >= 114
+#    define BOOST_PP_ITERATION_4 114
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 113 && BOOST_PP_ITERATION_START_4 >= 113
+#    define BOOST_PP_ITERATION_4 113
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 112 && BOOST_PP_ITERATION_START_4 >= 112
+#    define BOOST_PP_ITERATION_4 112
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 111 && BOOST_PP_ITERATION_START_4 >= 111
+#    define BOOST_PP_ITERATION_4 111
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 110 && BOOST_PP_ITERATION_START_4 >= 110
+#    define BOOST_PP_ITERATION_4 110
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 109 && BOOST_PP_ITERATION_START_4 >= 109
+#    define BOOST_PP_ITERATION_4 109
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 108 && BOOST_PP_ITERATION_START_4 >= 108
+#    define BOOST_PP_ITERATION_4 108
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 107 && BOOST_PP_ITERATION_START_4 >= 107
+#    define BOOST_PP_ITERATION_4 107
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 106 && BOOST_PP_ITERATION_START_4 >= 106
+#    define BOOST_PP_ITERATION_4 106
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 105 && BOOST_PP_ITERATION_START_4 >= 105
+#    define BOOST_PP_ITERATION_4 105
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 104 && BOOST_PP_ITERATION_START_4 >= 104
+#    define BOOST_PP_ITERATION_4 104
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 103 && BOOST_PP_ITERATION_START_4 >= 103
+#    define BOOST_PP_ITERATION_4 103
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 102 && BOOST_PP_ITERATION_START_4 >= 102
+#    define BOOST_PP_ITERATION_4 102
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 101 && BOOST_PP_ITERATION_START_4 >= 101
+#    define BOOST_PP_ITERATION_4 101
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 100 && BOOST_PP_ITERATION_START_4 >= 100
+#    define BOOST_PP_ITERATION_4 100
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 99 && BOOST_PP_ITERATION_START_4 >= 99
+#    define BOOST_PP_ITERATION_4 99
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 98 && BOOST_PP_ITERATION_START_4 >= 98
+#    define BOOST_PP_ITERATION_4 98
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 97 && BOOST_PP_ITERATION_START_4 >= 97
+#    define BOOST_PP_ITERATION_4 97
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 96 && BOOST_PP_ITERATION_START_4 >= 96
+#    define BOOST_PP_ITERATION_4 96
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 95 && BOOST_PP_ITERATION_START_4 >= 95
+#    define BOOST_PP_ITERATION_4 95
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 94 && BOOST_PP_ITERATION_START_4 >= 94
+#    define BOOST_PP_ITERATION_4 94
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 93 && BOOST_PP_ITERATION_START_4 >= 93
+#    define BOOST_PP_ITERATION_4 93
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 92 && BOOST_PP_ITERATION_START_4 >= 92
+#    define BOOST_PP_ITERATION_4 92
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 91 && BOOST_PP_ITERATION_START_4 >= 91
+#    define BOOST_PP_ITERATION_4 91
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 90 && BOOST_PP_ITERATION_START_4 >= 90
+#    define BOOST_PP_ITERATION_4 90
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 89 && BOOST_PP_ITERATION_START_4 >= 89
+#    define BOOST_PP_ITERATION_4 89
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 88 && BOOST_PP_ITERATION_START_4 >= 88
+#    define BOOST_PP_ITERATION_4 88
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 87 && BOOST_PP_ITERATION_START_4 >= 87
+#    define BOOST_PP_ITERATION_4 87
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 86 && BOOST_PP_ITERATION_START_4 >= 86
+#    define BOOST_PP_ITERATION_4 86
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 85 && BOOST_PP_ITERATION_START_4 >= 85
+#    define BOOST_PP_ITERATION_4 85
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 84 && BOOST_PP_ITERATION_START_4 >= 84
+#    define BOOST_PP_ITERATION_4 84
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 83 && BOOST_PP_ITERATION_START_4 >= 83
+#    define BOOST_PP_ITERATION_4 83
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 82 && BOOST_PP_ITERATION_START_4 >= 82
+#    define BOOST_PP_ITERATION_4 82
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 81 && BOOST_PP_ITERATION_START_4 >= 81
+#    define BOOST_PP_ITERATION_4 81
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 80 && BOOST_PP_ITERATION_START_4 >= 80
+#    define BOOST_PP_ITERATION_4 80
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 79 && BOOST_PP_ITERATION_START_4 >= 79
+#    define BOOST_PP_ITERATION_4 79
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 78 && BOOST_PP_ITERATION_START_4 >= 78
+#    define BOOST_PP_ITERATION_4 78
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 77 && BOOST_PP_ITERATION_START_4 >= 77
+#    define BOOST_PP_ITERATION_4 77
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 76 && BOOST_PP_ITERATION_START_4 >= 76
+#    define BOOST_PP_ITERATION_4 76
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 75 && BOOST_PP_ITERATION_START_4 >= 75
+#    define BOOST_PP_ITERATION_4 75
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 74 && BOOST_PP_ITERATION_START_4 >= 74
+#    define BOOST_PP_ITERATION_4 74
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 73 && BOOST_PP_ITERATION_START_4 >= 73
+#    define BOOST_PP_ITERATION_4 73
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 72 && BOOST_PP_ITERATION_START_4 >= 72
+#    define BOOST_PP_ITERATION_4 72
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 71 && BOOST_PP_ITERATION_START_4 >= 71
+#    define BOOST_PP_ITERATION_4 71
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 70 && BOOST_PP_ITERATION_START_4 >= 70
+#    define BOOST_PP_ITERATION_4 70
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 69 && BOOST_PP_ITERATION_START_4 >= 69
+#    define BOOST_PP_ITERATION_4 69
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 68 && BOOST_PP_ITERATION_START_4 >= 68
+#    define BOOST_PP_ITERATION_4 68
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 67 && BOOST_PP_ITERATION_START_4 >= 67
+#    define BOOST_PP_ITERATION_4 67
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 66 && BOOST_PP_ITERATION_START_4 >= 66
+#    define BOOST_PP_ITERATION_4 66
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 65 && BOOST_PP_ITERATION_START_4 >= 65
+#    define BOOST_PP_ITERATION_4 65
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 64 && BOOST_PP_ITERATION_START_4 >= 64
+#    define BOOST_PP_ITERATION_4 64
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 63 && BOOST_PP_ITERATION_START_4 >= 63
+#    define BOOST_PP_ITERATION_4 63
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 62 && BOOST_PP_ITERATION_START_4 >= 62
+#    define BOOST_PP_ITERATION_4 62
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 61 && BOOST_PP_ITERATION_START_4 >= 61
+#    define BOOST_PP_ITERATION_4 61
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 60 && BOOST_PP_ITERATION_START_4 >= 60
+#    define BOOST_PP_ITERATION_4 60
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 59 && BOOST_PP_ITERATION_START_4 >= 59
+#    define BOOST_PP_ITERATION_4 59
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 58 && BOOST_PP_ITERATION_START_4 >= 58
+#    define BOOST_PP_ITERATION_4 58
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 57 && BOOST_PP_ITERATION_START_4 >= 57
+#    define BOOST_PP_ITERATION_4 57
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 56 && BOOST_PP_ITERATION_START_4 >= 56
+#    define BOOST_PP_ITERATION_4 56
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 55 && BOOST_PP_ITERATION_START_4 >= 55
+#    define BOOST_PP_ITERATION_4 55
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 54 && BOOST_PP_ITERATION_START_4 >= 54
+#    define BOOST_PP_ITERATION_4 54
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 53 && BOOST_PP_ITERATION_START_4 >= 53
+#    define BOOST_PP_ITERATION_4 53
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 52 && BOOST_PP_ITERATION_START_4 >= 52
+#    define BOOST_PP_ITERATION_4 52
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 51 && BOOST_PP_ITERATION_START_4 >= 51
+#    define BOOST_PP_ITERATION_4 51
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 50 && BOOST_PP_ITERATION_START_4 >= 50
+#    define BOOST_PP_ITERATION_4 50
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 49 && BOOST_PP_ITERATION_START_4 >= 49
+#    define BOOST_PP_ITERATION_4 49
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 48 && BOOST_PP_ITERATION_START_4 >= 48
+#    define BOOST_PP_ITERATION_4 48
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 47 && BOOST_PP_ITERATION_START_4 >= 47
+#    define BOOST_PP_ITERATION_4 47
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 46 && BOOST_PP_ITERATION_START_4 >= 46
+#    define BOOST_PP_ITERATION_4 46
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 45 && BOOST_PP_ITERATION_START_4 >= 45
+#    define BOOST_PP_ITERATION_4 45
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 44 && BOOST_PP_ITERATION_START_4 >= 44
+#    define BOOST_PP_ITERATION_4 44
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 43 && BOOST_PP_ITERATION_START_4 >= 43
+#    define BOOST_PP_ITERATION_4 43
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 42 && BOOST_PP_ITERATION_START_4 >= 42
+#    define BOOST_PP_ITERATION_4 42
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 41 && BOOST_PP_ITERATION_START_4 >= 41
+#    define BOOST_PP_ITERATION_4 41
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 40 && BOOST_PP_ITERATION_START_4 >= 40
+#    define BOOST_PP_ITERATION_4 40
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 39 && BOOST_PP_ITERATION_START_4 >= 39
+#    define BOOST_PP_ITERATION_4 39
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 38 && BOOST_PP_ITERATION_START_4 >= 38
+#    define BOOST_PP_ITERATION_4 38
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 37 && BOOST_PP_ITERATION_START_4 >= 37
+#    define BOOST_PP_ITERATION_4 37
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 36 && BOOST_PP_ITERATION_START_4 >= 36
+#    define BOOST_PP_ITERATION_4 36
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 35 && BOOST_PP_ITERATION_START_4 >= 35
+#    define BOOST_PP_ITERATION_4 35
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 34 && BOOST_PP_ITERATION_START_4 >= 34
+#    define BOOST_PP_ITERATION_4 34
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 33 && BOOST_PP_ITERATION_START_4 >= 33
+#    define BOOST_PP_ITERATION_4 33
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 32 && BOOST_PP_ITERATION_START_4 >= 32
+#    define BOOST_PP_ITERATION_4 32
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 31 && BOOST_PP_ITERATION_START_4 >= 31
+#    define BOOST_PP_ITERATION_4 31
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 30 && BOOST_PP_ITERATION_START_4 >= 30
+#    define BOOST_PP_ITERATION_4 30
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 29 && BOOST_PP_ITERATION_START_4 >= 29
+#    define BOOST_PP_ITERATION_4 29
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 28 && BOOST_PP_ITERATION_START_4 >= 28
+#    define BOOST_PP_ITERATION_4 28
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 27 && BOOST_PP_ITERATION_START_4 >= 27
+#    define BOOST_PP_ITERATION_4 27
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 26 && BOOST_PP_ITERATION_START_4 >= 26
+#    define BOOST_PP_ITERATION_4 26
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 25 && BOOST_PP_ITERATION_START_4 >= 25
+#    define BOOST_PP_ITERATION_4 25
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 24 && BOOST_PP_ITERATION_START_4 >= 24
+#    define BOOST_PP_ITERATION_4 24
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 23 && BOOST_PP_ITERATION_START_4 >= 23
+#    define BOOST_PP_ITERATION_4 23
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 22 && BOOST_PP_ITERATION_START_4 >= 22
+#    define BOOST_PP_ITERATION_4 22
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 21 && BOOST_PP_ITERATION_START_4 >= 21
+#    define BOOST_PP_ITERATION_4 21
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 20 && BOOST_PP_ITERATION_START_4 >= 20
+#    define BOOST_PP_ITERATION_4 20
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 19 && BOOST_PP_ITERATION_START_4 >= 19
+#    define BOOST_PP_ITERATION_4 19
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 18 && BOOST_PP_ITERATION_START_4 >= 18
+#    define BOOST_PP_ITERATION_4 18
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 17 && BOOST_PP_ITERATION_START_4 >= 17
+#    define BOOST_PP_ITERATION_4 17
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 16 && BOOST_PP_ITERATION_START_4 >= 16
+#    define BOOST_PP_ITERATION_4 16
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 15 && BOOST_PP_ITERATION_START_4 >= 15
+#    define BOOST_PP_ITERATION_4 15
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 14 && BOOST_PP_ITERATION_START_4 >= 14
+#    define BOOST_PP_ITERATION_4 14
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 13 && BOOST_PP_ITERATION_START_4 >= 13
+#    define BOOST_PP_ITERATION_4 13
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 12 && BOOST_PP_ITERATION_START_4 >= 12
+#    define BOOST_PP_ITERATION_4 12
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 11 && BOOST_PP_ITERATION_START_4 >= 11
+#    define BOOST_PP_ITERATION_4 11
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 10 && BOOST_PP_ITERATION_START_4 >= 10
+#    define BOOST_PP_ITERATION_4 10
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 9 && BOOST_PP_ITERATION_START_4 >= 9
+#    define BOOST_PP_ITERATION_4 9
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 8 && BOOST_PP_ITERATION_START_4 >= 8
+#    define BOOST_PP_ITERATION_4 8
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 7 && BOOST_PP_ITERATION_START_4 >= 7
+#    define BOOST_PP_ITERATION_4 7
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 6 && BOOST_PP_ITERATION_START_4 >= 6
+#    define BOOST_PP_ITERATION_4 6
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 5 && BOOST_PP_ITERATION_START_4 >= 5
+#    define BOOST_PP_ITERATION_4 5
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 4 && BOOST_PP_ITERATION_START_4 >= 4
+#    define BOOST_PP_ITERATION_4 4
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 3 && BOOST_PP_ITERATION_START_4 >= 3
+#    define BOOST_PP_ITERATION_4 3
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 2 && BOOST_PP_ITERATION_START_4 >= 2
+#    define BOOST_PP_ITERATION_4 2
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 1 && BOOST_PP_ITERATION_START_4 >= 1
+#    define BOOST_PP_ITERATION_4 1
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
+# if BOOST_PP_ITERATION_FINISH_4 <= 0 && BOOST_PP_ITERATION_START_4 >= 0
+#    define BOOST_PP_ITERATION_4 0
+#    include BOOST_PP_FILENAME_4
+#    undef BOOST_PP_ITERATION_4
+# endif
index ab99d1eaf2c4044944177c6526e4c4c1cd69b077..225a557f894c46664307ed3def27d10a0bbfb19b 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 256 && BOOST_PP_ITERATION_START_5 >= 256\r
-#    define BOOST_PP_ITERATION_5 256\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 255 && BOOST_PP_ITERATION_START_5 >= 255\r
-#    define BOOST_PP_ITERATION_5 255\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 254 && BOOST_PP_ITERATION_START_5 >= 254\r
-#    define BOOST_PP_ITERATION_5 254\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 253 && BOOST_PP_ITERATION_START_5 >= 253\r
-#    define BOOST_PP_ITERATION_5 253\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 252 && BOOST_PP_ITERATION_START_5 >= 252\r
-#    define BOOST_PP_ITERATION_5 252\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 251 && BOOST_PP_ITERATION_START_5 >= 251\r
-#    define BOOST_PP_ITERATION_5 251\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 250 && BOOST_PP_ITERATION_START_5 >= 250\r
-#    define BOOST_PP_ITERATION_5 250\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 249 && BOOST_PP_ITERATION_START_5 >= 249\r
-#    define BOOST_PP_ITERATION_5 249\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 248 && BOOST_PP_ITERATION_START_5 >= 248\r
-#    define BOOST_PP_ITERATION_5 248\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 247 && BOOST_PP_ITERATION_START_5 >= 247\r
-#    define BOOST_PP_ITERATION_5 247\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 246 && BOOST_PP_ITERATION_START_5 >= 246\r
-#    define BOOST_PP_ITERATION_5 246\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 245 && BOOST_PP_ITERATION_START_5 >= 245\r
-#    define BOOST_PP_ITERATION_5 245\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 244 && BOOST_PP_ITERATION_START_5 >= 244\r
-#    define BOOST_PP_ITERATION_5 244\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 243 && BOOST_PP_ITERATION_START_5 >= 243\r
-#    define BOOST_PP_ITERATION_5 243\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 242 && BOOST_PP_ITERATION_START_5 >= 242\r
-#    define BOOST_PP_ITERATION_5 242\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 241 && BOOST_PP_ITERATION_START_5 >= 241\r
-#    define BOOST_PP_ITERATION_5 241\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 240 && BOOST_PP_ITERATION_START_5 >= 240\r
-#    define BOOST_PP_ITERATION_5 240\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 239 && BOOST_PP_ITERATION_START_5 >= 239\r
-#    define BOOST_PP_ITERATION_5 239\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 238 && BOOST_PP_ITERATION_START_5 >= 238\r
-#    define BOOST_PP_ITERATION_5 238\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 237 && BOOST_PP_ITERATION_START_5 >= 237\r
-#    define BOOST_PP_ITERATION_5 237\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 236 && BOOST_PP_ITERATION_START_5 >= 236\r
-#    define BOOST_PP_ITERATION_5 236\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 235 && BOOST_PP_ITERATION_START_5 >= 235\r
-#    define BOOST_PP_ITERATION_5 235\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 234 && BOOST_PP_ITERATION_START_5 >= 234\r
-#    define BOOST_PP_ITERATION_5 234\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 233 && BOOST_PP_ITERATION_START_5 >= 233\r
-#    define BOOST_PP_ITERATION_5 233\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 232 && BOOST_PP_ITERATION_START_5 >= 232\r
-#    define BOOST_PP_ITERATION_5 232\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 231 && BOOST_PP_ITERATION_START_5 >= 231\r
-#    define BOOST_PP_ITERATION_5 231\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 230 && BOOST_PP_ITERATION_START_5 >= 230\r
-#    define BOOST_PP_ITERATION_5 230\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 229 && BOOST_PP_ITERATION_START_5 >= 229\r
-#    define BOOST_PP_ITERATION_5 229\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 228 && BOOST_PP_ITERATION_START_5 >= 228\r
-#    define BOOST_PP_ITERATION_5 228\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 227 && BOOST_PP_ITERATION_START_5 >= 227\r
-#    define BOOST_PP_ITERATION_5 227\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 226 && BOOST_PP_ITERATION_START_5 >= 226\r
-#    define BOOST_PP_ITERATION_5 226\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 225 && BOOST_PP_ITERATION_START_5 >= 225\r
-#    define BOOST_PP_ITERATION_5 225\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 224 && BOOST_PP_ITERATION_START_5 >= 224\r
-#    define BOOST_PP_ITERATION_5 224\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 223 && BOOST_PP_ITERATION_START_5 >= 223\r
-#    define BOOST_PP_ITERATION_5 223\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 222 && BOOST_PP_ITERATION_START_5 >= 222\r
-#    define BOOST_PP_ITERATION_5 222\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 221 && BOOST_PP_ITERATION_START_5 >= 221\r
-#    define BOOST_PP_ITERATION_5 221\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 220 && BOOST_PP_ITERATION_START_5 >= 220\r
-#    define BOOST_PP_ITERATION_5 220\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 219 && BOOST_PP_ITERATION_START_5 >= 219\r
-#    define BOOST_PP_ITERATION_5 219\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 218 && BOOST_PP_ITERATION_START_5 >= 218\r
-#    define BOOST_PP_ITERATION_5 218\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 217 && BOOST_PP_ITERATION_START_5 >= 217\r
-#    define BOOST_PP_ITERATION_5 217\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 216 && BOOST_PP_ITERATION_START_5 >= 216\r
-#    define BOOST_PP_ITERATION_5 216\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 215 && BOOST_PP_ITERATION_START_5 >= 215\r
-#    define BOOST_PP_ITERATION_5 215\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 214 && BOOST_PP_ITERATION_START_5 >= 214\r
-#    define BOOST_PP_ITERATION_5 214\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 213 && BOOST_PP_ITERATION_START_5 >= 213\r
-#    define BOOST_PP_ITERATION_5 213\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 212 && BOOST_PP_ITERATION_START_5 >= 212\r
-#    define BOOST_PP_ITERATION_5 212\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 211 && BOOST_PP_ITERATION_START_5 >= 211\r
-#    define BOOST_PP_ITERATION_5 211\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 210 && BOOST_PP_ITERATION_START_5 >= 210\r
-#    define BOOST_PP_ITERATION_5 210\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 209 && BOOST_PP_ITERATION_START_5 >= 209\r
-#    define BOOST_PP_ITERATION_5 209\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 208 && BOOST_PP_ITERATION_START_5 >= 208\r
-#    define BOOST_PP_ITERATION_5 208\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 207 && BOOST_PP_ITERATION_START_5 >= 207\r
-#    define BOOST_PP_ITERATION_5 207\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 206 && BOOST_PP_ITERATION_START_5 >= 206\r
-#    define BOOST_PP_ITERATION_5 206\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 205 && BOOST_PP_ITERATION_START_5 >= 205\r
-#    define BOOST_PP_ITERATION_5 205\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 204 && BOOST_PP_ITERATION_START_5 >= 204\r
-#    define BOOST_PP_ITERATION_5 204\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 203 && BOOST_PP_ITERATION_START_5 >= 203\r
-#    define BOOST_PP_ITERATION_5 203\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 202 && BOOST_PP_ITERATION_START_5 >= 202\r
-#    define BOOST_PP_ITERATION_5 202\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 201 && BOOST_PP_ITERATION_START_5 >= 201\r
-#    define BOOST_PP_ITERATION_5 201\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 200 && BOOST_PP_ITERATION_START_5 >= 200\r
-#    define BOOST_PP_ITERATION_5 200\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 199 && BOOST_PP_ITERATION_START_5 >= 199\r
-#    define BOOST_PP_ITERATION_5 199\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 198 && BOOST_PP_ITERATION_START_5 >= 198\r
-#    define BOOST_PP_ITERATION_5 198\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 197 && BOOST_PP_ITERATION_START_5 >= 197\r
-#    define BOOST_PP_ITERATION_5 197\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 196 && BOOST_PP_ITERATION_START_5 >= 196\r
-#    define BOOST_PP_ITERATION_5 196\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 195 && BOOST_PP_ITERATION_START_5 >= 195\r
-#    define BOOST_PP_ITERATION_5 195\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 194 && BOOST_PP_ITERATION_START_5 >= 194\r
-#    define BOOST_PP_ITERATION_5 194\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 193 && BOOST_PP_ITERATION_START_5 >= 193\r
-#    define BOOST_PP_ITERATION_5 193\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 192 && BOOST_PP_ITERATION_START_5 >= 192\r
-#    define BOOST_PP_ITERATION_5 192\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 191 && BOOST_PP_ITERATION_START_5 >= 191\r
-#    define BOOST_PP_ITERATION_5 191\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 190 && BOOST_PP_ITERATION_START_5 >= 190\r
-#    define BOOST_PP_ITERATION_5 190\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 189 && BOOST_PP_ITERATION_START_5 >= 189\r
-#    define BOOST_PP_ITERATION_5 189\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 188 && BOOST_PP_ITERATION_START_5 >= 188\r
-#    define BOOST_PP_ITERATION_5 188\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 187 && BOOST_PP_ITERATION_START_5 >= 187\r
-#    define BOOST_PP_ITERATION_5 187\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 186 && BOOST_PP_ITERATION_START_5 >= 186\r
-#    define BOOST_PP_ITERATION_5 186\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 185 && BOOST_PP_ITERATION_START_5 >= 185\r
-#    define BOOST_PP_ITERATION_5 185\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 184 && BOOST_PP_ITERATION_START_5 >= 184\r
-#    define BOOST_PP_ITERATION_5 184\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 183 && BOOST_PP_ITERATION_START_5 >= 183\r
-#    define BOOST_PP_ITERATION_5 183\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 182 && BOOST_PP_ITERATION_START_5 >= 182\r
-#    define BOOST_PP_ITERATION_5 182\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 181 && BOOST_PP_ITERATION_START_5 >= 181\r
-#    define BOOST_PP_ITERATION_5 181\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 180 && BOOST_PP_ITERATION_START_5 >= 180\r
-#    define BOOST_PP_ITERATION_5 180\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 179 && BOOST_PP_ITERATION_START_5 >= 179\r
-#    define BOOST_PP_ITERATION_5 179\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 178 && BOOST_PP_ITERATION_START_5 >= 178\r
-#    define BOOST_PP_ITERATION_5 178\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 177 && BOOST_PP_ITERATION_START_5 >= 177\r
-#    define BOOST_PP_ITERATION_5 177\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 176 && BOOST_PP_ITERATION_START_5 >= 176\r
-#    define BOOST_PP_ITERATION_5 176\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 175 && BOOST_PP_ITERATION_START_5 >= 175\r
-#    define BOOST_PP_ITERATION_5 175\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 174 && BOOST_PP_ITERATION_START_5 >= 174\r
-#    define BOOST_PP_ITERATION_5 174\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 173 && BOOST_PP_ITERATION_START_5 >= 173\r
-#    define BOOST_PP_ITERATION_5 173\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 172 && BOOST_PP_ITERATION_START_5 >= 172\r
-#    define BOOST_PP_ITERATION_5 172\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 171 && BOOST_PP_ITERATION_START_5 >= 171\r
-#    define BOOST_PP_ITERATION_5 171\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 170 && BOOST_PP_ITERATION_START_5 >= 170\r
-#    define BOOST_PP_ITERATION_5 170\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 169 && BOOST_PP_ITERATION_START_5 >= 169\r
-#    define BOOST_PP_ITERATION_5 169\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 168 && BOOST_PP_ITERATION_START_5 >= 168\r
-#    define BOOST_PP_ITERATION_5 168\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 167 && BOOST_PP_ITERATION_START_5 >= 167\r
-#    define BOOST_PP_ITERATION_5 167\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 166 && BOOST_PP_ITERATION_START_5 >= 166\r
-#    define BOOST_PP_ITERATION_5 166\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 165 && BOOST_PP_ITERATION_START_5 >= 165\r
-#    define BOOST_PP_ITERATION_5 165\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 164 && BOOST_PP_ITERATION_START_5 >= 164\r
-#    define BOOST_PP_ITERATION_5 164\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 163 && BOOST_PP_ITERATION_START_5 >= 163\r
-#    define BOOST_PP_ITERATION_5 163\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 162 && BOOST_PP_ITERATION_START_5 >= 162\r
-#    define BOOST_PP_ITERATION_5 162\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 161 && BOOST_PP_ITERATION_START_5 >= 161\r
-#    define BOOST_PP_ITERATION_5 161\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 160 && BOOST_PP_ITERATION_START_5 >= 160\r
-#    define BOOST_PP_ITERATION_5 160\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 159 && BOOST_PP_ITERATION_START_5 >= 159\r
-#    define BOOST_PP_ITERATION_5 159\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 158 && BOOST_PP_ITERATION_START_5 >= 158\r
-#    define BOOST_PP_ITERATION_5 158\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 157 && BOOST_PP_ITERATION_START_5 >= 157\r
-#    define BOOST_PP_ITERATION_5 157\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 156 && BOOST_PP_ITERATION_START_5 >= 156\r
-#    define BOOST_PP_ITERATION_5 156\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 155 && BOOST_PP_ITERATION_START_5 >= 155\r
-#    define BOOST_PP_ITERATION_5 155\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 154 && BOOST_PP_ITERATION_START_5 >= 154\r
-#    define BOOST_PP_ITERATION_5 154\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 153 && BOOST_PP_ITERATION_START_5 >= 153\r
-#    define BOOST_PP_ITERATION_5 153\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 152 && BOOST_PP_ITERATION_START_5 >= 152\r
-#    define BOOST_PP_ITERATION_5 152\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 151 && BOOST_PP_ITERATION_START_5 >= 151\r
-#    define BOOST_PP_ITERATION_5 151\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 150 && BOOST_PP_ITERATION_START_5 >= 150\r
-#    define BOOST_PP_ITERATION_5 150\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 149 && BOOST_PP_ITERATION_START_5 >= 149\r
-#    define BOOST_PP_ITERATION_5 149\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 148 && BOOST_PP_ITERATION_START_5 >= 148\r
-#    define BOOST_PP_ITERATION_5 148\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 147 && BOOST_PP_ITERATION_START_5 >= 147\r
-#    define BOOST_PP_ITERATION_5 147\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 146 && BOOST_PP_ITERATION_START_5 >= 146\r
-#    define BOOST_PP_ITERATION_5 146\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 145 && BOOST_PP_ITERATION_START_5 >= 145\r
-#    define BOOST_PP_ITERATION_5 145\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 144 && BOOST_PP_ITERATION_START_5 >= 144\r
-#    define BOOST_PP_ITERATION_5 144\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 143 && BOOST_PP_ITERATION_START_5 >= 143\r
-#    define BOOST_PP_ITERATION_5 143\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 142 && BOOST_PP_ITERATION_START_5 >= 142\r
-#    define BOOST_PP_ITERATION_5 142\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 141 && BOOST_PP_ITERATION_START_5 >= 141\r
-#    define BOOST_PP_ITERATION_5 141\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 140 && BOOST_PP_ITERATION_START_5 >= 140\r
-#    define BOOST_PP_ITERATION_5 140\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 139 && BOOST_PP_ITERATION_START_5 >= 139\r
-#    define BOOST_PP_ITERATION_5 139\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 138 && BOOST_PP_ITERATION_START_5 >= 138\r
-#    define BOOST_PP_ITERATION_5 138\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 137 && BOOST_PP_ITERATION_START_5 >= 137\r
-#    define BOOST_PP_ITERATION_5 137\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 136 && BOOST_PP_ITERATION_START_5 >= 136\r
-#    define BOOST_PP_ITERATION_5 136\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 135 && BOOST_PP_ITERATION_START_5 >= 135\r
-#    define BOOST_PP_ITERATION_5 135\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 134 && BOOST_PP_ITERATION_START_5 >= 134\r
-#    define BOOST_PP_ITERATION_5 134\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 133 && BOOST_PP_ITERATION_START_5 >= 133\r
-#    define BOOST_PP_ITERATION_5 133\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 132 && BOOST_PP_ITERATION_START_5 >= 132\r
-#    define BOOST_PP_ITERATION_5 132\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 131 && BOOST_PP_ITERATION_START_5 >= 131\r
-#    define BOOST_PP_ITERATION_5 131\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 130 && BOOST_PP_ITERATION_START_5 >= 130\r
-#    define BOOST_PP_ITERATION_5 130\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 129 && BOOST_PP_ITERATION_START_5 >= 129\r
-#    define BOOST_PP_ITERATION_5 129\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 128 && BOOST_PP_ITERATION_START_5 >= 128\r
-#    define BOOST_PP_ITERATION_5 128\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 127 && BOOST_PP_ITERATION_START_5 >= 127\r
-#    define BOOST_PP_ITERATION_5 127\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 126 && BOOST_PP_ITERATION_START_5 >= 126\r
-#    define BOOST_PP_ITERATION_5 126\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 125 && BOOST_PP_ITERATION_START_5 >= 125\r
-#    define BOOST_PP_ITERATION_5 125\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 124 && BOOST_PP_ITERATION_START_5 >= 124\r
-#    define BOOST_PP_ITERATION_5 124\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 123 && BOOST_PP_ITERATION_START_5 >= 123\r
-#    define BOOST_PP_ITERATION_5 123\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 122 && BOOST_PP_ITERATION_START_5 >= 122\r
-#    define BOOST_PP_ITERATION_5 122\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 121 && BOOST_PP_ITERATION_START_5 >= 121\r
-#    define BOOST_PP_ITERATION_5 121\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 120 && BOOST_PP_ITERATION_START_5 >= 120\r
-#    define BOOST_PP_ITERATION_5 120\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 119 && BOOST_PP_ITERATION_START_5 >= 119\r
-#    define BOOST_PP_ITERATION_5 119\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 118 && BOOST_PP_ITERATION_START_5 >= 118\r
-#    define BOOST_PP_ITERATION_5 118\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 117 && BOOST_PP_ITERATION_START_5 >= 117\r
-#    define BOOST_PP_ITERATION_5 117\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 116 && BOOST_PP_ITERATION_START_5 >= 116\r
-#    define BOOST_PP_ITERATION_5 116\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 115 && BOOST_PP_ITERATION_START_5 >= 115\r
-#    define BOOST_PP_ITERATION_5 115\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 114 && BOOST_PP_ITERATION_START_5 >= 114\r
-#    define BOOST_PP_ITERATION_5 114\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 113 && BOOST_PP_ITERATION_START_5 >= 113\r
-#    define BOOST_PP_ITERATION_5 113\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 112 && BOOST_PP_ITERATION_START_5 >= 112\r
-#    define BOOST_PP_ITERATION_5 112\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 111 && BOOST_PP_ITERATION_START_5 >= 111\r
-#    define BOOST_PP_ITERATION_5 111\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 110 && BOOST_PP_ITERATION_START_5 >= 110\r
-#    define BOOST_PP_ITERATION_5 110\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 109 && BOOST_PP_ITERATION_START_5 >= 109\r
-#    define BOOST_PP_ITERATION_5 109\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 108 && BOOST_PP_ITERATION_START_5 >= 108\r
-#    define BOOST_PP_ITERATION_5 108\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 107 && BOOST_PP_ITERATION_START_5 >= 107\r
-#    define BOOST_PP_ITERATION_5 107\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 106 && BOOST_PP_ITERATION_START_5 >= 106\r
-#    define BOOST_PP_ITERATION_5 106\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 105 && BOOST_PP_ITERATION_START_5 >= 105\r
-#    define BOOST_PP_ITERATION_5 105\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 104 && BOOST_PP_ITERATION_START_5 >= 104\r
-#    define BOOST_PP_ITERATION_5 104\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 103 && BOOST_PP_ITERATION_START_5 >= 103\r
-#    define BOOST_PP_ITERATION_5 103\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 102 && BOOST_PP_ITERATION_START_5 >= 102\r
-#    define BOOST_PP_ITERATION_5 102\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 101 && BOOST_PP_ITERATION_START_5 >= 101\r
-#    define BOOST_PP_ITERATION_5 101\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 100 && BOOST_PP_ITERATION_START_5 >= 100\r
-#    define BOOST_PP_ITERATION_5 100\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 99 && BOOST_PP_ITERATION_START_5 >= 99\r
-#    define BOOST_PP_ITERATION_5 99\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 98 && BOOST_PP_ITERATION_START_5 >= 98\r
-#    define BOOST_PP_ITERATION_5 98\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 97 && BOOST_PP_ITERATION_START_5 >= 97\r
-#    define BOOST_PP_ITERATION_5 97\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 96 && BOOST_PP_ITERATION_START_5 >= 96\r
-#    define BOOST_PP_ITERATION_5 96\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 95 && BOOST_PP_ITERATION_START_5 >= 95\r
-#    define BOOST_PP_ITERATION_5 95\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 94 && BOOST_PP_ITERATION_START_5 >= 94\r
-#    define BOOST_PP_ITERATION_5 94\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 93 && BOOST_PP_ITERATION_START_5 >= 93\r
-#    define BOOST_PP_ITERATION_5 93\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 92 && BOOST_PP_ITERATION_START_5 >= 92\r
-#    define BOOST_PP_ITERATION_5 92\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 91 && BOOST_PP_ITERATION_START_5 >= 91\r
-#    define BOOST_PP_ITERATION_5 91\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 90 && BOOST_PP_ITERATION_START_5 >= 90\r
-#    define BOOST_PP_ITERATION_5 90\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 89 && BOOST_PP_ITERATION_START_5 >= 89\r
-#    define BOOST_PP_ITERATION_5 89\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 88 && BOOST_PP_ITERATION_START_5 >= 88\r
-#    define BOOST_PP_ITERATION_5 88\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 87 && BOOST_PP_ITERATION_START_5 >= 87\r
-#    define BOOST_PP_ITERATION_5 87\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 86 && BOOST_PP_ITERATION_START_5 >= 86\r
-#    define BOOST_PP_ITERATION_5 86\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 85 && BOOST_PP_ITERATION_START_5 >= 85\r
-#    define BOOST_PP_ITERATION_5 85\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 84 && BOOST_PP_ITERATION_START_5 >= 84\r
-#    define BOOST_PP_ITERATION_5 84\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 83 && BOOST_PP_ITERATION_START_5 >= 83\r
-#    define BOOST_PP_ITERATION_5 83\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 82 && BOOST_PP_ITERATION_START_5 >= 82\r
-#    define BOOST_PP_ITERATION_5 82\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 81 && BOOST_PP_ITERATION_START_5 >= 81\r
-#    define BOOST_PP_ITERATION_5 81\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 80 && BOOST_PP_ITERATION_START_5 >= 80\r
-#    define BOOST_PP_ITERATION_5 80\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 79 && BOOST_PP_ITERATION_START_5 >= 79\r
-#    define BOOST_PP_ITERATION_5 79\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 78 && BOOST_PP_ITERATION_START_5 >= 78\r
-#    define BOOST_PP_ITERATION_5 78\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 77 && BOOST_PP_ITERATION_START_5 >= 77\r
-#    define BOOST_PP_ITERATION_5 77\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 76 && BOOST_PP_ITERATION_START_5 >= 76\r
-#    define BOOST_PP_ITERATION_5 76\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 75 && BOOST_PP_ITERATION_START_5 >= 75\r
-#    define BOOST_PP_ITERATION_5 75\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 74 && BOOST_PP_ITERATION_START_5 >= 74\r
-#    define BOOST_PP_ITERATION_5 74\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 73 && BOOST_PP_ITERATION_START_5 >= 73\r
-#    define BOOST_PP_ITERATION_5 73\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 72 && BOOST_PP_ITERATION_START_5 >= 72\r
-#    define BOOST_PP_ITERATION_5 72\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 71 && BOOST_PP_ITERATION_START_5 >= 71\r
-#    define BOOST_PP_ITERATION_5 71\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 70 && BOOST_PP_ITERATION_START_5 >= 70\r
-#    define BOOST_PP_ITERATION_5 70\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 69 && BOOST_PP_ITERATION_START_5 >= 69\r
-#    define BOOST_PP_ITERATION_5 69\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 68 && BOOST_PP_ITERATION_START_5 >= 68\r
-#    define BOOST_PP_ITERATION_5 68\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 67 && BOOST_PP_ITERATION_START_5 >= 67\r
-#    define BOOST_PP_ITERATION_5 67\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 66 && BOOST_PP_ITERATION_START_5 >= 66\r
-#    define BOOST_PP_ITERATION_5 66\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 65 && BOOST_PP_ITERATION_START_5 >= 65\r
-#    define BOOST_PP_ITERATION_5 65\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 64 && BOOST_PP_ITERATION_START_5 >= 64\r
-#    define BOOST_PP_ITERATION_5 64\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 63 && BOOST_PP_ITERATION_START_5 >= 63\r
-#    define BOOST_PP_ITERATION_5 63\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 62 && BOOST_PP_ITERATION_START_5 >= 62\r
-#    define BOOST_PP_ITERATION_5 62\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 61 && BOOST_PP_ITERATION_START_5 >= 61\r
-#    define BOOST_PP_ITERATION_5 61\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 60 && BOOST_PP_ITERATION_START_5 >= 60\r
-#    define BOOST_PP_ITERATION_5 60\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 59 && BOOST_PP_ITERATION_START_5 >= 59\r
-#    define BOOST_PP_ITERATION_5 59\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 58 && BOOST_PP_ITERATION_START_5 >= 58\r
-#    define BOOST_PP_ITERATION_5 58\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 57 && BOOST_PP_ITERATION_START_5 >= 57\r
-#    define BOOST_PP_ITERATION_5 57\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 56 && BOOST_PP_ITERATION_START_5 >= 56\r
-#    define BOOST_PP_ITERATION_5 56\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 55 && BOOST_PP_ITERATION_START_5 >= 55\r
-#    define BOOST_PP_ITERATION_5 55\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 54 && BOOST_PP_ITERATION_START_5 >= 54\r
-#    define BOOST_PP_ITERATION_5 54\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 53 && BOOST_PP_ITERATION_START_5 >= 53\r
-#    define BOOST_PP_ITERATION_5 53\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 52 && BOOST_PP_ITERATION_START_5 >= 52\r
-#    define BOOST_PP_ITERATION_5 52\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 51 && BOOST_PP_ITERATION_START_5 >= 51\r
-#    define BOOST_PP_ITERATION_5 51\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 50 && BOOST_PP_ITERATION_START_5 >= 50\r
-#    define BOOST_PP_ITERATION_5 50\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 49 && BOOST_PP_ITERATION_START_5 >= 49\r
-#    define BOOST_PP_ITERATION_5 49\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 48 && BOOST_PP_ITERATION_START_5 >= 48\r
-#    define BOOST_PP_ITERATION_5 48\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 47 && BOOST_PP_ITERATION_START_5 >= 47\r
-#    define BOOST_PP_ITERATION_5 47\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 46 && BOOST_PP_ITERATION_START_5 >= 46\r
-#    define BOOST_PP_ITERATION_5 46\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 45 && BOOST_PP_ITERATION_START_5 >= 45\r
-#    define BOOST_PP_ITERATION_5 45\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 44 && BOOST_PP_ITERATION_START_5 >= 44\r
-#    define BOOST_PP_ITERATION_5 44\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 43 && BOOST_PP_ITERATION_START_5 >= 43\r
-#    define BOOST_PP_ITERATION_5 43\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 42 && BOOST_PP_ITERATION_START_5 >= 42\r
-#    define BOOST_PP_ITERATION_5 42\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 41 && BOOST_PP_ITERATION_START_5 >= 41\r
-#    define BOOST_PP_ITERATION_5 41\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 40 && BOOST_PP_ITERATION_START_5 >= 40\r
-#    define BOOST_PP_ITERATION_5 40\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 39 && BOOST_PP_ITERATION_START_5 >= 39\r
-#    define BOOST_PP_ITERATION_5 39\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 38 && BOOST_PP_ITERATION_START_5 >= 38\r
-#    define BOOST_PP_ITERATION_5 38\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 37 && BOOST_PP_ITERATION_START_5 >= 37\r
-#    define BOOST_PP_ITERATION_5 37\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 36 && BOOST_PP_ITERATION_START_5 >= 36\r
-#    define BOOST_PP_ITERATION_5 36\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 35 && BOOST_PP_ITERATION_START_5 >= 35\r
-#    define BOOST_PP_ITERATION_5 35\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 34 && BOOST_PP_ITERATION_START_5 >= 34\r
-#    define BOOST_PP_ITERATION_5 34\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 33 && BOOST_PP_ITERATION_START_5 >= 33\r
-#    define BOOST_PP_ITERATION_5 33\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 32 && BOOST_PP_ITERATION_START_5 >= 32\r
-#    define BOOST_PP_ITERATION_5 32\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 31 && BOOST_PP_ITERATION_START_5 >= 31\r
-#    define BOOST_PP_ITERATION_5 31\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 30 && BOOST_PP_ITERATION_START_5 >= 30\r
-#    define BOOST_PP_ITERATION_5 30\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 29 && BOOST_PP_ITERATION_START_5 >= 29\r
-#    define BOOST_PP_ITERATION_5 29\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 28 && BOOST_PP_ITERATION_START_5 >= 28\r
-#    define BOOST_PP_ITERATION_5 28\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 27 && BOOST_PP_ITERATION_START_5 >= 27\r
-#    define BOOST_PP_ITERATION_5 27\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 26 && BOOST_PP_ITERATION_START_5 >= 26\r
-#    define BOOST_PP_ITERATION_5 26\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 25 && BOOST_PP_ITERATION_START_5 >= 25\r
-#    define BOOST_PP_ITERATION_5 25\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 24 && BOOST_PP_ITERATION_START_5 >= 24\r
-#    define BOOST_PP_ITERATION_5 24\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 23 && BOOST_PP_ITERATION_START_5 >= 23\r
-#    define BOOST_PP_ITERATION_5 23\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 22 && BOOST_PP_ITERATION_START_5 >= 22\r
-#    define BOOST_PP_ITERATION_5 22\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 21 && BOOST_PP_ITERATION_START_5 >= 21\r
-#    define BOOST_PP_ITERATION_5 21\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 20 && BOOST_PP_ITERATION_START_5 >= 20\r
-#    define BOOST_PP_ITERATION_5 20\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 19 && BOOST_PP_ITERATION_START_5 >= 19\r
-#    define BOOST_PP_ITERATION_5 19\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 18 && BOOST_PP_ITERATION_START_5 >= 18\r
-#    define BOOST_PP_ITERATION_5 18\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 17 && BOOST_PP_ITERATION_START_5 >= 17\r
-#    define BOOST_PP_ITERATION_5 17\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 16 && BOOST_PP_ITERATION_START_5 >= 16\r
-#    define BOOST_PP_ITERATION_5 16\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 15 && BOOST_PP_ITERATION_START_5 >= 15\r
-#    define BOOST_PP_ITERATION_5 15\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 14 && BOOST_PP_ITERATION_START_5 >= 14\r
-#    define BOOST_PP_ITERATION_5 14\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 13 && BOOST_PP_ITERATION_START_5 >= 13\r
-#    define BOOST_PP_ITERATION_5 13\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 12 && BOOST_PP_ITERATION_START_5 >= 12\r
-#    define BOOST_PP_ITERATION_5 12\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 11 && BOOST_PP_ITERATION_START_5 >= 11\r
-#    define BOOST_PP_ITERATION_5 11\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 10 && BOOST_PP_ITERATION_START_5 >= 10\r
-#    define BOOST_PP_ITERATION_5 10\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 9 && BOOST_PP_ITERATION_START_5 >= 9\r
-#    define BOOST_PP_ITERATION_5 9\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 8 && BOOST_PP_ITERATION_START_5 >= 8\r
-#    define BOOST_PP_ITERATION_5 8\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 7 && BOOST_PP_ITERATION_START_5 >= 7\r
-#    define BOOST_PP_ITERATION_5 7\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 6 && BOOST_PP_ITERATION_START_5 >= 6\r
-#    define BOOST_PP_ITERATION_5 6\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 5 && BOOST_PP_ITERATION_START_5 >= 5\r
-#    define BOOST_PP_ITERATION_5 5\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 4 && BOOST_PP_ITERATION_START_5 >= 4\r
-#    define BOOST_PP_ITERATION_5 4\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 3 && BOOST_PP_ITERATION_START_5 >= 3\r
-#    define BOOST_PP_ITERATION_5 3\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 2 && BOOST_PP_ITERATION_START_5 >= 2\r
-#    define BOOST_PP_ITERATION_5 2\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 1 && BOOST_PP_ITERATION_START_5 >= 1\r
-#    define BOOST_PP_ITERATION_5 1\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
-# if BOOST_PP_ITERATION_FINISH_5 <= 0 && BOOST_PP_ITERATION_START_5 >= 0\r
-#    define BOOST_PP_ITERATION_5 0\r
-#    include BOOST_PP_FILENAME_5\r
-#    undef BOOST_PP_ITERATION_5\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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 BOOST_PP_ITERATION_FINISH_5 <= 256 && BOOST_PP_ITERATION_START_5 >= 256
+#    define BOOST_PP_ITERATION_5 256
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 255 && BOOST_PP_ITERATION_START_5 >= 255
+#    define BOOST_PP_ITERATION_5 255
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 254 && BOOST_PP_ITERATION_START_5 >= 254
+#    define BOOST_PP_ITERATION_5 254
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 253 && BOOST_PP_ITERATION_START_5 >= 253
+#    define BOOST_PP_ITERATION_5 253
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 252 && BOOST_PP_ITERATION_START_5 >= 252
+#    define BOOST_PP_ITERATION_5 252
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 251 && BOOST_PP_ITERATION_START_5 >= 251
+#    define BOOST_PP_ITERATION_5 251
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 250 && BOOST_PP_ITERATION_START_5 >= 250
+#    define BOOST_PP_ITERATION_5 250
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 249 && BOOST_PP_ITERATION_START_5 >= 249
+#    define BOOST_PP_ITERATION_5 249
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 248 && BOOST_PP_ITERATION_START_5 >= 248
+#    define BOOST_PP_ITERATION_5 248
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 247 && BOOST_PP_ITERATION_START_5 >= 247
+#    define BOOST_PP_ITERATION_5 247
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 246 && BOOST_PP_ITERATION_START_5 >= 246
+#    define BOOST_PP_ITERATION_5 246
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 245 && BOOST_PP_ITERATION_START_5 >= 245
+#    define BOOST_PP_ITERATION_5 245
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 244 && BOOST_PP_ITERATION_START_5 >= 244
+#    define BOOST_PP_ITERATION_5 244
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 243 && BOOST_PP_ITERATION_START_5 >= 243
+#    define BOOST_PP_ITERATION_5 243
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 242 && BOOST_PP_ITERATION_START_5 >= 242
+#    define BOOST_PP_ITERATION_5 242
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 241 && BOOST_PP_ITERATION_START_5 >= 241
+#    define BOOST_PP_ITERATION_5 241
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 240 && BOOST_PP_ITERATION_START_5 >= 240
+#    define BOOST_PP_ITERATION_5 240
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 239 && BOOST_PP_ITERATION_START_5 >= 239
+#    define BOOST_PP_ITERATION_5 239
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 238 && BOOST_PP_ITERATION_START_5 >= 238
+#    define BOOST_PP_ITERATION_5 238
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 237 && BOOST_PP_ITERATION_START_5 >= 237
+#    define BOOST_PP_ITERATION_5 237
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 236 && BOOST_PP_ITERATION_START_5 >= 236
+#    define BOOST_PP_ITERATION_5 236
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 235 && BOOST_PP_ITERATION_START_5 >= 235
+#    define BOOST_PP_ITERATION_5 235
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 234 && BOOST_PP_ITERATION_START_5 >= 234
+#    define BOOST_PP_ITERATION_5 234
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 233 && BOOST_PP_ITERATION_START_5 >= 233
+#    define BOOST_PP_ITERATION_5 233
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 232 && BOOST_PP_ITERATION_START_5 >= 232
+#    define BOOST_PP_ITERATION_5 232
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 231 && BOOST_PP_ITERATION_START_5 >= 231
+#    define BOOST_PP_ITERATION_5 231
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 230 && BOOST_PP_ITERATION_START_5 >= 230
+#    define BOOST_PP_ITERATION_5 230
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 229 && BOOST_PP_ITERATION_START_5 >= 229
+#    define BOOST_PP_ITERATION_5 229
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 228 && BOOST_PP_ITERATION_START_5 >= 228
+#    define BOOST_PP_ITERATION_5 228
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 227 && BOOST_PP_ITERATION_START_5 >= 227
+#    define BOOST_PP_ITERATION_5 227
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 226 && BOOST_PP_ITERATION_START_5 >= 226
+#    define BOOST_PP_ITERATION_5 226
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 225 && BOOST_PP_ITERATION_START_5 >= 225
+#    define BOOST_PP_ITERATION_5 225
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 224 && BOOST_PP_ITERATION_START_5 >= 224
+#    define BOOST_PP_ITERATION_5 224
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 223 && BOOST_PP_ITERATION_START_5 >= 223
+#    define BOOST_PP_ITERATION_5 223
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 222 && BOOST_PP_ITERATION_START_5 >= 222
+#    define BOOST_PP_ITERATION_5 222
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 221 && BOOST_PP_ITERATION_START_5 >= 221
+#    define BOOST_PP_ITERATION_5 221
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 220 && BOOST_PP_ITERATION_START_5 >= 220
+#    define BOOST_PP_ITERATION_5 220
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 219 && BOOST_PP_ITERATION_START_5 >= 219
+#    define BOOST_PP_ITERATION_5 219
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 218 && BOOST_PP_ITERATION_START_5 >= 218
+#    define BOOST_PP_ITERATION_5 218
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 217 && BOOST_PP_ITERATION_START_5 >= 217
+#    define BOOST_PP_ITERATION_5 217
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 216 && BOOST_PP_ITERATION_START_5 >= 216
+#    define BOOST_PP_ITERATION_5 216
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 215 && BOOST_PP_ITERATION_START_5 >= 215
+#    define BOOST_PP_ITERATION_5 215
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 214 && BOOST_PP_ITERATION_START_5 >= 214
+#    define BOOST_PP_ITERATION_5 214
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 213 && BOOST_PP_ITERATION_START_5 >= 213
+#    define BOOST_PP_ITERATION_5 213
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 212 && BOOST_PP_ITERATION_START_5 >= 212
+#    define BOOST_PP_ITERATION_5 212
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 211 && BOOST_PP_ITERATION_START_5 >= 211
+#    define BOOST_PP_ITERATION_5 211
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 210 && BOOST_PP_ITERATION_START_5 >= 210
+#    define BOOST_PP_ITERATION_5 210
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 209 && BOOST_PP_ITERATION_START_5 >= 209
+#    define BOOST_PP_ITERATION_5 209
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 208 && BOOST_PP_ITERATION_START_5 >= 208
+#    define BOOST_PP_ITERATION_5 208
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 207 && BOOST_PP_ITERATION_START_5 >= 207
+#    define BOOST_PP_ITERATION_5 207
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 206 && BOOST_PP_ITERATION_START_5 >= 206
+#    define BOOST_PP_ITERATION_5 206
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 205 && BOOST_PP_ITERATION_START_5 >= 205
+#    define BOOST_PP_ITERATION_5 205
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 204 && BOOST_PP_ITERATION_START_5 >= 204
+#    define BOOST_PP_ITERATION_5 204
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 203 && BOOST_PP_ITERATION_START_5 >= 203
+#    define BOOST_PP_ITERATION_5 203
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 202 && BOOST_PP_ITERATION_START_5 >= 202
+#    define BOOST_PP_ITERATION_5 202
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 201 && BOOST_PP_ITERATION_START_5 >= 201
+#    define BOOST_PP_ITERATION_5 201
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 200 && BOOST_PP_ITERATION_START_5 >= 200
+#    define BOOST_PP_ITERATION_5 200
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 199 && BOOST_PP_ITERATION_START_5 >= 199
+#    define BOOST_PP_ITERATION_5 199
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 198 && BOOST_PP_ITERATION_START_5 >= 198
+#    define BOOST_PP_ITERATION_5 198
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 197 && BOOST_PP_ITERATION_START_5 >= 197
+#    define BOOST_PP_ITERATION_5 197
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 196 && BOOST_PP_ITERATION_START_5 >= 196
+#    define BOOST_PP_ITERATION_5 196
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 195 && BOOST_PP_ITERATION_START_5 >= 195
+#    define BOOST_PP_ITERATION_5 195
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 194 && BOOST_PP_ITERATION_START_5 >= 194
+#    define BOOST_PP_ITERATION_5 194
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 193 && BOOST_PP_ITERATION_START_5 >= 193
+#    define BOOST_PP_ITERATION_5 193
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 192 && BOOST_PP_ITERATION_START_5 >= 192
+#    define BOOST_PP_ITERATION_5 192
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 191 && BOOST_PP_ITERATION_START_5 >= 191
+#    define BOOST_PP_ITERATION_5 191
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 190 && BOOST_PP_ITERATION_START_5 >= 190
+#    define BOOST_PP_ITERATION_5 190
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 189 && BOOST_PP_ITERATION_START_5 >= 189
+#    define BOOST_PP_ITERATION_5 189
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 188 && BOOST_PP_ITERATION_START_5 >= 188
+#    define BOOST_PP_ITERATION_5 188
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 187 && BOOST_PP_ITERATION_START_5 >= 187
+#    define BOOST_PP_ITERATION_5 187
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 186 && BOOST_PP_ITERATION_START_5 >= 186
+#    define BOOST_PP_ITERATION_5 186
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 185 && BOOST_PP_ITERATION_START_5 >= 185
+#    define BOOST_PP_ITERATION_5 185
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 184 && BOOST_PP_ITERATION_START_5 >= 184
+#    define BOOST_PP_ITERATION_5 184
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 183 && BOOST_PP_ITERATION_START_5 >= 183
+#    define BOOST_PP_ITERATION_5 183
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 182 && BOOST_PP_ITERATION_START_5 >= 182
+#    define BOOST_PP_ITERATION_5 182
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 181 && BOOST_PP_ITERATION_START_5 >= 181
+#    define BOOST_PP_ITERATION_5 181
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 180 && BOOST_PP_ITERATION_START_5 >= 180
+#    define BOOST_PP_ITERATION_5 180
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 179 && BOOST_PP_ITERATION_START_5 >= 179
+#    define BOOST_PP_ITERATION_5 179
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 178 && BOOST_PP_ITERATION_START_5 >= 178
+#    define BOOST_PP_ITERATION_5 178
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 177 && BOOST_PP_ITERATION_START_5 >= 177
+#    define BOOST_PP_ITERATION_5 177
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 176 && BOOST_PP_ITERATION_START_5 >= 176
+#    define BOOST_PP_ITERATION_5 176
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 175 && BOOST_PP_ITERATION_START_5 >= 175
+#    define BOOST_PP_ITERATION_5 175
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 174 && BOOST_PP_ITERATION_START_5 >= 174
+#    define BOOST_PP_ITERATION_5 174
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 173 && BOOST_PP_ITERATION_START_5 >= 173
+#    define BOOST_PP_ITERATION_5 173
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 172 && BOOST_PP_ITERATION_START_5 >= 172
+#    define BOOST_PP_ITERATION_5 172
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 171 && BOOST_PP_ITERATION_START_5 >= 171
+#    define BOOST_PP_ITERATION_5 171
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 170 && BOOST_PP_ITERATION_START_5 >= 170
+#    define BOOST_PP_ITERATION_5 170
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 169 && BOOST_PP_ITERATION_START_5 >= 169
+#    define BOOST_PP_ITERATION_5 169
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 168 && BOOST_PP_ITERATION_START_5 >= 168
+#    define BOOST_PP_ITERATION_5 168
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 167 && BOOST_PP_ITERATION_START_5 >= 167
+#    define BOOST_PP_ITERATION_5 167
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 166 && BOOST_PP_ITERATION_START_5 >= 166
+#    define BOOST_PP_ITERATION_5 166
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 165 && BOOST_PP_ITERATION_START_5 >= 165
+#    define BOOST_PP_ITERATION_5 165
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 164 && BOOST_PP_ITERATION_START_5 >= 164
+#    define BOOST_PP_ITERATION_5 164
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 163 && BOOST_PP_ITERATION_START_5 >= 163
+#    define BOOST_PP_ITERATION_5 163
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 162 && BOOST_PP_ITERATION_START_5 >= 162
+#    define BOOST_PP_ITERATION_5 162
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 161 && BOOST_PP_ITERATION_START_5 >= 161
+#    define BOOST_PP_ITERATION_5 161
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 160 && BOOST_PP_ITERATION_START_5 >= 160
+#    define BOOST_PP_ITERATION_5 160
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 159 && BOOST_PP_ITERATION_START_5 >= 159
+#    define BOOST_PP_ITERATION_5 159
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 158 && BOOST_PP_ITERATION_START_5 >= 158
+#    define BOOST_PP_ITERATION_5 158
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 157 && BOOST_PP_ITERATION_START_5 >= 157
+#    define BOOST_PP_ITERATION_5 157
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 156 && BOOST_PP_ITERATION_START_5 >= 156
+#    define BOOST_PP_ITERATION_5 156
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 155 && BOOST_PP_ITERATION_START_5 >= 155
+#    define BOOST_PP_ITERATION_5 155
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 154 && BOOST_PP_ITERATION_START_5 >= 154
+#    define BOOST_PP_ITERATION_5 154
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 153 && BOOST_PP_ITERATION_START_5 >= 153
+#    define BOOST_PP_ITERATION_5 153
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 152 && BOOST_PP_ITERATION_START_5 >= 152
+#    define BOOST_PP_ITERATION_5 152
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 151 && BOOST_PP_ITERATION_START_5 >= 151
+#    define BOOST_PP_ITERATION_5 151
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 150 && BOOST_PP_ITERATION_START_5 >= 150
+#    define BOOST_PP_ITERATION_5 150
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 149 && BOOST_PP_ITERATION_START_5 >= 149
+#    define BOOST_PP_ITERATION_5 149
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 148 && BOOST_PP_ITERATION_START_5 >= 148
+#    define BOOST_PP_ITERATION_5 148
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 147 && BOOST_PP_ITERATION_START_5 >= 147
+#    define BOOST_PP_ITERATION_5 147
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 146 && BOOST_PP_ITERATION_START_5 >= 146
+#    define BOOST_PP_ITERATION_5 146
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 145 && BOOST_PP_ITERATION_START_5 >= 145
+#    define BOOST_PP_ITERATION_5 145
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 144 && BOOST_PP_ITERATION_START_5 >= 144
+#    define BOOST_PP_ITERATION_5 144
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 143 && BOOST_PP_ITERATION_START_5 >= 143
+#    define BOOST_PP_ITERATION_5 143
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 142 && BOOST_PP_ITERATION_START_5 >= 142
+#    define BOOST_PP_ITERATION_5 142
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 141 && BOOST_PP_ITERATION_START_5 >= 141
+#    define BOOST_PP_ITERATION_5 141
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 140 && BOOST_PP_ITERATION_START_5 >= 140
+#    define BOOST_PP_ITERATION_5 140
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 139 && BOOST_PP_ITERATION_START_5 >= 139
+#    define BOOST_PP_ITERATION_5 139
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 138 && BOOST_PP_ITERATION_START_5 >= 138
+#    define BOOST_PP_ITERATION_5 138
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 137 && BOOST_PP_ITERATION_START_5 >= 137
+#    define BOOST_PP_ITERATION_5 137
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 136 && BOOST_PP_ITERATION_START_5 >= 136
+#    define BOOST_PP_ITERATION_5 136
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 135 && BOOST_PP_ITERATION_START_5 >= 135
+#    define BOOST_PP_ITERATION_5 135
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 134 && BOOST_PP_ITERATION_START_5 >= 134
+#    define BOOST_PP_ITERATION_5 134
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 133 && BOOST_PP_ITERATION_START_5 >= 133
+#    define BOOST_PP_ITERATION_5 133
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 132 && BOOST_PP_ITERATION_START_5 >= 132
+#    define BOOST_PP_ITERATION_5 132
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 131 && BOOST_PP_ITERATION_START_5 >= 131
+#    define BOOST_PP_ITERATION_5 131
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 130 && BOOST_PP_ITERATION_START_5 >= 130
+#    define BOOST_PP_ITERATION_5 130
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 129 && BOOST_PP_ITERATION_START_5 >= 129
+#    define BOOST_PP_ITERATION_5 129
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 128 && BOOST_PP_ITERATION_START_5 >= 128
+#    define BOOST_PP_ITERATION_5 128
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 127 && BOOST_PP_ITERATION_START_5 >= 127
+#    define BOOST_PP_ITERATION_5 127
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 126 && BOOST_PP_ITERATION_START_5 >= 126
+#    define BOOST_PP_ITERATION_5 126
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 125 && BOOST_PP_ITERATION_START_5 >= 125
+#    define BOOST_PP_ITERATION_5 125
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 124 && BOOST_PP_ITERATION_START_5 >= 124
+#    define BOOST_PP_ITERATION_5 124
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 123 && BOOST_PP_ITERATION_START_5 >= 123
+#    define BOOST_PP_ITERATION_5 123
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 122 && BOOST_PP_ITERATION_START_5 >= 122
+#    define BOOST_PP_ITERATION_5 122
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 121 && BOOST_PP_ITERATION_START_5 >= 121
+#    define BOOST_PP_ITERATION_5 121
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 120 && BOOST_PP_ITERATION_START_5 >= 120
+#    define BOOST_PP_ITERATION_5 120
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 119 && BOOST_PP_ITERATION_START_5 >= 119
+#    define BOOST_PP_ITERATION_5 119
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 118 && BOOST_PP_ITERATION_START_5 >= 118
+#    define BOOST_PP_ITERATION_5 118
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 117 && BOOST_PP_ITERATION_START_5 >= 117
+#    define BOOST_PP_ITERATION_5 117
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 116 && BOOST_PP_ITERATION_START_5 >= 116
+#    define BOOST_PP_ITERATION_5 116
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 115 && BOOST_PP_ITERATION_START_5 >= 115
+#    define BOOST_PP_ITERATION_5 115
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 114 && BOOST_PP_ITERATION_START_5 >= 114
+#    define BOOST_PP_ITERATION_5 114
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 113 && BOOST_PP_ITERATION_START_5 >= 113
+#    define BOOST_PP_ITERATION_5 113
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 112 && BOOST_PP_ITERATION_START_5 >= 112
+#    define BOOST_PP_ITERATION_5 112
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 111 && BOOST_PP_ITERATION_START_5 >= 111
+#    define BOOST_PP_ITERATION_5 111
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 110 && BOOST_PP_ITERATION_START_5 >= 110
+#    define BOOST_PP_ITERATION_5 110
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 109 && BOOST_PP_ITERATION_START_5 >= 109
+#    define BOOST_PP_ITERATION_5 109
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 108 && BOOST_PP_ITERATION_START_5 >= 108
+#    define BOOST_PP_ITERATION_5 108
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 107 && BOOST_PP_ITERATION_START_5 >= 107
+#    define BOOST_PP_ITERATION_5 107
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 106 && BOOST_PP_ITERATION_START_5 >= 106
+#    define BOOST_PP_ITERATION_5 106
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 105 && BOOST_PP_ITERATION_START_5 >= 105
+#    define BOOST_PP_ITERATION_5 105
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 104 && BOOST_PP_ITERATION_START_5 >= 104
+#    define BOOST_PP_ITERATION_5 104
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 103 && BOOST_PP_ITERATION_START_5 >= 103
+#    define BOOST_PP_ITERATION_5 103
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 102 && BOOST_PP_ITERATION_START_5 >= 102
+#    define BOOST_PP_ITERATION_5 102
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 101 && BOOST_PP_ITERATION_START_5 >= 101
+#    define BOOST_PP_ITERATION_5 101
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 100 && BOOST_PP_ITERATION_START_5 >= 100
+#    define BOOST_PP_ITERATION_5 100
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 99 && BOOST_PP_ITERATION_START_5 >= 99
+#    define BOOST_PP_ITERATION_5 99
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 98 && BOOST_PP_ITERATION_START_5 >= 98
+#    define BOOST_PP_ITERATION_5 98
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 97 && BOOST_PP_ITERATION_START_5 >= 97
+#    define BOOST_PP_ITERATION_5 97
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 96 && BOOST_PP_ITERATION_START_5 >= 96
+#    define BOOST_PP_ITERATION_5 96
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 95 && BOOST_PP_ITERATION_START_5 >= 95
+#    define BOOST_PP_ITERATION_5 95
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 94 && BOOST_PP_ITERATION_START_5 >= 94
+#    define BOOST_PP_ITERATION_5 94
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 93 && BOOST_PP_ITERATION_START_5 >= 93
+#    define BOOST_PP_ITERATION_5 93
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 92 && BOOST_PP_ITERATION_START_5 >= 92
+#    define BOOST_PP_ITERATION_5 92
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 91 && BOOST_PP_ITERATION_START_5 >= 91
+#    define BOOST_PP_ITERATION_5 91
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 90 && BOOST_PP_ITERATION_START_5 >= 90
+#    define BOOST_PP_ITERATION_5 90
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 89 && BOOST_PP_ITERATION_START_5 >= 89
+#    define BOOST_PP_ITERATION_5 89
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 88 && BOOST_PP_ITERATION_START_5 >= 88
+#    define BOOST_PP_ITERATION_5 88
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 87 && BOOST_PP_ITERATION_START_5 >= 87
+#    define BOOST_PP_ITERATION_5 87
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 86 && BOOST_PP_ITERATION_START_5 >= 86
+#    define BOOST_PP_ITERATION_5 86
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 85 && BOOST_PP_ITERATION_START_5 >= 85
+#    define BOOST_PP_ITERATION_5 85
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 84 && BOOST_PP_ITERATION_START_5 >= 84
+#    define BOOST_PP_ITERATION_5 84
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 83 && BOOST_PP_ITERATION_START_5 >= 83
+#    define BOOST_PP_ITERATION_5 83
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 82 && BOOST_PP_ITERATION_START_5 >= 82
+#    define BOOST_PP_ITERATION_5 82
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 81 && BOOST_PP_ITERATION_START_5 >= 81
+#    define BOOST_PP_ITERATION_5 81
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 80 && BOOST_PP_ITERATION_START_5 >= 80
+#    define BOOST_PP_ITERATION_5 80
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 79 && BOOST_PP_ITERATION_START_5 >= 79
+#    define BOOST_PP_ITERATION_5 79
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 78 && BOOST_PP_ITERATION_START_5 >= 78
+#    define BOOST_PP_ITERATION_5 78
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 77 && BOOST_PP_ITERATION_START_5 >= 77
+#    define BOOST_PP_ITERATION_5 77
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 76 && BOOST_PP_ITERATION_START_5 >= 76
+#    define BOOST_PP_ITERATION_5 76
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 75 && BOOST_PP_ITERATION_START_5 >= 75
+#    define BOOST_PP_ITERATION_5 75
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 74 && BOOST_PP_ITERATION_START_5 >= 74
+#    define BOOST_PP_ITERATION_5 74
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 73 && BOOST_PP_ITERATION_START_5 >= 73
+#    define BOOST_PP_ITERATION_5 73
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 72 && BOOST_PP_ITERATION_START_5 >= 72
+#    define BOOST_PP_ITERATION_5 72
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 71 && BOOST_PP_ITERATION_START_5 >= 71
+#    define BOOST_PP_ITERATION_5 71
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 70 && BOOST_PP_ITERATION_START_5 >= 70
+#    define BOOST_PP_ITERATION_5 70
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 69 && BOOST_PP_ITERATION_START_5 >= 69
+#    define BOOST_PP_ITERATION_5 69
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 68 && BOOST_PP_ITERATION_START_5 >= 68
+#    define BOOST_PP_ITERATION_5 68
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 67 && BOOST_PP_ITERATION_START_5 >= 67
+#    define BOOST_PP_ITERATION_5 67
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 66 && BOOST_PP_ITERATION_START_5 >= 66
+#    define BOOST_PP_ITERATION_5 66
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 65 && BOOST_PP_ITERATION_START_5 >= 65
+#    define BOOST_PP_ITERATION_5 65
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 64 && BOOST_PP_ITERATION_START_5 >= 64
+#    define BOOST_PP_ITERATION_5 64
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 63 && BOOST_PP_ITERATION_START_5 >= 63
+#    define BOOST_PP_ITERATION_5 63
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 62 && BOOST_PP_ITERATION_START_5 >= 62
+#    define BOOST_PP_ITERATION_5 62
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 61 && BOOST_PP_ITERATION_START_5 >= 61
+#    define BOOST_PP_ITERATION_5 61
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 60 && BOOST_PP_ITERATION_START_5 >= 60
+#    define BOOST_PP_ITERATION_5 60
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 59 && BOOST_PP_ITERATION_START_5 >= 59
+#    define BOOST_PP_ITERATION_5 59
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 58 && BOOST_PP_ITERATION_START_5 >= 58
+#    define BOOST_PP_ITERATION_5 58
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 57 && BOOST_PP_ITERATION_START_5 >= 57
+#    define BOOST_PP_ITERATION_5 57
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 56 && BOOST_PP_ITERATION_START_5 >= 56
+#    define BOOST_PP_ITERATION_5 56
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 55 && BOOST_PP_ITERATION_START_5 >= 55
+#    define BOOST_PP_ITERATION_5 55
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 54 && BOOST_PP_ITERATION_START_5 >= 54
+#    define BOOST_PP_ITERATION_5 54
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 53 && BOOST_PP_ITERATION_START_5 >= 53
+#    define BOOST_PP_ITERATION_5 53
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 52 && BOOST_PP_ITERATION_START_5 >= 52
+#    define BOOST_PP_ITERATION_5 52
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 51 && BOOST_PP_ITERATION_START_5 >= 51
+#    define BOOST_PP_ITERATION_5 51
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 50 && BOOST_PP_ITERATION_START_5 >= 50
+#    define BOOST_PP_ITERATION_5 50
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 49 && BOOST_PP_ITERATION_START_5 >= 49
+#    define BOOST_PP_ITERATION_5 49
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 48 && BOOST_PP_ITERATION_START_5 >= 48
+#    define BOOST_PP_ITERATION_5 48
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 47 && BOOST_PP_ITERATION_START_5 >= 47
+#    define BOOST_PP_ITERATION_5 47
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 46 && BOOST_PP_ITERATION_START_5 >= 46
+#    define BOOST_PP_ITERATION_5 46
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 45 && BOOST_PP_ITERATION_START_5 >= 45
+#    define BOOST_PP_ITERATION_5 45
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 44 && BOOST_PP_ITERATION_START_5 >= 44
+#    define BOOST_PP_ITERATION_5 44
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 43 && BOOST_PP_ITERATION_START_5 >= 43
+#    define BOOST_PP_ITERATION_5 43
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 42 && BOOST_PP_ITERATION_START_5 >= 42
+#    define BOOST_PP_ITERATION_5 42
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 41 && BOOST_PP_ITERATION_START_5 >= 41
+#    define BOOST_PP_ITERATION_5 41
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 40 && BOOST_PP_ITERATION_START_5 >= 40
+#    define BOOST_PP_ITERATION_5 40
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 39 && BOOST_PP_ITERATION_START_5 >= 39
+#    define BOOST_PP_ITERATION_5 39
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 38 && BOOST_PP_ITERATION_START_5 >= 38
+#    define BOOST_PP_ITERATION_5 38
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 37 && BOOST_PP_ITERATION_START_5 >= 37
+#    define BOOST_PP_ITERATION_5 37
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 36 && BOOST_PP_ITERATION_START_5 >= 36
+#    define BOOST_PP_ITERATION_5 36
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 35 && BOOST_PP_ITERATION_START_5 >= 35
+#    define BOOST_PP_ITERATION_5 35
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 34 && BOOST_PP_ITERATION_START_5 >= 34
+#    define BOOST_PP_ITERATION_5 34
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 33 && BOOST_PP_ITERATION_START_5 >= 33
+#    define BOOST_PP_ITERATION_5 33
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 32 && BOOST_PP_ITERATION_START_5 >= 32
+#    define BOOST_PP_ITERATION_5 32
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 31 && BOOST_PP_ITERATION_START_5 >= 31
+#    define BOOST_PP_ITERATION_5 31
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 30 && BOOST_PP_ITERATION_START_5 >= 30
+#    define BOOST_PP_ITERATION_5 30
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 29 && BOOST_PP_ITERATION_START_5 >= 29
+#    define BOOST_PP_ITERATION_5 29
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 28 && BOOST_PP_ITERATION_START_5 >= 28
+#    define BOOST_PP_ITERATION_5 28
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 27 && BOOST_PP_ITERATION_START_5 >= 27
+#    define BOOST_PP_ITERATION_5 27
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 26 && BOOST_PP_ITERATION_START_5 >= 26
+#    define BOOST_PP_ITERATION_5 26
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 25 && BOOST_PP_ITERATION_START_5 >= 25
+#    define BOOST_PP_ITERATION_5 25
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 24 && BOOST_PP_ITERATION_START_5 >= 24
+#    define BOOST_PP_ITERATION_5 24
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 23 && BOOST_PP_ITERATION_START_5 >= 23
+#    define BOOST_PP_ITERATION_5 23
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 22 && BOOST_PP_ITERATION_START_5 >= 22
+#    define BOOST_PP_ITERATION_5 22
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 21 && BOOST_PP_ITERATION_START_5 >= 21
+#    define BOOST_PP_ITERATION_5 21
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 20 && BOOST_PP_ITERATION_START_5 >= 20
+#    define BOOST_PP_ITERATION_5 20
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 19 && BOOST_PP_ITERATION_START_5 >= 19
+#    define BOOST_PP_ITERATION_5 19
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 18 && BOOST_PP_ITERATION_START_5 >= 18
+#    define BOOST_PP_ITERATION_5 18
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 17 && BOOST_PP_ITERATION_START_5 >= 17
+#    define BOOST_PP_ITERATION_5 17
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 16 && BOOST_PP_ITERATION_START_5 >= 16
+#    define BOOST_PP_ITERATION_5 16
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 15 && BOOST_PP_ITERATION_START_5 >= 15
+#    define BOOST_PP_ITERATION_5 15
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 14 && BOOST_PP_ITERATION_START_5 >= 14
+#    define BOOST_PP_ITERATION_5 14
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 13 && BOOST_PP_ITERATION_START_5 >= 13
+#    define BOOST_PP_ITERATION_5 13
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 12 && BOOST_PP_ITERATION_START_5 >= 12
+#    define BOOST_PP_ITERATION_5 12
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 11 && BOOST_PP_ITERATION_START_5 >= 11
+#    define BOOST_PP_ITERATION_5 11
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 10 && BOOST_PP_ITERATION_START_5 >= 10
+#    define BOOST_PP_ITERATION_5 10
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 9 && BOOST_PP_ITERATION_START_5 >= 9
+#    define BOOST_PP_ITERATION_5 9
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 8 && BOOST_PP_ITERATION_START_5 >= 8
+#    define BOOST_PP_ITERATION_5 8
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 7 && BOOST_PP_ITERATION_START_5 >= 7
+#    define BOOST_PP_ITERATION_5 7
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 6 && BOOST_PP_ITERATION_START_5 >= 6
+#    define BOOST_PP_ITERATION_5 6
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 5 && BOOST_PP_ITERATION_START_5 >= 5
+#    define BOOST_PP_ITERATION_5 5
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 4 && BOOST_PP_ITERATION_START_5 >= 4
+#    define BOOST_PP_ITERATION_5 4
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 3 && BOOST_PP_ITERATION_START_5 >= 3
+#    define BOOST_PP_ITERATION_5 3
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 2 && BOOST_PP_ITERATION_START_5 >= 2
+#    define BOOST_PP_ITERATION_5 2
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 1 && BOOST_PP_ITERATION_START_5 >= 1
+#    define BOOST_PP_ITERATION_5 1
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
+# if BOOST_PP_ITERATION_FINISH_5 <= 0 && BOOST_PP_ITERATION_START_5 >= 0
+#    define BOOST_PP_ITERATION_5 0
+#    include BOOST_PP_FILENAME_5
+#    undef BOOST_PP_ITERATION_5
+# endif
index 3b3fcaeb095dec137908a9d086dd8728838ee642..413afa09d1bdc5458ec897f192bcada2e2419485 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# if BOOST_PP_LOCAL_R(256)\r
-    BOOST_PP_LOCAL_MACRO(256)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(255)\r
-    BOOST_PP_LOCAL_MACRO(255)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(254)\r
-    BOOST_PP_LOCAL_MACRO(254)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(253)\r
-    BOOST_PP_LOCAL_MACRO(253)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(252)\r
-    BOOST_PP_LOCAL_MACRO(252)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(251)\r
-    BOOST_PP_LOCAL_MACRO(251)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(250)\r
-    BOOST_PP_LOCAL_MACRO(250)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(249)\r
-    BOOST_PP_LOCAL_MACRO(249)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(248)\r
-    BOOST_PP_LOCAL_MACRO(248)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(247)\r
-    BOOST_PP_LOCAL_MACRO(247)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(246)\r
-    BOOST_PP_LOCAL_MACRO(246)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(245)\r
-    BOOST_PP_LOCAL_MACRO(245)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(244)\r
-    BOOST_PP_LOCAL_MACRO(244)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(243)\r
-    BOOST_PP_LOCAL_MACRO(243)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(242)\r
-    BOOST_PP_LOCAL_MACRO(242)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(241)\r
-    BOOST_PP_LOCAL_MACRO(241)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(240)\r
-    BOOST_PP_LOCAL_MACRO(240)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(239)\r
-    BOOST_PP_LOCAL_MACRO(239)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(238)\r
-    BOOST_PP_LOCAL_MACRO(238)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(237)\r
-    BOOST_PP_LOCAL_MACRO(237)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(236)\r
-    BOOST_PP_LOCAL_MACRO(236)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(235)\r
-    BOOST_PP_LOCAL_MACRO(235)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(234)\r
-    BOOST_PP_LOCAL_MACRO(234)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(233)\r
-    BOOST_PP_LOCAL_MACRO(233)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(232)\r
-    BOOST_PP_LOCAL_MACRO(232)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(231)\r
-    BOOST_PP_LOCAL_MACRO(231)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(230)\r
-    BOOST_PP_LOCAL_MACRO(230)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(229)\r
-    BOOST_PP_LOCAL_MACRO(229)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(228)\r
-    BOOST_PP_LOCAL_MACRO(228)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(227)\r
-    BOOST_PP_LOCAL_MACRO(227)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(226)\r
-    BOOST_PP_LOCAL_MACRO(226)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(225)\r
-    BOOST_PP_LOCAL_MACRO(225)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(224)\r
-    BOOST_PP_LOCAL_MACRO(224)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(223)\r
-    BOOST_PP_LOCAL_MACRO(223)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(222)\r
-    BOOST_PP_LOCAL_MACRO(222)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(221)\r
-    BOOST_PP_LOCAL_MACRO(221)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(220)\r
-    BOOST_PP_LOCAL_MACRO(220)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(219)\r
-    BOOST_PP_LOCAL_MACRO(219)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(218)\r
-    BOOST_PP_LOCAL_MACRO(218)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(217)\r
-    BOOST_PP_LOCAL_MACRO(217)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(216)\r
-    BOOST_PP_LOCAL_MACRO(216)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(215)\r
-    BOOST_PP_LOCAL_MACRO(215)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(214)\r
-    BOOST_PP_LOCAL_MACRO(214)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(213)\r
-    BOOST_PP_LOCAL_MACRO(213)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(212)\r
-    BOOST_PP_LOCAL_MACRO(212)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(211)\r
-    BOOST_PP_LOCAL_MACRO(211)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(210)\r
-    BOOST_PP_LOCAL_MACRO(210)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(209)\r
-    BOOST_PP_LOCAL_MACRO(209)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(208)\r
-    BOOST_PP_LOCAL_MACRO(208)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(207)\r
-    BOOST_PP_LOCAL_MACRO(207)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(206)\r
-    BOOST_PP_LOCAL_MACRO(206)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(205)\r
-    BOOST_PP_LOCAL_MACRO(205)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(204)\r
-    BOOST_PP_LOCAL_MACRO(204)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(203)\r
-    BOOST_PP_LOCAL_MACRO(203)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(202)\r
-    BOOST_PP_LOCAL_MACRO(202)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(201)\r
-    BOOST_PP_LOCAL_MACRO(201)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(200)\r
-    BOOST_PP_LOCAL_MACRO(200)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(199)\r
-    BOOST_PP_LOCAL_MACRO(199)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(198)\r
-    BOOST_PP_LOCAL_MACRO(198)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(197)\r
-    BOOST_PP_LOCAL_MACRO(197)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(196)\r
-    BOOST_PP_LOCAL_MACRO(196)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(195)\r
-    BOOST_PP_LOCAL_MACRO(195)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(194)\r
-    BOOST_PP_LOCAL_MACRO(194)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(193)\r
-    BOOST_PP_LOCAL_MACRO(193)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(192)\r
-    BOOST_PP_LOCAL_MACRO(192)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(191)\r
-    BOOST_PP_LOCAL_MACRO(191)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(190)\r
-    BOOST_PP_LOCAL_MACRO(190)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(189)\r
-    BOOST_PP_LOCAL_MACRO(189)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(188)\r
-    BOOST_PP_LOCAL_MACRO(188)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(187)\r
-    BOOST_PP_LOCAL_MACRO(187)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(186)\r
-    BOOST_PP_LOCAL_MACRO(186)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(185)\r
-    BOOST_PP_LOCAL_MACRO(185)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(184)\r
-    BOOST_PP_LOCAL_MACRO(184)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(183)\r
-    BOOST_PP_LOCAL_MACRO(183)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(182)\r
-    BOOST_PP_LOCAL_MACRO(182)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(181)\r
-    BOOST_PP_LOCAL_MACRO(181)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(180)\r
-    BOOST_PP_LOCAL_MACRO(180)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(179)\r
-    BOOST_PP_LOCAL_MACRO(179)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(178)\r
-    BOOST_PP_LOCAL_MACRO(178)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(177)\r
-    BOOST_PP_LOCAL_MACRO(177)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(176)\r
-    BOOST_PP_LOCAL_MACRO(176)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(175)\r
-    BOOST_PP_LOCAL_MACRO(175)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(174)\r
-    BOOST_PP_LOCAL_MACRO(174)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(173)\r
-    BOOST_PP_LOCAL_MACRO(173)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(172)\r
-    BOOST_PP_LOCAL_MACRO(172)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(171)\r
-    BOOST_PP_LOCAL_MACRO(171)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(170)\r
-    BOOST_PP_LOCAL_MACRO(170)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(169)\r
-    BOOST_PP_LOCAL_MACRO(169)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(168)\r
-    BOOST_PP_LOCAL_MACRO(168)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(167)\r
-    BOOST_PP_LOCAL_MACRO(167)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(166)\r
-    BOOST_PP_LOCAL_MACRO(166)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(165)\r
-    BOOST_PP_LOCAL_MACRO(165)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(164)\r
-    BOOST_PP_LOCAL_MACRO(164)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(163)\r
-    BOOST_PP_LOCAL_MACRO(163)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(162)\r
-    BOOST_PP_LOCAL_MACRO(162)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(161)\r
-    BOOST_PP_LOCAL_MACRO(161)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(160)\r
-    BOOST_PP_LOCAL_MACRO(160)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(159)\r
-    BOOST_PP_LOCAL_MACRO(159)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(158)\r
-    BOOST_PP_LOCAL_MACRO(158)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(157)\r
-    BOOST_PP_LOCAL_MACRO(157)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(156)\r
-    BOOST_PP_LOCAL_MACRO(156)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(155)\r
-    BOOST_PP_LOCAL_MACRO(155)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(154)\r
-    BOOST_PP_LOCAL_MACRO(154)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(153)\r
-    BOOST_PP_LOCAL_MACRO(153)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(152)\r
-    BOOST_PP_LOCAL_MACRO(152)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(151)\r
-    BOOST_PP_LOCAL_MACRO(151)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(150)\r
-    BOOST_PP_LOCAL_MACRO(150)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(149)\r
-    BOOST_PP_LOCAL_MACRO(149)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(148)\r
-    BOOST_PP_LOCAL_MACRO(148)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(147)\r
-    BOOST_PP_LOCAL_MACRO(147)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(146)\r
-    BOOST_PP_LOCAL_MACRO(146)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(145)\r
-    BOOST_PP_LOCAL_MACRO(145)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(144)\r
-    BOOST_PP_LOCAL_MACRO(144)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(143)\r
-    BOOST_PP_LOCAL_MACRO(143)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(142)\r
-    BOOST_PP_LOCAL_MACRO(142)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(141)\r
-    BOOST_PP_LOCAL_MACRO(141)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(140)\r
-    BOOST_PP_LOCAL_MACRO(140)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(139)\r
-    BOOST_PP_LOCAL_MACRO(139)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(138)\r
-    BOOST_PP_LOCAL_MACRO(138)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(137)\r
-    BOOST_PP_LOCAL_MACRO(137)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(136)\r
-    BOOST_PP_LOCAL_MACRO(136)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(135)\r
-    BOOST_PP_LOCAL_MACRO(135)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(134)\r
-    BOOST_PP_LOCAL_MACRO(134)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(133)\r
-    BOOST_PP_LOCAL_MACRO(133)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(132)\r
-    BOOST_PP_LOCAL_MACRO(132)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(131)\r
-    BOOST_PP_LOCAL_MACRO(131)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(130)\r
-    BOOST_PP_LOCAL_MACRO(130)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(129)\r
-    BOOST_PP_LOCAL_MACRO(129)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(128)\r
-    BOOST_PP_LOCAL_MACRO(128)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(127)\r
-    BOOST_PP_LOCAL_MACRO(127)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(126)\r
-    BOOST_PP_LOCAL_MACRO(126)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(125)\r
-    BOOST_PP_LOCAL_MACRO(125)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(124)\r
-    BOOST_PP_LOCAL_MACRO(124)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(123)\r
-    BOOST_PP_LOCAL_MACRO(123)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(122)\r
-    BOOST_PP_LOCAL_MACRO(122)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(121)\r
-    BOOST_PP_LOCAL_MACRO(121)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(120)\r
-    BOOST_PP_LOCAL_MACRO(120)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(119)\r
-    BOOST_PP_LOCAL_MACRO(119)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(118)\r
-    BOOST_PP_LOCAL_MACRO(118)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(117)\r
-    BOOST_PP_LOCAL_MACRO(117)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(116)\r
-    BOOST_PP_LOCAL_MACRO(116)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(115)\r
-    BOOST_PP_LOCAL_MACRO(115)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(114)\r
-    BOOST_PP_LOCAL_MACRO(114)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(113)\r
-    BOOST_PP_LOCAL_MACRO(113)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(112)\r
-    BOOST_PP_LOCAL_MACRO(112)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(111)\r
-    BOOST_PP_LOCAL_MACRO(111)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(110)\r
-    BOOST_PP_LOCAL_MACRO(110)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(109)\r
-    BOOST_PP_LOCAL_MACRO(109)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(108)\r
-    BOOST_PP_LOCAL_MACRO(108)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(107)\r
-    BOOST_PP_LOCAL_MACRO(107)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(106)\r
-    BOOST_PP_LOCAL_MACRO(106)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(105)\r
-    BOOST_PP_LOCAL_MACRO(105)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(104)\r
-    BOOST_PP_LOCAL_MACRO(104)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(103)\r
-    BOOST_PP_LOCAL_MACRO(103)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(102)\r
-    BOOST_PP_LOCAL_MACRO(102)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(101)\r
-    BOOST_PP_LOCAL_MACRO(101)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(100)\r
-    BOOST_PP_LOCAL_MACRO(100)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(99)\r
-    BOOST_PP_LOCAL_MACRO(99)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(98)\r
-    BOOST_PP_LOCAL_MACRO(98)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(97)\r
-    BOOST_PP_LOCAL_MACRO(97)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(96)\r
-    BOOST_PP_LOCAL_MACRO(96)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(95)\r
-    BOOST_PP_LOCAL_MACRO(95)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(94)\r
-    BOOST_PP_LOCAL_MACRO(94)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(93)\r
-    BOOST_PP_LOCAL_MACRO(93)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(92)\r
-    BOOST_PP_LOCAL_MACRO(92)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(91)\r
-    BOOST_PP_LOCAL_MACRO(91)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(90)\r
-    BOOST_PP_LOCAL_MACRO(90)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(89)\r
-    BOOST_PP_LOCAL_MACRO(89)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(88)\r
-    BOOST_PP_LOCAL_MACRO(88)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(87)\r
-    BOOST_PP_LOCAL_MACRO(87)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(86)\r
-    BOOST_PP_LOCAL_MACRO(86)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(85)\r
-    BOOST_PP_LOCAL_MACRO(85)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(84)\r
-    BOOST_PP_LOCAL_MACRO(84)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(83)\r
-    BOOST_PP_LOCAL_MACRO(83)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(82)\r
-    BOOST_PP_LOCAL_MACRO(82)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(81)\r
-    BOOST_PP_LOCAL_MACRO(81)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(80)\r
-    BOOST_PP_LOCAL_MACRO(80)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(79)\r
-    BOOST_PP_LOCAL_MACRO(79)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(78)\r
-    BOOST_PP_LOCAL_MACRO(78)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(77)\r
-    BOOST_PP_LOCAL_MACRO(77)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(76)\r
-    BOOST_PP_LOCAL_MACRO(76)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(75)\r
-    BOOST_PP_LOCAL_MACRO(75)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(74)\r
-    BOOST_PP_LOCAL_MACRO(74)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(73)\r
-    BOOST_PP_LOCAL_MACRO(73)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(72)\r
-    BOOST_PP_LOCAL_MACRO(72)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(71)\r
-    BOOST_PP_LOCAL_MACRO(71)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(70)\r
-    BOOST_PP_LOCAL_MACRO(70)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(69)\r
-    BOOST_PP_LOCAL_MACRO(69)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(68)\r
-    BOOST_PP_LOCAL_MACRO(68)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(67)\r
-    BOOST_PP_LOCAL_MACRO(67)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(66)\r
-    BOOST_PP_LOCAL_MACRO(66)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(65)\r
-    BOOST_PP_LOCAL_MACRO(65)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(64)\r
-    BOOST_PP_LOCAL_MACRO(64)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(63)\r
-    BOOST_PP_LOCAL_MACRO(63)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(62)\r
-    BOOST_PP_LOCAL_MACRO(62)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(61)\r
-    BOOST_PP_LOCAL_MACRO(61)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(60)\r
-    BOOST_PP_LOCAL_MACRO(60)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(59)\r
-    BOOST_PP_LOCAL_MACRO(59)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(58)\r
-    BOOST_PP_LOCAL_MACRO(58)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(57)\r
-    BOOST_PP_LOCAL_MACRO(57)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(56)\r
-    BOOST_PP_LOCAL_MACRO(56)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(55)\r
-    BOOST_PP_LOCAL_MACRO(55)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(54)\r
-    BOOST_PP_LOCAL_MACRO(54)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(53)\r
-    BOOST_PP_LOCAL_MACRO(53)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(52)\r
-    BOOST_PP_LOCAL_MACRO(52)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(51)\r
-    BOOST_PP_LOCAL_MACRO(51)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(50)\r
-    BOOST_PP_LOCAL_MACRO(50)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(49)\r
-    BOOST_PP_LOCAL_MACRO(49)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(48)\r
-    BOOST_PP_LOCAL_MACRO(48)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(47)\r
-    BOOST_PP_LOCAL_MACRO(47)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(46)\r
-    BOOST_PP_LOCAL_MACRO(46)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(45)\r
-    BOOST_PP_LOCAL_MACRO(45)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(44)\r
-    BOOST_PP_LOCAL_MACRO(44)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(43)\r
-    BOOST_PP_LOCAL_MACRO(43)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(42)\r
-    BOOST_PP_LOCAL_MACRO(42)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(41)\r
-    BOOST_PP_LOCAL_MACRO(41)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(40)\r
-    BOOST_PP_LOCAL_MACRO(40)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(39)\r
-    BOOST_PP_LOCAL_MACRO(39)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(38)\r
-    BOOST_PP_LOCAL_MACRO(38)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(37)\r
-    BOOST_PP_LOCAL_MACRO(37)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(36)\r
-    BOOST_PP_LOCAL_MACRO(36)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(35)\r
-    BOOST_PP_LOCAL_MACRO(35)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(34)\r
-    BOOST_PP_LOCAL_MACRO(34)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(33)\r
-    BOOST_PP_LOCAL_MACRO(33)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(32)\r
-    BOOST_PP_LOCAL_MACRO(32)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(31)\r
-    BOOST_PP_LOCAL_MACRO(31)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(30)\r
-    BOOST_PP_LOCAL_MACRO(30)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(29)\r
-    BOOST_PP_LOCAL_MACRO(29)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(28)\r
-    BOOST_PP_LOCAL_MACRO(28)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(27)\r
-    BOOST_PP_LOCAL_MACRO(27)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(26)\r
-    BOOST_PP_LOCAL_MACRO(26)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(25)\r
-    BOOST_PP_LOCAL_MACRO(25)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(24)\r
-    BOOST_PP_LOCAL_MACRO(24)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(23)\r
-    BOOST_PP_LOCAL_MACRO(23)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(22)\r
-    BOOST_PP_LOCAL_MACRO(22)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(21)\r
-    BOOST_PP_LOCAL_MACRO(21)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(20)\r
-    BOOST_PP_LOCAL_MACRO(20)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(19)\r
-    BOOST_PP_LOCAL_MACRO(19)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(18)\r
-    BOOST_PP_LOCAL_MACRO(18)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(17)\r
-    BOOST_PP_LOCAL_MACRO(17)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(16)\r
-    BOOST_PP_LOCAL_MACRO(16)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(15)\r
-    BOOST_PP_LOCAL_MACRO(15)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(14)\r
-    BOOST_PP_LOCAL_MACRO(14)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(13)\r
-    BOOST_PP_LOCAL_MACRO(13)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(12)\r
-    BOOST_PP_LOCAL_MACRO(12)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(11)\r
-    BOOST_PP_LOCAL_MACRO(11)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(10)\r
-    BOOST_PP_LOCAL_MACRO(10)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(9)\r
-    BOOST_PP_LOCAL_MACRO(9)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(8)\r
-    BOOST_PP_LOCAL_MACRO(8)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(7)\r
-    BOOST_PP_LOCAL_MACRO(7)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(6)\r
-    BOOST_PP_LOCAL_MACRO(6)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(5)\r
-    BOOST_PP_LOCAL_MACRO(5)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(4)\r
-    BOOST_PP_LOCAL_MACRO(4)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(3)\r
-    BOOST_PP_LOCAL_MACRO(3)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(2)\r
-    BOOST_PP_LOCAL_MACRO(2)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(1)\r
-    BOOST_PP_LOCAL_MACRO(1)\r
-# endif\r
-# if BOOST_PP_LOCAL_R(0)\r
-    BOOST_PP_LOCAL_MACRO(0)\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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 BOOST_PP_LOCAL_R(256)
+    BOOST_PP_LOCAL_MACRO(256)
+# endif
+# if BOOST_PP_LOCAL_R(255)
+    BOOST_PP_LOCAL_MACRO(255)
+# endif
+# if BOOST_PP_LOCAL_R(254)
+    BOOST_PP_LOCAL_MACRO(254)
+# endif
+# if BOOST_PP_LOCAL_R(253)
+    BOOST_PP_LOCAL_MACRO(253)
+# endif
+# if BOOST_PP_LOCAL_R(252)
+    BOOST_PP_LOCAL_MACRO(252)
+# endif
+# if BOOST_PP_LOCAL_R(251)
+    BOOST_PP_LOCAL_MACRO(251)
+# endif
+# if BOOST_PP_LOCAL_R(250)
+    BOOST_PP_LOCAL_MACRO(250)
+# endif
+# if BOOST_PP_LOCAL_R(249)
+    BOOST_PP_LOCAL_MACRO(249)
+# endif
+# if BOOST_PP_LOCAL_R(248)
+    BOOST_PP_LOCAL_MACRO(248)
+# endif
+# if BOOST_PP_LOCAL_R(247)
+    BOOST_PP_LOCAL_MACRO(247)
+# endif
+# if BOOST_PP_LOCAL_R(246)
+    BOOST_PP_LOCAL_MACRO(246)
+# endif
+# if BOOST_PP_LOCAL_R(245)
+    BOOST_PP_LOCAL_MACRO(245)
+# endif
+# if BOOST_PP_LOCAL_R(244)
+    BOOST_PP_LOCAL_MACRO(244)
+# endif
+# if BOOST_PP_LOCAL_R(243)
+    BOOST_PP_LOCAL_MACRO(243)
+# endif
+# if BOOST_PP_LOCAL_R(242)
+    BOOST_PP_LOCAL_MACRO(242)
+# endif
+# if BOOST_PP_LOCAL_R(241)
+    BOOST_PP_LOCAL_MACRO(241)
+# endif
+# if BOOST_PP_LOCAL_R(240)
+    BOOST_PP_LOCAL_MACRO(240)
+# endif
+# if BOOST_PP_LOCAL_R(239)
+    BOOST_PP_LOCAL_MACRO(239)
+# endif
+# if BOOST_PP_LOCAL_R(238)
+    BOOST_PP_LOCAL_MACRO(238)
+# endif
+# if BOOST_PP_LOCAL_R(237)
+    BOOST_PP_LOCAL_MACRO(237)
+# endif
+# if BOOST_PP_LOCAL_R(236)
+    BOOST_PP_LOCAL_MACRO(236)
+# endif
+# if BOOST_PP_LOCAL_R(235)
+    BOOST_PP_LOCAL_MACRO(235)
+# endif
+# if BOOST_PP_LOCAL_R(234)
+    BOOST_PP_LOCAL_MACRO(234)
+# endif
+# if BOOST_PP_LOCAL_R(233)
+    BOOST_PP_LOCAL_MACRO(233)
+# endif
+# if BOOST_PP_LOCAL_R(232)
+    BOOST_PP_LOCAL_MACRO(232)
+# endif
+# if BOOST_PP_LOCAL_R(231)
+    BOOST_PP_LOCAL_MACRO(231)
+# endif
+# if BOOST_PP_LOCAL_R(230)
+    BOOST_PP_LOCAL_MACRO(230)
+# endif
+# if BOOST_PP_LOCAL_R(229)
+    BOOST_PP_LOCAL_MACRO(229)
+# endif
+# if BOOST_PP_LOCAL_R(228)
+    BOOST_PP_LOCAL_MACRO(228)
+# endif
+# if BOOST_PP_LOCAL_R(227)
+    BOOST_PP_LOCAL_MACRO(227)
+# endif
+# if BOOST_PP_LOCAL_R(226)
+    BOOST_PP_LOCAL_MACRO(226)
+# endif
+# if BOOST_PP_LOCAL_R(225)
+    BOOST_PP_LOCAL_MACRO(225)
+# endif
+# if BOOST_PP_LOCAL_R(224)
+    BOOST_PP_LOCAL_MACRO(224)
+# endif
+# if BOOST_PP_LOCAL_R(223)
+    BOOST_PP_LOCAL_MACRO(223)
+# endif
+# if BOOST_PP_LOCAL_R(222)
+    BOOST_PP_LOCAL_MACRO(222)
+# endif
+# if BOOST_PP_LOCAL_R(221)
+    BOOST_PP_LOCAL_MACRO(221)
+# endif
+# if BOOST_PP_LOCAL_R(220)
+    BOOST_PP_LOCAL_MACRO(220)
+# endif
+# if BOOST_PP_LOCAL_R(219)
+    BOOST_PP_LOCAL_MACRO(219)
+# endif
+# if BOOST_PP_LOCAL_R(218)
+    BOOST_PP_LOCAL_MACRO(218)
+# endif
+# if BOOST_PP_LOCAL_R(217)
+    BOOST_PP_LOCAL_MACRO(217)
+# endif
+# if BOOST_PP_LOCAL_R(216)
+    BOOST_PP_LOCAL_MACRO(216)
+# endif
+# if BOOST_PP_LOCAL_R(215)
+    BOOST_PP_LOCAL_MACRO(215)
+# endif
+# if BOOST_PP_LOCAL_R(214)
+    BOOST_PP_LOCAL_MACRO(214)
+# endif
+# if BOOST_PP_LOCAL_R(213)
+    BOOST_PP_LOCAL_MACRO(213)
+# endif
+# if BOOST_PP_LOCAL_R(212)
+    BOOST_PP_LOCAL_MACRO(212)
+# endif
+# if BOOST_PP_LOCAL_R(211)
+    BOOST_PP_LOCAL_MACRO(211)
+# endif
+# if BOOST_PP_LOCAL_R(210)
+    BOOST_PP_LOCAL_MACRO(210)
+# endif
+# if BOOST_PP_LOCAL_R(209)
+    BOOST_PP_LOCAL_MACRO(209)
+# endif
+# if BOOST_PP_LOCAL_R(208)
+    BOOST_PP_LOCAL_MACRO(208)
+# endif
+# if BOOST_PP_LOCAL_R(207)
+    BOOST_PP_LOCAL_MACRO(207)
+# endif
+# if BOOST_PP_LOCAL_R(206)
+    BOOST_PP_LOCAL_MACRO(206)
+# endif
+# if BOOST_PP_LOCAL_R(205)
+    BOOST_PP_LOCAL_MACRO(205)
+# endif
+# if BOOST_PP_LOCAL_R(204)
+    BOOST_PP_LOCAL_MACRO(204)
+# endif
+# if BOOST_PP_LOCAL_R(203)
+    BOOST_PP_LOCAL_MACRO(203)
+# endif
+# if BOOST_PP_LOCAL_R(202)
+    BOOST_PP_LOCAL_MACRO(202)
+# endif
+# if BOOST_PP_LOCAL_R(201)
+    BOOST_PP_LOCAL_MACRO(201)
+# endif
+# if BOOST_PP_LOCAL_R(200)
+    BOOST_PP_LOCAL_MACRO(200)
+# endif
+# if BOOST_PP_LOCAL_R(199)
+    BOOST_PP_LOCAL_MACRO(199)
+# endif
+# if BOOST_PP_LOCAL_R(198)
+    BOOST_PP_LOCAL_MACRO(198)
+# endif
+# if BOOST_PP_LOCAL_R(197)
+    BOOST_PP_LOCAL_MACRO(197)
+# endif
+# if BOOST_PP_LOCAL_R(196)
+    BOOST_PP_LOCAL_MACRO(196)
+# endif
+# if BOOST_PP_LOCAL_R(195)
+    BOOST_PP_LOCAL_MACRO(195)
+# endif
+# if BOOST_PP_LOCAL_R(194)
+    BOOST_PP_LOCAL_MACRO(194)
+# endif
+# if BOOST_PP_LOCAL_R(193)
+    BOOST_PP_LOCAL_MACRO(193)
+# endif
+# if BOOST_PP_LOCAL_R(192)
+    BOOST_PP_LOCAL_MACRO(192)
+# endif
+# if BOOST_PP_LOCAL_R(191)
+    BOOST_PP_LOCAL_MACRO(191)
+# endif
+# if BOOST_PP_LOCAL_R(190)
+    BOOST_PP_LOCAL_MACRO(190)
+# endif
+# if BOOST_PP_LOCAL_R(189)
+    BOOST_PP_LOCAL_MACRO(189)
+# endif
+# if BOOST_PP_LOCAL_R(188)
+    BOOST_PP_LOCAL_MACRO(188)
+# endif
+# if BOOST_PP_LOCAL_R(187)
+    BOOST_PP_LOCAL_MACRO(187)
+# endif
+# if BOOST_PP_LOCAL_R(186)
+    BOOST_PP_LOCAL_MACRO(186)
+# endif
+# if BOOST_PP_LOCAL_R(185)
+    BOOST_PP_LOCAL_MACRO(185)
+# endif
+# if BOOST_PP_LOCAL_R(184)
+    BOOST_PP_LOCAL_MACRO(184)
+# endif
+# if BOOST_PP_LOCAL_R(183)
+    BOOST_PP_LOCAL_MACRO(183)
+# endif
+# if BOOST_PP_LOCAL_R(182)
+    BOOST_PP_LOCAL_MACRO(182)
+# endif
+# if BOOST_PP_LOCAL_R(181)
+    BOOST_PP_LOCAL_MACRO(181)
+# endif
+# if BOOST_PP_LOCAL_R(180)
+    BOOST_PP_LOCAL_MACRO(180)
+# endif
+# if BOOST_PP_LOCAL_R(179)
+    BOOST_PP_LOCAL_MACRO(179)
+# endif
+# if BOOST_PP_LOCAL_R(178)
+    BOOST_PP_LOCAL_MACRO(178)
+# endif
+# if BOOST_PP_LOCAL_R(177)
+    BOOST_PP_LOCAL_MACRO(177)
+# endif
+# if BOOST_PP_LOCAL_R(176)
+    BOOST_PP_LOCAL_MACRO(176)
+# endif
+# if BOOST_PP_LOCAL_R(175)
+    BOOST_PP_LOCAL_MACRO(175)
+# endif
+# if BOOST_PP_LOCAL_R(174)
+    BOOST_PP_LOCAL_MACRO(174)
+# endif
+# if BOOST_PP_LOCAL_R(173)
+    BOOST_PP_LOCAL_MACRO(173)
+# endif
+# if BOOST_PP_LOCAL_R(172)
+    BOOST_PP_LOCAL_MACRO(172)
+# endif
+# if BOOST_PP_LOCAL_R(171)
+    BOOST_PP_LOCAL_MACRO(171)
+# endif
+# if BOOST_PP_LOCAL_R(170)
+    BOOST_PP_LOCAL_MACRO(170)
+# endif
+# if BOOST_PP_LOCAL_R(169)
+    BOOST_PP_LOCAL_MACRO(169)
+# endif
+# if BOOST_PP_LOCAL_R(168)
+    BOOST_PP_LOCAL_MACRO(168)
+# endif
+# if BOOST_PP_LOCAL_R(167)
+    BOOST_PP_LOCAL_MACRO(167)
+# endif
+# if BOOST_PP_LOCAL_R(166)
+    BOOST_PP_LOCAL_MACRO(166)
+# endif
+# if BOOST_PP_LOCAL_R(165)
+    BOOST_PP_LOCAL_MACRO(165)
+# endif
+# if BOOST_PP_LOCAL_R(164)
+    BOOST_PP_LOCAL_MACRO(164)
+# endif
+# if BOOST_PP_LOCAL_R(163)
+    BOOST_PP_LOCAL_MACRO(163)
+# endif
+# if BOOST_PP_LOCAL_R(162)
+    BOOST_PP_LOCAL_MACRO(162)
+# endif
+# if BOOST_PP_LOCAL_R(161)
+    BOOST_PP_LOCAL_MACRO(161)
+# endif
+# if BOOST_PP_LOCAL_R(160)
+    BOOST_PP_LOCAL_MACRO(160)
+# endif
+# if BOOST_PP_LOCAL_R(159)
+    BOOST_PP_LOCAL_MACRO(159)
+# endif
+# if BOOST_PP_LOCAL_R(158)
+    BOOST_PP_LOCAL_MACRO(158)
+# endif
+# if BOOST_PP_LOCAL_R(157)
+    BOOST_PP_LOCAL_MACRO(157)
+# endif
+# if BOOST_PP_LOCAL_R(156)
+    BOOST_PP_LOCAL_MACRO(156)
+# endif
+# if BOOST_PP_LOCAL_R(155)
+    BOOST_PP_LOCAL_MACRO(155)
+# endif
+# if BOOST_PP_LOCAL_R(154)
+    BOOST_PP_LOCAL_MACRO(154)
+# endif
+# if BOOST_PP_LOCAL_R(153)
+    BOOST_PP_LOCAL_MACRO(153)
+# endif
+# if BOOST_PP_LOCAL_R(152)
+    BOOST_PP_LOCAL_MACRO(152)
+# endif
+# if BOOST_PP_LOCAL_R(151)
+    BOOST_PP_LOCAL_MACRO(151)
+# endif
+# if BOOST_PP_LOCAL_R(150)
+    BOOST_PP_LOCAL_MACRO(150)
+# endif
+# if BOOST_PP_LOCAL_R(149)
+    BOOST_PP_LOCAL_MACRO(149)
+# endif
+# if BOOST_PP_LOCAL_R(148)
+    BOOST_PP_LOCAL_MACRO(148)
+# endif
+# if BOOST_PP_LOCAL_R(147)
+    BOOST_PP_LOCAL_MACRO(147)
+# endif
+# if BOOST_PP_LOCAL_R(146)
+    BOOST_PP_LOCAL_MACRO(146)
+# endif
+# if BOOST_PP_LOCAL_R(145)
+    BOOST_PP_LOCAL_MACRO(145)
+# endif
+# if BOOST_PP_LOCAL_R(144)
+    BOOST_PP_LOCAL_MACRO(144)
+# endif
+# if BOOST_PP_LOCAL_R(143)
+    BOOST_PP_LOCAL_MACRO(143)
+# endif
+# if BOOST_PP_LOCAL_R(142)
+    BOOST_PP_LOCAL_MACRO(142)
+# endif
+# if BOOST_PP_LOCAL_R(141)
+    BOOST_PP_LOCAL_MACRO(141)
+# endif
+# if BOOST_PP_LOCAL_R(140)
+    BOOST_PP_LOCAL_MACRO(140)
+# endif
+# if BOOST_PP_LOCAL_R(139)
+    BOOST_PP_LOCAL_MACRO(139)
+# endif
+# if BOOST_PP_LOCAL_R(138)
+    BOOST_PP_LOCAL_MACRO(138)
+# endif
+# if BOOST_PP_LOCAL_R(137)
+    BOOST_PP_LOCAL_MACRO(137)
+# endif
+# if BOOST_PP_LOCAL_R(136)
+    BOOST_PP_LOCAL_MACRO(136)
+# endif
+# if BOOST_PP_LOCAL_R(135)
+    BOOST_PP_LOCAL_MACRO(135)
+# endif
+# if BOOST_PP_LOCAL_R(134)
+    BOOST_PP_LOCAL_MACRO(134)
+# endif
+# if BOOST_PP_LOCAL_R(133)
+    BOOST_PP_LOCAL_MACRO(133)
+# endif
+# if BOOST_PP_LOCAL_R(132)
+    BOOST_PP_LOCAL_MACRO(132)
+# endif
+# if BOOST_PP_LOCAL_R(131)
+    BOOST_PP_LOCAL_MACRO(131)
+# endif
+# if BOOST_PP_LOCAL_R(130)
+    BOOST_PP_LOCAL_MACRO(130)
+# endif
+# if BOOST_PP_LOCAL_R(129)
+    BOOST_PP_LOCAL_MACRO(129)
+# endif
+# if BOOST_PP_LOCAL_R(128)
+    BOOST_PP_LOCAL_MACRO(128)
+# endif
+# if BOOST_PP_LOCAL_R(127)
+    BOOST_PP_LOCAL_MACRO(127)
+# endif
+# if BOOST_PP_LOCAL_R(126)
+    BOOST_PP_LOCAL_MACRO(126)
+# endif
+# if BOOST_PP_LOCAL_R(125)
+    BOOST_PP_LOCAL_MACRO(125)
+# endif
+# if BOOST_PP_LOCAL_R(124)
+    BOOST_PP_LOCAL_MACRO(124)
+# endif
+# if BOOST_PP_LOCAL_R(123)
+    BOOST_PP_LOCAL_MACRO(123)
+# endif
+# if BOOST_PP_LOCAL_R(122)
+    BOOST_PP_LOCAL_MACRO(122)
+# endif
+# if BOOST_PP_LOCAL_R(121)
+    BOOST_PP_LOCAL_MACRO(121)
+# endif
+# if BOOST_PP_LOCAL_R(120)
+    BOOST_PP_LOCAL_MACRO(120)
+# endif
+# if BOOST_PP_LOCAL_R(119)
+    BOOST_PP_LOCAL_MACRO(119)
+# endif
+# if BOOST_PP_LOCAL_R(118)
+    BOOST_PP_LOCAL_MACRO(118)
+# endif
+# if BOOST_PP_LOCAL_R(117)
+    BOOST_PP_LOCAL_MACRO(117)
+# endif
+# if BOOST_PP_LOCAL_R(116)
+    BOOST_PP_LOCAL_MACRO(116)
+# endif
+# if BOOST_PP_LOCAL_R(115)
+    BOOST_PP_LOCAL_MACRO(115)
+# endif
+# if BOOST_PP_LOCAL_R(114)
+    BOOST_PP_LOCAL_MACRO(114)
+# endif
+# if BOOST_PP_LOCAL_R(113)
+    BOOST_PP_LOCAL_MACRO(113)
+# endif
+# if BOOST_PP_LOCAL_R(112)
+    BOOST_PP_LOCAL_MACRO(112)
+# endif
+# if BOOST_PP_LOCAL_R(111)
+    BOOST_PP_LOCAL_MACRO(111)
+# endif
+# if BOOST_PP_LOCAL_R(110)
+    BOOST_PP_LOCAL_MACRO(110)
+# endif
+# if BOOST_PP_LOCAL_R(109)
+    BOOST_PP_LOCAL_MACRO(109)
+# endif
+# if BOOST_PP_LOCAL_R(108)
+    BOOST_PP_LOCAL_MACRO(108)
+# endif
+# if BOOST_PP_LOCAL_R(107)
+    BOOST_PP_LOCAL_MACRO(107)
+# endif
+# if BOOST_PP_LOCAL_R(106)
+    BOOST_PP_LOCAL_MACRO(106)
+# endif
+# if BOOST_PP_LOCAL_R(105)
+    BOOST_PP_LOCAL_MACRO(105)
+# endif
+# if BOOST_PP_LOCAL_R(104)
+    BOOST_PP_LOCAL_MACRO(104)
+# endif
+# if BOOST_PP_LOCAL_R(103)
+    BOOST_PP_LOCAL_MACRO(103)
+# endif
+# if BOOST_PP_LOCAL_R(102)
+    BOOST_PP_LOCAL_MACRO(102)
+# endif
+# if BOOST_PP_LOCAL_R(101)
+    BOOST_PP_LOCAL_MACRO(101)
+# endif
+# if BOOST_PP_LOCAL_R(100)
+    BOOST_PP_LOCAL_MACRO(100)
+# endif
+# if BOOST_PP_LOCAL_R(99)
+    BOOST_PP_LOCAL_MACRO(99)
+# endif
+# if BOOST_PP_LOCAL_R(98)
+    BOOST_PP_LOCAL_MACRO(98)
+# endif
+# if BOOST_PP_LOCAL_R(97)
+    BOOST_PP_LOCAL_MACRO(97)
+# endif
+# if BOOST_PP_LOCAL_R(96)
+    BOOST_PP_LOCAL_MACRO(96)
+# endif
+# if BOOST_PP_LOCAL_R(95)
+    BOOST_PP_LOCAL_MACRO(95)
+# endif
+# if BOOST_PP_LOCAL_R(94)
+    BOOST_PP_LOCAL_MACRO(94)
+# endif
+# if BOOST_PP_LOCAL_R(93)
+    BOOST_PP_LOCAL_MACRO(93)
+# endif
+# if BOOST_PP_LOCAL_R(92)
+    BOOST_PP_LOCAL_MACRO(92)
+# endif
+# if BOOST_PP_LOCAL_R(91)
+    BOOST_PP_LOCAL_MACRO(91)
+# endif
+# if BOOST_PP_LOCAL_R(90)
+    BOOST_PP_LOCAL_MACRO(90)
+# endif
+# if BOOST_PP_LOCAL_R(89)
+    BOOST_PP_LOCAL_MACRO(89)
+# endif
+# if BOOST_PP_LOCAL_R(88)
+    BOOST_PP_LOCAL_MACRO(88)
+# endif
+# if BOOST_PP_LOCAL_R(87)
+    BOOST_PP_LOCAL_MACRO(87)
+# endif
+# if BOOST_PP_LOCAL_R(86)
+    BOOST_PP_LOCAL_MACRO(86)
+# endif
+# if BOOST_PP_LOCAL_R(85)
+    BOOST_PP_LOCAL_MACRO(85)
+# endif
+# if BOOST_PP_LOCAL_R(84)
+    BOOST_PP_LOCAL_MACRO(84)
+# endif
+# if BOOST_PP_LOCAL_R(83)
+    BOOST_PP_LOCAL_MACRO(83)
+# endif
+# if BOOST_PP_LOCAL_R(82)
+    BOOST_PP_LOCAL_MACRO(82)
+# endif
+# if BOOST_PP_LOCAL_R(81)
+    BOOST_PP_LOCAL_MACRO(81)
+# endif
+# if BOOST_PP_LOCAL_R(80)
+    BOOST_PP_LOCAL_MACRO(80)
+# endif
+# if BOOST_PP_LOCAL_R(79)
+    BOOST_PP_LOCAL_MACRO(79)
+# endif
+# if BOOST_PP_LOCAL_R(78)
+    BOOST_PP_LOCAL_MACRO(78)
+# endif
+# if BOOST_PP_LOCAL_R(77)
+    BOOST_PP_LOCAL_MACRO(77)
+# endif
+# if BOOST_PP_LOCAL_R(76)
+    BOOST_PP_LOCAL_MACRO(76)
+# endif
+# if BOOST_PP_LOCAL_R(75)
+    BOOST_PP_LOCAL_MACRO(75)
+# endif
+# if BOOST_PP_LOCAL_R(74)
+    BOOST_PP_LOCAL_MACRO(74)
+# endif
+# if BOOST_PP_LOCAL_R(73)
+    BOOST_PP_LOCAL_MACRO(73)
+# endif
+# if BOOST_PP_LOCAL_R(72)
+    BOOST_PP_LOCAL_MACRO(72)
+# endif
+# if BOOST_PP_LOCAL_R(71)
+    BOOST_PP_LOCAL_MACRO(71)
+# endif
+# if BOOST_PP_LOCAL_R(70)
+    BOOST_PP_LOCAL_MACRO(70)
+# endif
+# if BOOST_PP_LOCAL_R(69)
+    BOOST_PP_LOCAL_MACRO(69)
+# endif
+# if BOOST_PP_LOCAL_R(68)
+    BOOST_PP_LOCAL_MACRO(68)
+# endif
+# if BOOST_PP_LOCAL_R(67)
+    BOOST_PP_LOCAL_MACRO(67)
+# endif
+# if BOOST_PP_LOCAL_R(66)
+    BOOST_PP_LOCAL_MACRO(66)
+# endif
+# if BOOST_PP_LOCAL_R(65)
+    BOOST_PP_LOCAL_MACRO(65)
+# endif
+# if BOOST_PP_LOCAL_R(64)
+    BOOST_PP_LOCAL_MACRO(64)
+# endif
+# if BOOST_PP_LOCAL_R(63)
+    BOOST_PP_LOCAL_MACRO(63)
+# endif
+# if BOOST_PP_LOCAL_R(62)
+    BOOST_PP_LOCAL_MACRO(62)
+# endif
+# if BOOST_PP_LOCAL_R(61)
+    BOOST_PP_LOCAL_MACRO(61)
+# endif
+# if BOOST_PP_LOCAL_R(60)
+    BOOST_PP_LOCAL_MACRO(60)
+# endif
+# if BOOST_PP_LOCAL_R(59)
+    BOOST_PP_LOCAL_MACRO(59)
+# endif
+# if BOOST_PP_LOCAL_R(58)
+    BOOST_PP_LOCAL_MACRO(58)
+# endif
+# if BOOST_PP_LOCAL_R(57)
+    BOOST_PP_LOCAL_MACRO(57)
+# endif
+# if BOOST_PP_LOCAL_R(56)
+    BOOST_PP_LOCAL_MACRO(56)
+# endif
+# if BOOST_PP_LOCAL_R(55)
+    BOOST_PP_LOCAL_MACRO(55)
+# endif
+# if BOOST_PP_LOCAL_R(54)
+    BOOST_PP_LOCAL_MACRO(54)
+# endif
+# if BOOST_PP_LOCAL_R(53)
+    BOOST_PP_LOCAL_MACRO(53)
+# endif
+# if BOOST_PP_LOCAL_R(52)
+    BOOST_PP_LOCAL_MACRO(52)
+# endif
+# if BOOST_PP_LOCAL_R(51)
+    BOOST_PP_LOCAL_MACRO(51)
+# endif
+# if BOOST_PP_LOCAL_R(50)
+    BOOST_PP_LOCAL_MACRO(50)
+# endif
+# if BOOST_PP_LOCAL_R(49)
+    BOOST_PP_LOCAL_MACRO(49)
+# endif
+# if BOOST_PP_LOCAL_R(48)
+    BOOST_PP_LOCAL_MACRO(48)
+# endif
+# if BOOST_PP_LOCAL_R(47)
+    BOOST_PP_LOCAL_MACRO(47)
+# endif
+# if BOOST_PP_LOCAL_R(46)
+    BOOST_PP_LOCAL_MACRO(46)
+# endif
+# if BOOST_PP_LOCAL_R(45)
+    BOOST_PP_LOCAL_MACRO(45)
+# endif
+# if BOOST_PP_LOCAL_R(44)
+    BOOST_PP_LOCAL_MACRO(44)
+# endif
+# if BOOST_PP_LOCAL_R(43)
+    BOOST_PP_LOCAL_MACRO(43)
+# endif
+# if BOOST_PP_LOCAL_R(42)
+    BOOST_PP_LOCAL_MACRO(42)
+# endif
+# if BOOST_PP_LOCAL_R(41)
+    BOOST_PP_LOCAL_MACRO(41)
+# endif
+# if BOOST_PP_LOCAL_R(40)
+    BOOST_PP_LOCAL_MACRO(40)
+# endif
+# if BOOST_PP_LOCAL_R(39)
+    BOOST_PP_LOCAL_MACRO(39)
+# endif
+# if BOOST_PP_LOCAL_R(38)
+    BOOST_PP_LOCAL_MACRO(38)
+# endif
+# if BOOST_PP_LOCAL_R(37)
+    BOOST_PP_LOCAL_MACRO(37)
+# endif
+# if BOOST_PP_LOCAL_R(36)
+    BOOST_PP_LOCAL_MACRO(36)
+# endif
+# if BOOST_PP_LOCAL_R(35)
+    BOOST_PP_LOCAL_MACRO(35)
+# endif
+# if BOOST_PP_LOCAL_R(34)
+    BOOST_PP_LOCAL_MACRO(34)
+# endif
+# if BOOST_PP_LOCAL_R(33)
+    BOOST_PP_LOCAL_MACRO(33)
+# endif
+# if BOOST_PP_LOCAL_R(32)
+    BOOST_PP_LOCAL_MACRO(32)
+# endif
+# if BOOST_PP_LOCAL_R(31)
+    BOOST_PP_LOCAL_MACRO(31)
+# endif
+# if BOOST_PP_LOCAL_R(30)
+    BOOST_PP_LOCAL_MACRO(30)
+# endif
+# if BOOST_PP_LOCAL_R(29)
+    BOOST_PP_LOCAL_MACRO(29)
+# endif
+# if BOOST_PP_LOCAL_R(28)
+    BOOST_PP_LOCAL_MACRO(28)
+# endif
+# if BOOST_PP_LOCAL_R(27)
+    BOOST_PP_LOCAL_MACRO(27)
+# endif
+# if BOOST_PP_LOCAL_R(26)
+    BOOST_PP_LOCAL_MACRO(26)
+# endif
+# if BOOST_PP_LOCAL_R(25)
+    BOOST_PP_LOCAL_MACRO(25)
+# endif
+# if BOOST_PP_LOCAL_R(24)
+    BOOST_PP_LOCAL_MACRO(24)
+# endif
+# if BOOST_PP_LOCAL_R(23)
+    BOOST_PP_LOCAL_MACRO(23)
+# endif
+# if BOOST_PP_LOCAL_R(22)
+    BOOST_PP_LOCAL_MACRO(22)
+# endif
+# if BOOST_PP_LOCAL_R(21)
+    BOOST_PP_LOCAL_MACRO(21)
+# endif
+# if BOOST_PP_LOCAL_R(20)
+    BOOST_PP_LOCAL_MACRO(20)
+# endif
+# if BOOST_PP_LOCAL_R(19)
+    BOOST_PP_LOCAL_MACRO(19)
+# endif
+# if BOOST_PP_LOCAL_R(18)
+    BOOST_PP_LOCAL_MACRO(18)
+# endif
+# if BOOST_PP_LOCAL_R(17)
+    BOOST_PP_LOCAL_MACRO(17)
+# endif
+# if BOOST_PP_LOCAL_R(16)
+    BOOST_PP_LOCAL_MACRO(16)
+# endif
+# if BOOST_PP_LOCAL_R(15)
+    BOOST_PP_LOCAL_MACRO(15)
+# endif
+# if BOOST_PP_LOCAL_R(14)
+    BOOST_PP_LOCAL_MACRO(14)
+# endif
+# if BOOST_PP_LOCAL_R(13)
+    BOOST_PP_LOCAL_MACRO(13)
+# endif
+# if BOOST_PP_LOCAL_R(12)
+    BOOST_PP_LOCAL_MACRO(12)
+# endif
+# if BOOST_PP_LOCAL_R(11)
+    BOOST_PP_LOCAL_MACRO(11)
+# endif
+# if BOOST_PP_LOCAL_R(10)
+    BOOST_PP_LOCAL_MACRO(10)
+# endif
+# if BOOST_PP_LOCAL_R(9)
+    BOOST_PP_LOCAL_MACRO(9)
+# endif
+# if BOOST_PP_LOCAL_R(8)
+    BOOST_PP_LOCAL_MACRO(8)
+# endif
+# if BOOST_PP_LOCAL_R(7)
+    BOOST_PP_LOCAL_MACRO(7)
+# endif
+# if BOOST_PP_LOCAL_R(6)
+    BOOST_PP_LOCAL_MACRO(6)
+# endif
+# if BOOST_PP_LOCAL_R(5)
+    BOOST_PP_LOCAL_MACRO(5)
+# endif
+# if BOOST_PP_LOCAL_R(4)
+    BOOST_PP_LOCAL_MACRO(4)
+# endif
+# if BOOST_PP_LOCAL_R(3)
+    BOOST_PP_LOCAL_MACRO(3)
+# endif
+# if BOOST_PP_LOCAL_R(2)
+    BOOST_PP_LOCAL_MACRO(2)
+# endif
+# if BOOST_PP_LOCAL_R(1)
+    BOOST_PP_LOCAL_MACRO(1)
+# endif
+# if BOOST_PP_LOCAL_R(0)
+    BOOST_PP_LOCAL_MACRO(0)
+# endif
index d212ee0d1e60b7c42c20deee1a826174e2fb623e..757185c1f27e467776567a1df1041b73d56ca9b6 100644 (file)
@@ -1,21 +1,21 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# if !defined(BOOST_PP_INDIRECT_SELF)\r
-#    error BOOST_PP_ERROR:  no indirect file to include\r
-# endif\r
-#\r
-# define BOOST_PP_IS_SELFISH 1\r
-#\r
-# include BOOST_PP_INDIRECT_SELF\r
-#\r
-# undef BOOST_PP_IS_SELFISH\r
-# undef BOOST_PP_INDIRECT_SELF\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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_INDIRECT_SELF)
+#    error BOOST_PP_ERROR:  no indirect file to include
+# endif
+#
+# define BOOST_PP_IS_SELFISH 1
+#
+# include BOOST_PP_INDIRECT_SELF
+#
+# undef BOOST_PP_IS_SELFISH
+# undef BOOST_PP_INDIRECT_SELF
index 55e99cb1fbd38deff1dffc96eefb40b65e4adbb0..cbf03818480e8867adeb85cac2dfe44dbb4750e4 100644 (file)
@@ -1,99 +1,99 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_LOCAL_SE\r
-#\r
-# undef BOOST_PP_LOCAL_SE_DIGIT_1\r
-# undef BOOST_PP_LOCAL_SE_DIGIT_2\r
-# undef BOOST_PP_LOCAL_SE_DIGIT_3\r
-# undef BOOST_PP_LOCAL_SE_DIGIT_4\r
-# undef BOOST_PP_LOCAL_SE_DIGIT_5\r
-# undef BOOST_PP_LOCAL_SE_DIGIT_6\r
-# undef BOOST_PP_LOCAL_SE_DIGIT_7\r
-# undef BOOST_PP_LOCAL_SE_DIGIT_8\r
-# undef BOOST_PP_LOCAL_SE_DIGIT_9\r
-# undef BOOST_PP_LOCAL_SE_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_LOCAL_SE_DIGIT_3\r
-#    define BOOST_PP_LOCAL_SE() BOOST_PP_SLOT_CC_3(BOOST_PP_LOCAL_SE_DIGIT_3, BOOST_PP_LOCAL_SE_DIGIT_2, BOOST_PP_LOCAL_SE_DIGIT_1)\r
-# elif BOOST_PP_LOCAL_SE_DIGIT_2\r
-#    define BOOST_PP_LOCAL_SE() BOOST_PP_SLOT_CC_2(BOOST_PP_LOCAL_SE_DIGIT_2, BOOST_PP_LOCAL_SE_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_LOCAL_SE() BOOST_PP_LOCAL_SE_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_LOCAL_SE
+#
+# undef BOOST_PP_LOCAL_SE_DIGIT_1
+# undef BOOST_PP_LOCAL_SE_DIGIT_2
+# undef BOOST_PP_LOCAL_SE_DIGIT_3
+# undef BOOST_PP_LOCAL_SE_DIGIT_4
+# undef BOOST_PP_LOCAL_SE_DIGIT_5
+# undef BOOST_PP_LOCAL_SE_DIGIT_6
+# undef BOOST_PP_LOCAL_SE_DIGIT_7
+# undef BOOST_PP_LOCAL_SE_DIGIT_8
+# undef BOOST_PP_LOCAL_SE_DIGIT_9
+# undef BOOST_PP_LOCAL_SE_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_LOCAL_SE_DIGIT_3
+#    define BOOST_PP_LOCAL_SE() BOOST_PP_SLOT_CC_3(BOOST_PP_LOCAL_SE_DIGIT_3, BOOST_PP_LOCAL_SE_DIGIT_2, BOOST_PP_LOCAL_SE_DIGIT_1)
+# elif BOOST_PP_LOCAL_SE_DIGIT_2
+#    define BOOST_PP_LOCAL_SE() BOOST_PP_SLOT_CC_2(BOOST_PP_LOCAL_SE_DIGIT_2, BOOST_PP_LOCAL_SE_DIGIT_1)
+# else
+#    define BOOST_PP_LOCAL_SE() BOOST_PP_LOCAL_SE_DIGIT_1
+# endif
index b53b3db3e04d13940b521580da859178c918a1f2..6e0464c976c5f24e753bd79128accda379ae4bad 100644 (file)
@@ -1,19 +1,19 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_ITERATION_SELF_HPP\r
-# define BOOST_PREPROCESSOR_ITERATION_SELF_HPP\r
-#\r
-# /* BOOST_PP_INCLUDE_SELF */\r
-#\r
-# define BOOST_PP_INCLUDE_SELF() <boost/preprocessor/iteration/detail/self.hpp>\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_ITERATION_SELF_HPP
+# define BOOST_PREPROCESSOR_ITERATION_SELF_HPP
+#
+# /* BOOST_PP_INCLUDE_SELF */
+#
+# define BOOST_PP_INCLUDE_SELF() <boost/preprocessor/iteration/detail/self.hpp>
+#
+# endif
index 29ba63508f4bfe7c83f8e8e79906c1c3f7677fe9..a089158b0616344f459d93fe68680725a70a0db4 100644 (file)
@@ -1,34 +1,34 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_LIBRARY_HPP\r
-# define BOOST_PREPROCESSOR_LIBRARY_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic.hpp>\r
-# include <boost/preprocessor/array.hpp>\r
-# include <boost/preprocessor/cat.hpp>\r
-# include <boost/preprocessor/comparison.hpp>\r
-# include <boost/preprocessor/config/limits.hpp>\r
-# include <boost/preprocessor/control.hpp>\r
-# include <boost/preprocessor/debug.hpp>\r
-# include <boost/preprocessor/facilities.hpp>\r
-# include <boost/preprocessor/iteration.hpp>\r
-# include <boost/preprocessor/list.hpp>\r
-# include <boost/preprocessor/logical.hpp>\r
-# include <boost/preprocessor/punctuation.hpp>\r
-# include <boost/preprocessor/repetition.hpp>\r
-# include <boost/preprocessor/selection.hpp>\r
-# include <boost/preprocessor/seq.hpp>\r
-# include <boost/preprocessor/slot.hpp>\r
-# include <boost/preprocessor/stringize.hpp>\r
-# include <boost/preprocessor/tuple.hpp>\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_LIBRARY_HPP
+# define BOOST_PREPROCESSOR_LIBRARY_HPP
+#
+# include <boost/preprocessor/arithmetic.hpp>
+# include <boost/preprocessor/array.hpp>
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/comparison.hpp>
+# include <boost/preprocessor/config/limits.hpp>
+# include <boost/preprocessor/control.hpp>
+# include <boost/preprocessor/debug.hpp>
+# include <boost/preprocessor/facilities.hpp>
+# include <boost/preprocessor/iteration.hpp>
+# include <boost/preprocessor/list.hpp>
+# include <boost/preprocessor/logical.hpp>
+# include <boost/preprocessor/punctuation.hpp>
+# include <boost/preprocessor/repetition.hpp>
+# include <boost/preprocessor/selection.hpp>
+# include <boost/preprocessor/seq.hpp>
+# include <boost/preprocessor/slot.hpp>
+# include <boost/preprocessor/stringize.hpp>
+# include <boost/preprocessor/tuple.hpp>
+#
+# endif
index bf1d2e06b8c8be1420c4398223ba96ed096487bc..844ac5b8abdbbe5d15832e916c040f22ab682b33 100644 (file)
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP\r
-# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP\r
-#\r
-# include <boost/preprocessor/control/expr_iif.hpp>\r
-# include <boost/preprocessor/control/iif.hpp>\r
-# include <boost/preprocessor/list/adt.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-#\r
-# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
+# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
+#
+# include <boost/preprocessor/control/expr_iif.hpp>
+# include <boost/preprocessor/control/iif.hpp>
+# include <boost/preprocessor/list/adt.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+#
+# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+#
+# endif
index 0130e85ccf9bbe55669aaa3f2e88c5f724e51c74..ae9524f979bf045de02e730b334866669b40c274 100644 (file)
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP\r
-# define BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP\r
-#\r
-# include <boost/preprocessor/control/expr_iif.hpp>\r
-# include <boost/preprocessor/control/iif.hpp>\r
-# include <boost/preprocessor/list/adt.hpp>\r
-# include <boost/preprocessor/tuple/eat.hpp>\r
-#\r
-# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l)\r
-#\r
-# define BOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-# define BOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP
+# define BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP
+#
+# include <boost/preprocessor/control/expr_iif.hpp>
+# include <boost/preprocessor/control/iif.hpp>
+# include <boost/preprocessor/list/adt.hpp>
+# include <boost/preprocessor/tuple/eat.hpp>
+#
+# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l)
+#
+# define BOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+# define BOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
+#
+# endif
index 431abd2b794d6ee3fc136e8e48d3fad8d8ae3b65..d372d2e6d5881415cbf5f82683295d161a5e1642 100644 (file)
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP\r
-# define BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP\r
-#\r
-# include <boost/preprocessor/control/iif.hpp>\r
-# include <boost/preprocessor/list/adt.hpp>\r
-# include <boost/preprocessor/tuple/eat.hpp>\r
-#\r
-# define BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l)\r
-# define BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l)\r
-#\r
-# define BOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(2, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_2, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(3, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_3, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(4, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_4, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(5, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_5, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(6, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_6, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(7, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_7, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(8, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_8, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(9, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_9, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(10, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_10, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(11, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_11, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(12, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_12, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(13, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_13, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(14, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_14, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(15, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_15, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(16, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_16, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(17, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_17, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(18, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_18, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(19, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_19, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(20, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_20, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(21, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_21, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(22, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_22, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(23, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_23, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(24, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_24, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(25, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_25, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(26, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_26, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(27, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_27, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(28, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_28, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(29, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_29, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(30, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_30, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(31, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_31, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(32, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_32, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(33, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_33, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(34, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_34, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(35, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_35, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(36, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_36, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(37, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_37, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(38, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_38, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(39, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_39, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(40, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_40, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(41, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_41, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(42, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_42, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(43, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_43, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(44, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_44, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(45, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_45, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(46, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_46, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(47, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_47, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(48, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_48, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(49, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_49, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(50, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_50, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(51, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_51, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(52, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_52, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(53, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_53, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(54, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_54, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(55, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_55, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(56, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_56, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(57, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_57, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(58, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_58, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(59, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_59, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(60, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_60, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(61, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_61, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(62, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_62, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(63, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_63, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(64, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_64, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(65, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_65, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(66, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_66, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(67, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_67, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(68, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_68, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(69, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_69, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(70, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_70, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(71, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_71, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(72, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_72, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(73, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_73, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(74, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_74, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(75, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_75, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(76, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_76, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(77, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_77, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(78, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_78, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(79, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_79, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(80, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_80, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(81, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_81, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(82, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_82, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(83, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_83, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(84, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_84, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(85, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_85, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(86, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_86, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(87, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_87, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(88, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_88, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(89, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_89, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(90, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_90, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(91, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_91, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(92, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_92, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(93, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_93, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(94, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_94, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(95, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_95, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(96, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_96, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(97, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_97, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(98, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_98, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(99, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_99, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(100, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_100, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(101, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_101, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(102, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_102, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(103, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_103, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(104, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_104, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(105, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_105, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(106, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_106, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(107, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_107, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(108, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_108, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(109, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_109, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(110, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_110, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(111, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_111, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(112, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_112, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(113, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_113, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(114, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_114, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(115, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_115, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(116, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_116, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(117, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_117, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(118, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_118, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(119, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_119, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(120, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_120, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(121, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_121, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(122, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_122, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(123, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_123, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(124, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_124, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(125, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_125, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(126, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_126, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(127, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_127, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(128, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_128, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(129, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_129, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(130, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_130, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(131, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_131, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(132, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_132, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(133, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_133, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(134, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_134, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(135, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_135, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(136, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_136, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(137, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_137, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(138, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_138, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(139, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_139, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(140, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_140, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(141, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_141, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(142, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_142, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(143, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_143, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(144, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_144, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(145, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_145, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(146, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_146, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(147, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_147, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(148, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_148, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(149, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_149, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(150, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_150, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(151, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_151, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(152, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_152, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(153, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_153, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(154, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_154, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(155, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_155, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(156, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_156, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(157, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_157, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(158, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_158, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(159, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_159, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(160, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_160, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(161, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_161, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(162, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_162, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(163, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_163, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(164, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_164, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(165, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_165, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(166, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_166, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(167, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_167, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(168, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_168, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(169, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_169, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(170, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_170, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(171, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_171, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(172, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_172, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(173, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_173, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(174, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_174, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(175, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_175, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(176, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_176, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(177, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_177, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(178, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_178, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(179, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_179, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(180, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_180, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(181, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_181, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(182, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_182, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(183, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_183, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(184, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_184, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(185, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_185, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(186, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_186, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(187, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_187, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(188, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_188, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(189, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_189, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(190, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_190, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(191, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_191, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(192, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_192, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(193, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_193, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(194, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_194, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(195, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_195, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(196, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_196, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(197, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_197, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(198, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_198, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(199, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_199, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(200, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_200, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(201, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_201, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(202, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_202, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(203, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_203, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(204, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_204, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(205, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_205, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(206, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_206, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(207, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_207, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(208, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_208, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(209, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_209, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(210, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_210, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(211, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_211, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(212, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_212, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(213, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_213, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(214, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_214, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(215, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_215, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(216, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_216, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(217, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_217, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(218, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_218, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(219, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_219, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(220, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_220, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(221, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_221, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(222, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_222, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(223, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_223, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(224, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_224, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(225, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_225, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(226, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_226, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(227, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_227, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(228, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_228, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(229, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_229, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(230, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_230, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(231, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_231, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(232, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_232, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(233, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_233, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(234, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_234, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(235, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_235, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(236, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_236, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(237, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_237, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(238, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_238, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(239, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_239, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(240, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_240, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(241, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_241, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(242, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_242, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(243, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_243, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(244, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_244, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(245, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_245, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(246, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_246, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(247, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_247, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(248, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_248, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(249, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_249, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(250, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_250, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(251, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_251, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(252, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_252, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(253, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_253, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(254, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_254, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(255, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_255, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(256, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_256, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-# define BOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(257, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_257, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
-#\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_NIL 1\r
-#\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) 0\r
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) 0\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP
+# define BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP
+#
+# include <boost/preprocessor/control/iif.hpp>
+# include <boost/preprocessor/list/adt.hpp>
+# include <boost/preprocessor/tuple/eat.hpp>
+#
+# define BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l)
+# define BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l)
+#
+# define BOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(2, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_2, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(3, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_3, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(4, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_4, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(5, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_5, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(6, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_6, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(7, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_7, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(8, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_8, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(9, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_9, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(10, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_10, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(11, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_11, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(12, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_12, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(13, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_13, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(14, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_14, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(15, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_15, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(16, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_16, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(17, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_17, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(18, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_18, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(19, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_19, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(20, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_20, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(21, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_21, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(22, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_22, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(23, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_23, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(24, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_24, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(25, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_25, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(26, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_26, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(27, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_27, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(28, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_28, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(29, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_29, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(30, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_30, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(31, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_31, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(32, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_32, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(33, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_33, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(34, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_34, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(35, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_35, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(36, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_36, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(37, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_37, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(38, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_38, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(39, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_39, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(40, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_40, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(41, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_41, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(42, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_42, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(43, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_43, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(44, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_44, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(45, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_45, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(46, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_46, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(47, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_47, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(48, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_48, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(49, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_49, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(50, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_50, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(51, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_51, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(52, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_52, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(53, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_53, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(54, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_54, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(55, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_55, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(56, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_56, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(57, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_57, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(58, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_58, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(59, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_59, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(60, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_60, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(61, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_61, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(62, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_62, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(63, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_63, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(64, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_64, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(65, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_65, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(66, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_66, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(67, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_67, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(68, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_68, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(69, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_69, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(70, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_70, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(71, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_71, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(72, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_72, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(73, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_73, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(74, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_74, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(75, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_75, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(76, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_76, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(77, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_77, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(78, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_78, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(79, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_79, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(80, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_80, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(81, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_81, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(82, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_82, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(83, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_83, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(84, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_84, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(85, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_85, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(86, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_86, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(87, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_87, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(88, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_88, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(89, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_89, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(90, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_90, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(91, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_91, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(92, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_92, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(93, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_93, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(94, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_94, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(95, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_95, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(96, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_96, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(97, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_97, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(98, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_98, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(99, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_99, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(100, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_100, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(101, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_101, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(102, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_102, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(103, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_103, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(104, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_104, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(105, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_105, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(106, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_106, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(107, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_107, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(108, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_108, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(109, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_109, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(110, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_110, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(111, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_111, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(112, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_112, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(113, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_113, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(114, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_114, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(115, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_115, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(116, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_116, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(117, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_117, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(118, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_118, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(119, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_119, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(120, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_120, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(121, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_121, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(122, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_122, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(123, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_123, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(124, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_124, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(125, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_125, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(126, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_126, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(127, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_127, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(128, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_128, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(129, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_129, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(130, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_130, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(131, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_131, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(132, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_132, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(133, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_133, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(134, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_134, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(135, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_135, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(136, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_136, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(137, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_137, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(138, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_138, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(139, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_139, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(140, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_140, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(141, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_141, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(142, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_142, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(143, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_143, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(144, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_144, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(145, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_145, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(146, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_146, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(147, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_147, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(148, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_148, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(149, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_149, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(150, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_150, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(151, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_151, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(152, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_152, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(153, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_153, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(154, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_154, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(155, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_155, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(156, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_156, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(157, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_157, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(158, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_158, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(159, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_159, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(160, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_160, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(161, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_161, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(162, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_162, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(163, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_163, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(164, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_164, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(165, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_165, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(166, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_166, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(167, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_167, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(168, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_168, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(169, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_169, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(170, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_170, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(171, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_171, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(172, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_172, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(173, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_173, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(174, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_174, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(175, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_175, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(176, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_176, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(177, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_177, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(178, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_178, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(179, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_179, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(180, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_180, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(181, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_181, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(182, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_182, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(183, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_183, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(184, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_184, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(185, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_185, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(186, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_186, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(187, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_187, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(188, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_188, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(189, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_189, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(190, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_190, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(191, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_191, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(192, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_192, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(193, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_193, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(194, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_194, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(195, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_195, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(196, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_196, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(197, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_197, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(198, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_198, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(199, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_199, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(200, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_200, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(201, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_201, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(202, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_202, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(203, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_203, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(204, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_204, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(205, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_205, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(206, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_206, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(207, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_207, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(208, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_208, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(209, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_209, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(210, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_210, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(211, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_211, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(212, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_212, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(213, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_213, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(214, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_214, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(215, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_215, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(216, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_216, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(217, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_217, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(218, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_218, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(219, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_219, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(220, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_220, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(221, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_221, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(222, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_222, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(223, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_223, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(224, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_224, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(225, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_225, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(226, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_226, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(227, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_227, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(228, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_228, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(229, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_229, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(230, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_230, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(231, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_231, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(232, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_232, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(233, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_233, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(234, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_234, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(235, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_235, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(236, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_236, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(237, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_237, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(238, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_238, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(239, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_239, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(240, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_240, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(241, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_241, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(242, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_242, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(243, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_243, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(244, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_244, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(245, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_245, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(246, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_246, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(247, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_247, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(248, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_248, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(249, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_249, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(250, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_250, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(251, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_251, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(252, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_252, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(253, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_253, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(254, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_254, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(255, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_255, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(256, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_256, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+# define BOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(257, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_257, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
+#
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_NIL 1
+#
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) 0
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) 0
+#
+# endif
index 99c3b337d8c95b349bd3977e917a933c4faf1de2..110fba8b3a22669f9b316a856884656b8dcc4371 100644 (file)
@@ -1,38 +1,38 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_LOGICAL_BITNOR_HPP\r
-# define BOOST_PREPROCESSOR_LOGICAL_BITNOR_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-#\r
-# /* BOOST_PP_BITNOR */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_BITNOR(x, y) BOOST_PP_BITNOR_I(x, y)\r
-# else\r
-#    define BOOST_PP_BITNOR(x, y) BOOST_PP_BITNOR_OO((x, y))\r
-#    define BOOST_PP_BITNOR_OO(par) BOOST_PP_BITNOR_I ## par\r
-# endif\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
-#    define BOOST_PP_BITNOR_I(x, y) BOOST_PP_BITNOR_ ## x ## y\r
-# else\r
-#    define BOOST_PP_BITNOR_I(x, y) BOOST_PP_BITNOR_ID(BOOST_PP_BITNOR_ ## x ## y)\r
-#    define BOOST_PP_BITNOR_ID(id) id\r
-# endif\r
-#\r
-# define BOOST_PP_BITNOR_00 1\r
-# define BOOST_PP_BITNOR_01 0\r
-# define BOOST_PP_BITNOR_10 0\r
-# define BOOST_PP_BITNOR_11 0\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_LOGICAL_BITNOR_HPP
+# define BOOST_PREPROCESSOR_LOGICAL_BITNOR_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+#
+# /* BOOST_PP_BITNOR */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_BITNOR(x, y) BOOST_PP_BITNOR_I(x, y)
+# else
+#    define BOOST_PP_BITNOR(x, y) BOOST_PP_BITNOR_OO((x, y))
+#    define BOOST_PP_BITNOR_OO(par) BOOST_PP_BITNOR_I ## par
+# endif
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+#    define BOOST_PP_BITNOR_I(x, y) BOOST_PP_BITNOR_ ## x ## y
+# else
+#    define BOOST_PP_BITNOR_I(x, y) BOOST_PP_BITNOR_ID(BOOST_PP_BITNOR_ ## x ## y)
+#    define BOOST_PP_BITNOR_ID(id) id
+# endif
+#
+# define BOOST_PP_BITNOR_00 1
+# define BOOST_PP_BITNOR_01 0
+# define BOOST_PP_BITNOR_10 0
+# define BOOST_PP_BITNOR_11 0
+#
+# endif
index 806e3c71efa8a5527e709f396b9087150267283b..c0bc2c66ae3d6fb830e7184d46c20d9169d2af11 100644 (file)
@@ -1,38 +1,38 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_LOGICAL_BITOR_HPP\r
-# define BOOST_PREPROCESSOR_LOGICAL_BITOR_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-#\r
-# /* BOOST_PP_BITOR */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_BITOR(x, y) BOOST_PP_BITOR_I(x, y)\r
-# else\r
-#    define BOOST_PP_BITOR(x, y) BOOST_PP_BITOR_OO((x, y))\r
-#    define BOOST_PP_BITOR_OO(par) BOOST_PP_BITOR_I ## par\r
-# endif\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
-#    define BOOST_PP_BITOR_I(x, y) BOOST_PP_BITOR_ ## x ## y\r
-# else\r
-#    define BOOST_PP_BITOR_I(x, y) BOOST_PP_BITOR_ID(BOOST_PP_BITOR_ ## x ## y)\r
-#    define BOOST_PP_BITOR_ID(id) id\r
-# endif\r
-#\r
-# define BOOST_PP_BITOR_00 0\r
-# define BOOST_PP_BITOR_01 1\r
-# define BOOST_PP_BITOR_10 1\r
-# define BOOST_PP_BITOR_11 1\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_LOGICAL_BITOR_HPP
+# define BOOST_PREPROCESSOR_LOGICAL_BITOR_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+#
+# /* BOOST_PP_BITOR */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_BITOR(x, y) BOOST_PP_BITOR_I(x, y)
+# else
+#    define BOOST_PP_BITOR(x, y) BOOST_PP_BITOR_OO((x, y))
+#    define BOOST_PP_BITOR_OO(par) BOOST_PP_BITOR_I ## par
+# endif
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+#    define BOOST_PP_BITOR_I(x, y) BOOST_PP_BITOR_ ## x ## y
+# else
+#    define BOOST_PP_BITOR_I(x, y) BOOST_PP_BITOR_ID(BOOST_PP_BITOR_ ## x ## y)
+#    define BOOST_PP_BITOR_ID(id) id
+# endif
+#
+# define BOOST_PP_BITOR_00 0
+# define BOOST_PP_BITOR_01 1
+# define BOOST_PP_BITOR_10 1
+# define BOOST_PP_BITOR_11 1
+#
+# endif
index 3e393c23397fd2b0ef500c40c21f6792dc9b34c9..0488aca91642090ae4a54afdcc30a1567cc2405f 100644 (file)
@@ -1,38 +1,38 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_LOGICAL_BITXOR_HPP\r
-# define BOOST_PREPROCESSOR_LOGICAL_BITXOR_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-#\r
-# /* BOOST_PP_BITXOR */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_BITXOR(x, y) BOOST_PP_BITXOR_I(x, y)\r
-# else\r
-#    define BOOST_PP_BITXOR(x, y) BOOST_PP_BITXOR_OO((x, y))\r
-#    define BOOST_PP_BITXOR_OO(par) BOOST_PP_BITXOR_I ## par\r
-# endif\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
-#    define BOOST_PP_BITXOR_I(x, y) BOOST_PP_BITXOR_ ## x ## y\r
-# else\r
-#    define BOOST_PP_BITXOR_I(x, y) BOOST_PP_BITXOR_ID(BOOST_PP_BITXOR_ ## x ## y)\r
-#    define BOOST_PP_BITXOR_ID(id) id\r
-# endif\r
-#\r
-# define BOOST_PP_BITXOR_00 0\r
-# define BOOST_PP_BITXOR_01 1\r
-# define BOOST_PP_BITXOR_10 1\r
-# define BOOST_PP_BITXOR_11 0\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_LOGICAL_BITXOR_HPP
+# define BOOST_PREPROCESSOR_LOGICAL_BITXOR_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+#
+# /* BOOST_PP_BITXOR */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_BITXOR(x, y) BOOST_PP_BITXOR_I(x, y)
+# else
+#    define BOOST_PP_BITXOR(x, y) BOOST_PP_BITXOR_OO((x, y))
+#    define BOOST_PP_BITXOR_OO(par) BOOST_PP_BITXOR_I ## par
+# endif
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+#    define BOOST_PP_BITXOR_I(x, y) BOOST_PP_BITXOR_ ## x ## y
+# else
+#    define BOOST_PP_BITXOR_I(x, y) BOOST_PP_BITXOR_ID(BOOST_PP_BITXOR_ ## x ## y)
+#    define BOOST_PP_BITXOR_ID(id) id
+# endif
+#
+# define BOOST_PP_BITXOR_00 0
+# define BOOST_PP_BITXOR_01 1
+# define BOOST_PP_BITXOR_10 1
+# define BOOST_PP_BITXOR_11 0
+#
+# endif
index f48db7f9f3d4aed5e9573ee10049fece1185b6ee..72da73e8b7e9618e794e99a02646c4255ea43871 100644 (file)
@@ -1,20 +1,20 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_PUNCTUATION_HPP\r
-# define BOOST_PREPROCESSOR_PUNCTUATION_HPP\r
-#\r
-# include <boost/preprocessor/punctuation/comma.hpp>\r
-# include <boost/preprocessor/punctuation/comma_if.hpp>\r
-# include <boost/preprocessor/punctuation/paren.hpp>\r
-# include <boost/preprocessor/punctuation/paren_if.hpp>\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_PUNCTUATION_HPP
+# define BOOST_PREPROCESSOR_PUNCTUATION_HPP
+#
+# include <boost/preprocessor/punctuation/comma.hpp>
+# include <boost/preprocessor/punctuation/comma_if.hpp>
+# include <boost/preprocessor/punctuation/paren.hpp>
+# include <boost/preprocessor/punctuation/paren_if.hpp>
+#
+# endif
index 66b25d8a4ceab6e9ad508f565323bf6f79f5b296..28c18cb8bebee2b43fc564397e580540fa999153 100644 (file)
@@ -1,23 +1,23 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP\r
-# define BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP\r
-#\r
-# /* BOOST_PP_LPAREN */\r
-#\r
-# define BOOST_PP_LPAREN() (\r
-#\r
-# /* BOOST_PP_RPAREN */\r
-#\r
-# define BOOST_PP_RPAREN() )\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP
+# define BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP
+#
+# /* BOOST_PP_LPAREN */
+#
+# define BOOST_PP_LPAREN() (
+#
+# /* BOOST_PP_RPAREN */
+#
+# define BOOST_PP_RPAREN() )
+#
+# endif
index 665b8be50f2467d477070bf32af82fe6db62e82a..1239ec18add69e6c1918c04d576eb18baa4d05da 100644 (file)
@@ -1,38 +1,38 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_PUNCTUATION_PAREN_IF_HPP\r
-# define BOOST_PREPROCESSOR_PUNCTUATION_PAREN_IF_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/control/if.hpp>\r
-# include <boost/preprocessor/facilities/empty.hpp>\r
-# include <boost/preprocessor/punctuation/paren.hpp>\r
-#\r
-# /* BOOST_PP_LPAREN_IF */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_LPAREN_IF(cond) BOOST_PP_IF(cond, BOOST_PP_LPAREN, BOOST_PP_EMPTY)()\r
-# else\r
-#    define BOOST_PP_LPAREN_IF(cond) BOOST_PP_LPAREN_IF_I(cond)\r
-#    define BOOST_PP_LPAREN_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_LPAREN, BOOST_PP_EMPTY)()\r
-# endif\r
-#\r
-# /* BOOST_PP_RPAREN_IF */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_RPAREN_IF(cond) BOOST_PP_IF(cond, BOOST_PP_RPAREN, BOOST_PP_EMPTY)()\r
-# else\r
-#    define BOOST_PP_RPAREN_IF(cond) BOOST_PP_RPAREN_IF_I(cond)\r
-#    define BOOST_PP_RPAREN_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_RPAREN, BOOST_PP_EMPTY)()\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_PUNCTUATION_PAREN_IF_HPP
+# define BOOST_PREPROCESSOR_PUNCTUATION_PAREN_IF_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/control/if.hpp>
+# include <boost/preprocessor/facilities/empty.hpp>
+# include <boost/preprocessor/punctuation/paren.hpp>
+#
+# /* BOOST_PP_LPAREN_IF */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_LPAREN_IF(cond) BOOST_PP_IF(cond, BOOST_PP_LPAREN, BOOST_PP_EMPTY)()
+# else
+#    define BOOST_PP_LPAREN_IF(cond) BOOST_PP_LPAREN_IF_I(cond)
+#    define BOOST_PP_LPAREN_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_LPAREN, BOOST_PP_EMPTY)()
+# endif
+#
+# /* BOOST_PP_RPAREN_IF */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_RPAREN_IF(cond) BOOST_PP_IF(cond, BOOST_PP_RPAREN, BOOST_PP_EMPTY)()
+# else
+#    define BOOST_PP_RPAREN_IF(cond) BOOST_PP_RPAREN_IF_I(cond)
+#    define BOOST_PP_RPAREN_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_RPAREN, BOOST_PP_EMPTY)()
+# endif
+#
+# endif
index 33f74eeace52a4a990c583bf98df68e77f23217e..efcd60a27df8d62380ba78804eab0af8475bbf90 100644 (file)
@@ -1,32 +1,32 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_REPETITION_HPP\r
-# define BOOST_PREPROCESSOR_REPETITION_HPP\r
-#\r
-# include <boost/preprocessor/repetition/deduce_r.hpp>\r
-# include <boost/preprocessor/repetition/deduce_z.hpp>\r
-# include <boost/preprocessor/repetition/enum.hpp>\r
-# include <boost/preprocessor/repetition/enum_binary_params.hpp>\r
-# include <boost/preprocessor/repetition/enum_params.hpp>\r
-# include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>\r
-# include <boost/preprocessor/repetition/enum_params_with_defaults.hpp>\r
-# include <boost/preprocessor/repetition/enum_shifted.hpp>\r
-# include <boost/preprocessor/repetition/enum_shifted_binary_params.hpp>\r
-# include <boost/preprocessor/repetition/enum_shifted_params.hpp>\r
-# include <boost/preprocessor/repetition/enum_trailing.hpp>\r
-# include <boost/preprocessor/repetition/enum_trailing_binary_params.hpp>\r
-# include <boost/preprocessor/repetition/enum_trailing_params.hpp>\r
-# include <boost/preprocessor/repetition/for.hpp>\r
-# include <boost/preprocessor/repetition/repeat.hpp>\r
-# include <boost/preprocessor/repetition/repeat_from_to.hpp>\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_REPETITION_HPP
+# define BOOST_PREPROCESSOR_REPETITION_HPP
+#
+# include <boost/preprocessor/repetition/deduce_r.hpp>
+# include <boost/preprocessor/repetition/deduce_z.hpp>
+# include <boost/preprocessor/repetition/enum.hpp>
+# include <boost/preprocessor/repetition/enum_binary_params.hpp>
+# include <boost/preprocessor/repetition/enum_params.hpp>
+# include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
+# include <boost/preprocessor/repetition/enum_params_with_defaults.hpp>
+# include <boost/preprocessor/repetition/enum_shifted.hpp>
+# include <boost/preprocessor/repetition/enum_shifted_binary_params.hpp>
+# include <boost/preprocessor/repetition/enum_shifted_params.hpp>
+# include <boost/preprocessor/repetition/enum_trailing.hpp>
+# include <boost/preprocessor/repetition/enum_trailing_binary_params.hpp>
+# include <boost/preprocessor/repetition/enum_trailing_params.hpp>
+# include <boost/preprocessor/repetition/for.hpp>
+# include <boost/preprocessor/repetition/repeat.hpp>
+# include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#
+# endif
index b90cb0058d601c4b06df5f81b479c9df17ba0003..e49296aebcc9c0c7c3feb32c790ee6019e9effb7 100644 (file)
@@ -1,22 +1,22 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_REPETITION_DEDUCE_R_HPP\r
-# define BOOST_PREPROCESSOR_REPETITION_DEDUCE_R_HPP\r
-#\r
-# include <boost/preprocessor/detail/auto_rec.hpp>\r
-# include <boost/preprocessor/repetition/for.hpp>\r
-#\r
-# /* BOOST_PP_DEDUCE_R */\r
-#\r
-# define BOOST_PP_DEDUCE_R() BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 256)\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_REPETITION_DEDUCE_R_HPP
+# define BOOST_PREPROCESSOR_REPETITION_DEDUCE_R_HPP
+#
+# include <boost/preprocessor/detail/auto_rec.hpp>
+# include <boost/preprocessor/repetition/for.hpp>
+#
+# /* BOOST_PP_DEDUCE_R */
+#
+# define BOOST_PP_DEDUCE_R() BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 256)
+#
+# endif
index a1215d0ad490552ce849905d6651ce353914f593..14dedc2665c56e083838198138883c1d291c9bb5 100644 (file)
@@ -1,22 +1,22 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_REPETITION_DEDUCE_Z_HPP\r
-# define BOOST_PREPROCESSOR_REPETITION_DEDUCE_Z_HPP\r
-#\r
-# include <boost/preprocessor/detail/auto_rec.hpp>\r
-# include <boost/preprocessor/repetition/repeat.hpp>\r
-#\r
-# /* BOOST_PP_DEDUCE_Z */\r
-#\r
-# define BOOST_PP_DEDUCE_Z() BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4)\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_REPETITION_DEDUCE_Z_HPP
+# define BOOST_PREPROCESSOR_REPETITION_DEDUCE_Z_HPP
+#
+# include <boost/preprocessor/detail/auto_rec.hpp>
+# include <boost/preprocessor/repetition/repeat.hpp>
+#
+# /* BOOST_PP_DEDUCE_Z */
+#
+# define BOOST_PP_DEDUCE_Z() BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4)
+#
+# endif
index 70e506e25df3dd5b69631c1a3cdfeaf466cd0c53..1d907ff38780a0c7e7b1604f00bf5850ab237d8b 100644 (file)
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP\r
-# define BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP\r
-#\r
-# include <boost/preprocessor/control/expr_iif.hpp>\r
-# include <boost/preprocessor/control/iif.hpp>\r
-# include <boost/preprocessor/logical/bool.hpp>\r
-# include <boost/preprocessor/tuple/eat.hpp>\r
-#\r
-# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p##(2, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_C(BOOST_PP_BOOL(p##(3, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_C(BOOST_PP_BOOL(p##(4, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_FOR_4_C(BOOST_PP_BOOL(p##(5, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_FOR_5_C(BOOST_PP_BOOL(p##(6, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_FOR_6_C(BOOST_PP_BOOL(p##(7, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_FOR_7_C(BOOST_PP_BOOL(p##(8, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_FOR_8_C(BOOST_PP_BOOL(p##(9, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_FOR_9_C(BOOST_PP_BOOL(p##(10, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_FOR_10_C(BOOST_PP_BOOL(p##(11, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_FOR_11_C(BOOST_PP_BOOL(p##(12, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_FOR_12_C(BOOST_PP_BOOL(p##(13, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_FOR_13_C(BOOST_PP_BOOL(p##(14, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_FOR_14_C(BOOST_PP_BOOL(p##(15, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_FOR_15_C(BOOST_PP_BOOL(p##(16, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_FOR_16_C(BOOST_PP_BOOL(p##(17, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_FOR_17_C(BOOST_PP_BOOL(p##(18, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_FOR_18_C(BOOST_PP_BOOL(p##(19, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_FOR_19_C(BOOST_PP_BOOL(p##(20, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_FOR_20_C(BOOST_PP_BOOL(p##(21, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_FOR_21_C(BOOST_PP_BOOL(p##(22, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_FOR_22_C(BOOST_PP_BOOL(p##(23, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_FOR_23_C(BOOST_PP_BOOL(p##(24, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_FOR_24_C(BOOST_PP_BOOL(p##(25, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_FOR_25_C(BOOST_PP_BOOL(p##(26, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_FOR_26_C(BOOST_PP_BOOL(p##(27, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_FOR_27_C(BOOST_PP_BOOL(p##(28, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_FOR_28_C(BOOST_PP_BOOL(p##(29, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_FOR_29_C(BOOST_PP_BOOL(p##(30, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_FOR_30_C(BOOST_PP_BOOL(p##(31, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_FOR_31_C(BOOST_PP_BOOL(p##(32, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_FOR_32_C(BOOST_PP_BOOL(p##(33, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_FOR_33_C(BOOST_PP_BOOL(p##(34, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_FOR_34_C(BOOST_PP_BOOL(p##(35, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_FOR_35_C(BOOST_PP_BOOL(p##(36, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_FOR_36_C(BOOST_PP_BOOL(p##(37, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_FOR_37_C(BOOST_PP_BOOL(p##(38, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_FOR_38_C(BOOST_PP_BOOL(p##(39, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_FOR_39_C(BOOST_PP_BOOL(p##(40, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_FOR_40_C(BOOST_PP_BOOL(p##(41, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_FOR_41_C(BOOST_PP_BOOL(p##(42, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_FOR_42_C(BOOST_PP_BOOL(p##(43, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_FOR_43_C(BOOST_PP_BOOL(p##(44, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_FOR_44_C(BOOST_PP_BOOL(p##(45, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_FOR_45_C(BOOST_PP_BOOL(p##(46, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_FOR_46_C(BOOST_PP_BOOL(p##(47, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_FOR_47_C(BOOST_PP_BOOL(p##(48, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_FOR_48_C(BOOST_PP_BOOL(p##(49, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_FOR_49_C(BOOST_PP_BOOL(p##(50, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_FOR_50_C(BOOST_PP_BOOL(p##(51, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_FOR_51_C(BOOST_PP_BOOL(p##(52, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_FOR_52_C(BOOST_PP_BOOL(p##(53, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_FOR_53_C(BOOST_PP_BOOL(p##(54, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_FOR_54_C(BOOST_PP_BOOL(p##(55, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_FOR_55_C(BOOST_PP_BOOL(p##(56, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_FOR_56_C(BOOST_PP_BOOL(p##(57, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_FOR_57_C(BOOST_PP_BOOL(p##(58, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_FOR_58_C(BOOST_PP_BOOL(p##(59, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_FOR_59_C(BOOST_PP_BOOL(p##(60, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_FOR_60_C(BOOST_PP_BOOL(p##(61, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_FOR_61_C(BOOST_PP_BOOL(p##(62, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_FOR_62_C(BOOST_PP_BOOL(p##(63, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_FOR_63_C(BOOST_PP_BOOL(p##(64, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_FOR_64_C(BOOST_PP_BOOL(p##(65, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_FOR_65_C(BOOST_PP_BOOL(p##(66, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_FOR_66_C(BOOST_PP_BOOL(p##(67, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_FOR_67_C(BOOST_PP_BOOL(p##(68, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_FOR_68_C(BOOST_PP_BOOL(p##(69, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_FOR_69_C(BOOST_PP_BOOL(p##(70, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_FOR_70_C(BOOST_PP_BOOL(p##(71, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_FOR_71_C(BOOST_PP_BOOL(p##(72, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_FOR_72_C(BOOST_PP_BOOL(p##(73, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_FOR_73_C(BOOST_PP_BOOL(p##(74, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_FOR_74_C(BOOST_PP_BOOL(p##(75, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_FOR_75_C(BOOST_PP_BOOL(p##(76, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_FOR_76_C(BOOST_PP_BOOL(p##(77, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_FOR_77_C(BOOST_PP_BOOL(p##(78, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_FOR_78_C(BOOST_PP_BOOL(p##(79, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_FOR_79_C(BOOST_PP_BOOL(p##(80, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_FOR_80_C(BOOST_PP_BOOL(p##(81, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_FOR_81_C(BOOST_PP_BOOL(p##(82, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_FOR_82_C(BOOST_PP_BOOL(p##(83, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_FOR_83_C(BOOST_PP_BOOL(p##(84, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_FOR_84_C(BOOST_PP_BOOL(p##(85, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_FOR_85_C(BOOST_PP_BOOL(p##(86, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_FOR_86_C(BOOST_PP_BOOL(p##(87, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_FOR_87_C(BOOST_PP_BOOL(p##(88, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_FOR_88_C(BOOST_PP_BOOL(p##(89, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_FOR_89_C(BOOST_PP_BOOL(p##(90, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_FOR_90_C(BOOST_PP_BOOL(p##(91, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_FOR_91_C(BOOST_PP_BOOL(p##(92, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_FOR_92_C(BOOST_PP_BOOL(p##(93, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_FOR_93_C(BOOST_PP_BOOL(p##(94, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_FOR_94_C(BOOST_PP_BOOL(p##(95, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_FOR_95_C(BOOST_PP_BOOL(p##(96, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_FOR_96_C(BOOST_PP_BOOL(p##(97, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_FOR_97_C(BOOST_PP_BOOL(p##(98, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_FOR_98_C(BOOST_PP_BOOL(p##(99, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_FOR_99_C(BOOST_PP_BOOL(p##(100, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_FOR_100_C(BOOST_PP_BOOL(p##(101, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_FOR_101_C(BOOST_PP_BOOL(p##(102, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_FOR_102_C(BOOST_PP_BOOL(p##(103, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_FOR_103_C(BOOST_PP_BOOL(p##(104, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_FOR_104_C(BOOST_PP_BOOL(p##(105, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_FOR_105_C(BOOST_PP_BOOL(p##(106, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_FOR_106_C(BOOST_PP_BOOL(p##(107, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_FOR_107_C(BOOST_PP_BOOL(p##(108, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_FOR_108_C(BOOST_PP_BOOL(p##(109, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_FOR_109_C(BOOST_PP_BOOL(p##(110, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_FOR_110_C(BOOST_PP_BOOL(p##(111, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_FOR_111_C(BOOST_PP_BOOL(p##(112, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_FOR_112_C(BOOST_PP_BOOL(p##(113, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_FOR_113_C(BOOST_PP_BOOL(p##(114, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_FOR_114_C(BOOST_PP_BOOL(p##(115, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_FOR_115_C(BOOST_PP_BOOL(p##(116, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_FOR_116_C(BOOST_PP_BOOL(p##(117, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_FOR_117_C(BOOST_PP_BOOL(p##(118, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_FOR_118_C(BOOST_PP_BOOL(p##(119, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_FOR_119_C(BOOST_PP_BOOL(p##(120, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_FOR_120_C(BOOST_PP_BOOL(p##(121, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_FOR_121_C(BOOST_PP_BOOL(p##(122, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_FOR_122_C(BOOST_PP_BOOL(p##(123, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_FOR_123_C(BOOST_PP_BOOL(p##(124, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_FOR_124_C(BOOST_PP_BOOL(p##(125, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_FOR_125_C(BOOST_PP_BOOL(p##(126, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_FOR_126_C(BOOST_PP_BOOL(p##(127, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_FOR_127_C(BOOST_PP_BOOL(p##(128, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_FOR_128_C(BOOST_PP_BOOL(p##(129, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_FOR_129_C(BOOST_PP_BOOL(p##(130, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_FOR_130_C(BOOST_PP_BOOL(p##(131, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_FOR_131_C(BOOST_PP_BOOL(p##(132, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_FOR_132_C(BOOST_PP_BOOL(p##(133, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_FOR_133_C(BOOST_PP_BOOL(p##(134, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_FOR_134_C(BOOST_PP_BOOL(p##(135, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_FOR_135_C(BOOST_PP_BOOL(p##(136, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_FOR_136_C(BOOST_PP_BOOL(p##(137, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_FOR_137_C(BOOST_PP_BOOL(p##(138, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_FOR_138_C(BOOST_PP_BOOL(p##(139, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_FOR_139_C(BOOST_PP_BOOL(p##(140, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_FOR_140_C(BOOST_PP_BOOL(p##(141, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_FOR_141_C(BOOST_PP_BOOL(p##(142, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_FOR_142_C(BOOST_PP_BOOL(p##(143, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_FOR_143_C(BOOST_PP_BOOL(p##(144, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_FOR_144_C(BOOST_PP_BOOL(p##(145, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_FOR_145_C(BOOST_PP_BOOL(p##(146, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_FOR_146_C(BOOST_PP_BOOL(p##(147, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_FOR_147_C(BOOST_PP_BOOL(p##(148, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_FOR_148_C(BOOST_PP_BOOL(p##(149, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_FOR_149_C(BOOST_PP_BOOL(p##(150, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_FOR_150_C(BOOST_PP_BOOL(p##(151, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_FOR_151_C(BOOST_PP_BOOL(p##(152, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_FOR_152_C(BOOST_PP_BOOL(p##(153, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_FOR_153_C(BOOST_PP_BOOL(p##(154, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_FOR_154_C(BOOST_PP_BOOL(p##(155, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_FOR_155_C(BOOST_PP_BOOL(p##(156, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_FOR_156_C(BOOST_PP_BOOL(p##(157, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_FOR_157_C(BOOST_PP_BOOL(p##(158, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_FOR_158_C(BOOST_PP_BOOL(p##(159, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_FOR_159_C(BOOST_PP_BOOL(p##(160, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_FOR_160_C(BOOST_PP_BOOL(p##(161, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_FOR_161_C(BOOST_PP_BOOL(p##(162, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_FOR_162_C(BOOST_PP_BOOL(p##(163, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_FOR_163_C(BOOST_PP_BOOL(p##(164, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_FOR_164_C(BOOST_PP_BOOL(p##(165, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_FOR_165_C(BOOST_PP_BOOL(p##(166, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_FOR_166_C(BOOST_PP_BOOL(p##(167, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_FOR_167_C(BOOST_PP_BOOL(p##(168, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_FOR_168_C(BOOST_PP_BOOL(p##(169, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_FOR_169_C(BOOST_PP_BOOL(p##(170, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_FOR_170_C(BOOST_PP_BOOL(p##(171, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_FOR_171_C(BOOST_PP_BOOL(p##(172, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_FOR_172_C(BOOST_PP_BOOL(p##(173, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_FOR_173_C(BOOST_PP_BOOL(p##(174, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_FOR_174_C(BOOST_PP_BOOL(p##(175, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_FOR_175_C(BOOST_PP_BOOL(p##(176, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_FOR_176_C(BOOST_PP_BOOL(p##(177, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_FOR_177_C(BOOST_PP_BOOL(p##(178, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_FOR_178_C(BOOST_PP_BOOL(p##(179, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_FOR_179_C(BOOST_PP_BOOL(p##(180, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_FOR_180_C(BOOST_PP_BOOL(p##(181, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_FOR_181_C(BOOST_PP_BOOL(p##(182, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_FOR_182_C(BOOST_PP_BOOL(p##(183, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_FOR_183_C(BOOST_PP_BOOL(p##(184, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_FOR_184_C(BOOST_PP_BOOL(p##(185, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_FOR_185_C(BOOST_PP_BOOL(p##(186, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_FOR_186_C(BOOST_PP_BOOL(p##(187, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_FOR_187_C(BOOST_PP_BOOL(p##(188, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_FOR_188_C(BOOST_PP_BOOL(p##(189, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_FOR_189_C(BOOST_PP_BOOL(p##(190, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_FOR_190_C(BOOST_PP_BOOL(p##(191, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_FOR_191_C(BOOST_PP_BOOL(p##(192, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_FOR_192_C(BOOST_PP_BOOL(p##(193, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_FOR_193_C(BOOST_PP_BOOL(p##(194, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_FOR_194_C(BOOST_PP_BOOL(p##(195, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_FOR_195_C(BOOST_PP_BOOL(p##(196, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_FOR_196_C(BOOST_PP_BOOL(p##(197, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_FOR_197_C(BOOST_PP_BOOL(p##(198, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_FOR_198_C(BOOST_PP_BOOL(p##(199, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_FOR_199_C(BOOST_PP_BOOL(p##(200, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_FOR_200_C(BOOST_PP_BOOL(p##(201, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_FOR_201_C(BOOST_PP_BOOL(p##(202, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_FOR_202_C(BOOST_PP_BOOL(p##(203, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_FOR_203_C(BOOST_PP_BOOL(p##(204, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_FOR_204_C(BOOST_PP_BOOL(p##(205, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_FOR_205_C(BOOST_PP_BOOL(p##(206, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_FOR_206_C(BOOST_PP_BOOL(p##(207, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_FOR_207_C(BOOST_PP_BOOL(p##(208, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_FOR_208_C(BOOST_PP_BOOL(p##(209, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_FOR_209_C(BOOST_PP_BOOL(p##(210, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_FOR_210_C(BOOST_PP_BOOL(p##(211, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_FOR_211_C(BOOST_PP_BOOL(p##(212, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_FOR_212_C(BOOST_PP_BOOL(p##(213, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_FOR_213_C(BOOST_PP_BOOL(p##(214, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_FOR_214_C(BOOST_PP_BOOL(p##(215, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_FOR_215_C(BOOST_PP_BOOL(p##(216, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_FOR_216_C(BOOST_PP_BOOL(p##(217, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_FOR_217_C(BOOST_PP_BOOL(p##(218, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_FOR_218_C(BOOST_PP_BOOL(p##(219, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_FOR_219_C(BOOST_PP_BOOL(p##(220, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_FOR_220_C(BOOST_PP_BOOL(p##(221, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_FOR_221_C(BOOST_PP_BOOL(p##(222, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_FOR_222_C(BOOST_PP_BOOL(p##(223, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_FOR_223_C(BOOST_PP_BOOL(p##(224, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_FOR_224_C(BOOST_PP_BOOL(p##(225, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_FOR_225_C(BOOST_PP_BOOL(p##(226, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_FOR_226_C(BOOST_PP_BOOL(p##(227, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_FOR_227_C(BOOST_PP_BOOL(p##(228, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_FOR_228_C(BOOST_PP_BOOL(p##(229, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_FOR_229_C(BOOST_PP_BOOL(p##(230, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_FOR_230_C(BOOST_PP_BOOL(p##(231, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_FOR_231_C(BOOST_PP_BOOL(p##(232, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_FOR_232_C(BOOST_PP_BOOL(p##(233, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_FOR_233_C(BOOST_PP_BOOL(p##(234, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_FOR_234_C(BOOST_PP_BOOL(p##(235, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_FOR_235_C(BOOST_PP_BOOL(p##(236, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_FOR_236_C(BOOST_PP_BOOL(p##(237, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_FOR_237_C(BOOST_PP_BOOL(p##(238, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_FOR_238_C(BOOST_PP_BOOL(p##(239, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_FOR_239_C(BOOST_PP_BOOL(p##(240, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_FOR_240_C(BOOST_PP_BOOL(p##(241, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_FOR_241_C(BOOST_PP_BOOL(p##(242, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_FOR_242_C(BOOST_PP_BOOL(p##(243, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_FOR_243_C(BOOST_PP_BOOL(p##(244, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_FOR_244_C(BOOST_PP_BOOL(p##(245, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_FOR_245_C(BOOST_PP_BOOL(p##(246, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_FOR_246_C(BOOST_PP_BOOL(p##(247, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_FOR_247_C(BOOST_PP_BOOL(p##(248, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_FOR_248_C(BOOST_PP_BOOL(p##(249, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_FOR_249_C(BOOST_PP_BOOL(p##(250, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_FOR_250_C(BOOST_PP_BOOL(p##(251, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_FOR_251_C(BOOST_PP_BOOL(p##(252, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_FOR_252_C(BOOST_PP_BOOL(p##(253, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_FOR_253_C(BOOST_PP_BOOL(p##(254, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_FOR_254_C(BOOST_PP_BOOL(p##(255, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_FOR_255_C(BOOST_PP_BOOL(p##(256, s)), s, p, o, m)\r
-# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_FOR_256_C(BOOST_PP_BOOL(p##(257, s)), s, p, o, m)\r
-#\r
-# define BOOST_PP_FOR_1_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IIF(c, BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(2, s), p, o, m)\r
-# define BOOST_PP_FOR_2_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IIF(c, BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(3, s), p, o, m)\r
-# define BOOST_PP_FOR_3_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IIF(c, BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(4, s), p, o, m)\r
-# define BOOST_PP_FOR_4_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IIF(c, BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(5, s), p, o, m)\r
-# define BOOST_PP_FOR_5_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IIF(c, BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(6, s), p, o, m)\r
-# define BOOST_PP_FOR_6_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IIF(c, BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(7, s), p, o, m)\r
-# define BOOST_PP_FOR_7_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IIF(c, BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(8, s), p, o, m)\r
-# define BOOST_PP_FOR_8_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IIF(c, BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(9, s), p, o, m)\r
-# define BOOST_PP_FOR_9_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IIF(c, BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(10, s), p, o, m)\r
-# define BOOST_PP_FOR_10_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IIF(c, BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(11, s), p, o, m)\r
-# define BOOST_PP_FOR_11_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IIF(c, BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(12, s), p, o, m)\r
-# define BOOST_PP_FOR_12_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IIF(c, BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(13, s), p, o, m)\r
-# define BOOST_PP_FOR_13_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IIF(c, BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(14, s), p, o, m)\r
-# define BOOST_PP_FOR_14_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IIF(c, BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(15, s), p, o, m)\r
-# define BOOST_PP_FOR_15_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IIF(c, BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(16, s), p, o, m)\r
-# define BOOST_PP_FOR_16_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IIF(c, BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(17, s), p, o, m)\r
-# define BOOST_PP_FOR_17_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IIF(c, BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(18, s), p, o, m)\r
-# define BOOST_PP_FOR_18_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IIF(c, BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(19, s), p, o, m)\r
-# define BOOST_PP_FOR_19_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IIF(c, BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(20, s), p, o, m)\r
-# define BOOST_PP_FOR_20_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IIF(c, BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(21, s), p, o, m)\r
-# define BOOST_PP_FOR_21_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IIF(c, BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(22, s), p, o, m)\r
-# define BOOST_PP_FOR_22_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IIF(c, BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(23, s), p, o, m)\r
-# define BOOST_PP_FOR_23_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IIF(c, BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(24, s), p, o, m)\r
-# define BOOST_PP_FOR_24_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IIF(c, BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(25, s), p, o, m)\r
-# define BOOST_PP_FOR_25_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IIF(c, BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(26, s), p, o, m)\r
-# define BOOST_PP_FOR_26_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IIF(c, BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(27, s), p, o, m)\r
-# define BOOST_PP_FOR_27_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IIF(c, BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(28, s), p, o, m)\r
-# define BOOST_PP_FOR_28_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IIF(c, BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(29, s), p, o, m)\r
-# define BOOST_PP_FOR_29_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IIF(c, BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(30, s), p, o, m)\r
-# define BOOST_PP_FOR_30_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IIF(c, BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(31, s), p, o, m)\r
-# define BOOST_PP_FOR_31_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IIF(c, BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(32, s), p, o, m)\r
-# define BOOST_PP_FOR_32_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IIF(c, BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(33, s), p, o, m)\r
-# define BOOST_PP_FOR_33_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IIF(c, BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(34, s), p, o, m)\r
-# define BOOST_PP_FOR_34_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IIF(c, BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(35, s), p, o, m)\r
-# define BOOST_PP_FOR_35_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IIF(c, BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(36, s), p, o, m)\r
-# define BOOST_PP_FOR_36_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IIF(c, BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(37, s), p, o, m)\r
-# define BOOST_PP_FOR_37_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IIF(c, BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(38, s), p, o, m)\r
-# define BOOST_PP_FOR_38_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IIF(c, BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(39, s), p, o, m)\r
-# define BOOST_PP_FOR_39_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IIF(c, BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(40, s), p, o, m)\r
-# define BOOST_PP_FOR_40_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IIF(c, BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(41, s), p, o, m)\r
-# define BOOST_PP_FOR_41_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IIF(c, BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(42, s), p, o, m)\r
-# define BOOST_PP_FOR_42_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IIF(c, BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(43, s), p, o, m)\r
-# define BOOST_PP_FOR_43_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IIF(c, BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(44, s), p, o, m)\r
-# define BOOST_PP_FOR_44_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IIF(c, BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(45, s), p, o, m)\r
-# define BOOST_PP_FOR_45_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IIF(c, BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(46, s), p, o, m)\r
-# define BOOST_PP_FOR_46_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IIF(c, BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(47, s), p, o, m)\r
-# define BOOST_PP_FOR_47_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IIF(c, BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(48, s), p, o, m)\r
-# define BOOST_PP_FOR_48_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IIF(c, BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(49, s), p, o, m)\r
-# define BOOST_PP_FOR_49_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IIF(c, BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(50, s), p, o, m)\r
-# define BOOST_PP_FOR_50_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IIF(c, BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(51, s), p, o, m)\r
-# define BOOST_PP_FOR_51_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IIF(c, BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(52, s), p, o, m)\r
-# define BOOST_PP_FOR_52_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IIF(c, BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(53, s), p, o, m)\r
-# define BOOST_PP_FOR_53_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IIF(c, BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(54, s), p, o, m)\r
-# define BOOST_PP_FOR_54_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IIF(c, BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(55, s), p, o, m)\r
-# define BOOST_PP_FOR_55_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IIF(c, BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(56, s), p, o, m)\r
-# define BOOST_PP_FOR_56_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IIF(c, BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(57, s), p, o, m)\r
-# define BOOST_PP_FOR_57_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IIF(c, BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(58, s), p, o, m)\r
-# define BOOST_PP_FOR_58_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IIF(c, BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(59, s), p, o, m)\r
-# define BOOST_PP_FOR_59_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IIF(c, BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(60, s), p, o, m)\r
-# define BOOST_PP_FOR_60_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IIF(c, BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(61, s), p, o, m)\r
-# define BOOST_PP_FOR_61_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IIF(c, BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(62, s), p, o, m)\r
-# define BOOST_PP_FOR_62_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IIF(c, BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(63, s), p, o, m)\r
-# define BOOST_PP_FOR_63_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IIF(c, BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(64, s), p, o, m)\r
-# define BOOST_PP_FOR_64_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IIF(c, BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(65, s), p, o, m)\r
-# define BOOST_PP_FOR_65_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IIF(c, BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(66, s), p, o, m)\r
-# define BOOST_PP_FOR_66_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IIF(c, BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(67, s), p, o, m)\r
-# define BOOST_PP_FOR_67_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IIF(c, BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(68, s), p, o, m)\r
-# define BOOST_PP_FOR_68_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IIF(c, BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(69, s), p, o, m)\r
-# define BOOST_PP_FOR_69_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IIF(c, BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(70, s), p, o, m)\r
-# define BOOST_PP_FOR_70_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IIF(c, BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(71, s), p, o, m)\r
-# define BOOST_PP_FOR_71_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IIF(c, BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(72, s), p, o, m)\r
-# define BOOST_PP_FOR_72_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IIF(c, BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(73, s), p, o, m)\r
-# define BOOST_PP_FOR_73_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IIF(c, BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(74, s), p, o, m)\r
-# define BOOST_PP_FOR_74_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IIF(c, BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(75, s), p, o, m)\r
-# define BOOST_PP_FOR_75_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IIF(c, BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(76, s), p, o, m)\r
-# define BOOST_PP_FOR_76_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IIF(c, BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(77, s), p, o, m)\r
-# define BOOST_PP_FOR_77_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IIF(c, BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(78, s), p, o, m)\r
-# define BOOST_PP_FOR_78_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IIF(c, BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(79, s), p, o, m)\r
-# define BOOST_PP_FOR_79_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IIF(c, BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(80, s), p, o, m)\r
-# define BOOST_PP_FOR_80_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IIF(c, BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(81, s), p, o, m)\r
-# define BOOST_PP_FOR_81_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IIF(c, BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(82, s), p, o, m)\r
-# define BOOST_PP_FOR_82_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IIF(c, BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(83, s), p, o, m)\r
-# define BOOST_PP_FOR_83_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IIF(c, BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(84, s), p, o, m)\r
-# define BOOST_PP_FOR_84_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IIF(c, BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(85, s), p, o, m)\r
-# define BOOST_PP_FOR_85_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IIF(c, BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(86, s), p, o, m)\r
-# define BOOST_PP_FOR_86_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IIF(c, BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(87, s), p, o, m)\r
-# define BOOST_PP_FOR_87_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IIF(c, BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(88, s), p, o, m)\r
-# define BOOST_PP_FOR_88_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IIF(c, BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(89, s), p, o, m)\r
-# define BOOST_PP_FOR_89_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IIF(c, BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(90, s), p, o, m)\r
-# define BOOST_PP_FOR_90_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IIF(c, BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(91, s), p, o, m)\r
-# define BOOST_PP_FOR_91_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IIF(c, BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(92, s), p, o, m)\r
-# define BOOST_PP_FOR_92_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IIF(c, BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(93, s), p, o, m)\r
-# define BOOST_PP_FOR_93_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IIF(c, BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(94, s), p, o, m)\r
-# define BOOST_PP_FOR_94_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IIF(c, BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(95, s), p, o, m)\r
-# define BOOST_PP_FOR_95_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IIF(c, BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(96, s), p, o, m)\r
-# define BOOST_PP_FOR_96_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IIF(c, BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(97, s), p, o, m)\r
-# define BOOST_PP_FOR_97_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IIF(c, BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(98, s), p, o, m)\r
-# define BOOST_PP_FOR_98_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IIF(c, BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(99, s), p, o, m)\r
-# define BOOST_PP_FOR_99_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IIF(c, BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(100, s), p, o, m)\r
-# define BOOST_PP_FOR_100_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IIF(c, BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(101, s), p, o, m)\r
-# define BOOST_PP_FOR_101_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IIF(c, BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(102, s), p, o, m)\r
-# define BOOST_PP_FOR_102_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IIF(c, BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(103, s), p, o, m)\r
-# define BOOST_PP_FOR_103_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IIF(c, BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(104, s), p, o, m)\r
-# define BOOST_PP_FOR_104_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IIF(c, BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(105, s), p, o, m)\r
-# define BOOST_PP_FOR_105_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IIF(c, BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(106, s), p, o, m)\r
-# define BOOST_PP_FOR_106_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IIF(c, BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(107, s), p, o, m)\r
-# define BOOST_PP_FOR_107_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IIF(c, BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(108, s), p, o, m)\r
-# define BOOST_PP_FOR_108_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IIF(c, BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(109, s), p, o, m)\r
-# define BOOST_PP_FOR_109_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IIF(c, BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(110, s), p, o, m)\r
-# define BOOST_PP_FOR_110_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IIF(c, BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(111, s), p, o, m)\r
-# define BOOST_PP_FOR_111_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IIF(c, BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(112, s), p, o, m)\r
-# define BOOST_PP_FOR_112_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IIF(c, BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(113, s), p, o, m)\r
-# define BOOST_PP_FOR_113_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IIF(c, BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(114, s), p, o, m)\r
-# define BOOST_PP_FOR_114_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IIF(c, BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(115, s), p, o, m)\r
-# define BOOST_PP_FOR_115_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IIF(c, BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(116, s), p, o, m)\r
-# define BOOST_PP_FOR_116_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IIF(c, BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(117, s), p, o, m)\r
-# define BOOST_PP_FOR_117_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IIF(c, BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(118, s), p, o, m)\r
-# define BOOST_PP_FOR_118_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IIF(c, BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(119, s), p, o, m)\r
-# define BOOST_PP_FOR_119_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IIF(c, BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(120, s), p, o, m)\r
-# define BOOST_PP_FOR_120_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IIF(c, BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(121, s), p, o, m)\r
-# define BOOST_PP_FOR_121_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IIF(c, BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(122, s), p, o, m)\r
-# define BOOST_PP_FOR_122_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IIF(c, BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(123, s), p, o, m)\r
-# define BOOST_PP_FOR_123_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IIF(c, BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(124, s), p, o, m)\r
-# define BOOST_PP_FOR_124_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IIF(c, BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(125, s), p, o, m)\r
-# define BOOST_PP_FOR_125_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IIF(c, BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(126, s), p, o, m)\r
-# define BOOST_PP_FOR_126_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IIF(c, BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(127, s), p, o, m)\r
-# define BOOST_PP_FOR_127_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IIF(c, BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(128, s), p, o, m)\r
-# define BOOST_PP_FOR_128_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IIF(c, BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(129, s), p, o, m)\r
-# define BOOST_PP_FOR_129_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IIF(c, BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(130, s), p, o, m)\r
-# define BOOST_PP_FOR_130_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IIF(c, BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(131, s), p, o, m)\r
-# define BOOST_PP_FOR_131_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IIF(c, BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(132, s), p, o, m)\r
-# define BOOST_PP_FOR_132_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IIF(c, BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(133, s), p, o, m)\r
-# define BOOST_PP_FOR_133_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IIF(c, BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(134, s), p, o, m)\r
-# define BOOST_PP_FOR_134_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IIF(c, BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(135, s), p, o, m)\r
-# define BOOST_PP_FOR_135_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IIF(c, BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(136, s), p, o, m)\r
-# define BOOST_PP_FOR_136_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IIF(c, BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(137, s), p, o, m)\r
-# define BOOST_PP_FOR_137_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IIF(c, BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(138, s), p, o, m)\r
-# define BOOST_PP_FOR_138_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IIF(c, BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(139, s), p, o, m)\r
-# define BOOST_PP_FOR_139_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IIF(c, BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(140, s), p, o, m)\r
-# define BOOST_PP_FOR_140_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IIF(c, BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(141, s), p, o, m)\r
-# define BOOST_PP_FOR_141_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IIF(c, BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(142, s), p, o, m)\r
-# define BOOST_PP_FOR_142_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IIF(c, BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(143, s), p, o, m)\r
-# define BOOST_PP_FOR_143_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IIF(c, BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(144, s), p, o, m)\r
-# define BOOST_PP_FOR_144_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IIF(c, BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(145, s), p, o, m)\r
-# define BOOST_PP_FOR_145_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IIF(c, BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(146, s), p, o, m)\r
-# define BOOST_PP_FOR_146_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IIF(c, BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(147, s), p, o, m)\r
-# define BOOST_PP_FOR_147_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IIF(c, BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(148, s), p, o, m)\r
-# define BOOST_PP_FOR_148_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IIF(c, BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(149, s), p, o, m)\r
-# define BOOST_PP_FOR_149_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IIF(c, BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(150, s), p, o, m)\r
-# define BOOST_PP_FOR_150_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IIF(c, BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(151, s), p, o, m)\r
-# define BOOST_PP_FOR_151_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IIF(c, BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(152, s), p, o, m)\r
-# define BOOST_PP_FOR_152_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IIF(c, BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(153, s), p, o, m)\r
-# define BOOST_PP_FOR_153_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IIF(c, BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(154, s), p, o, m)\r
-# define BOOST_PP_FOR_154_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IIF(c, BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(155, s), p, o, m)\r
-# define BOOST_PP_FOR_155_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IIF(c, BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(156, s), p, o, m)\r
-# define BOOST_PP_FOR_156_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IIF(c, BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(157, s), p, o, m)\r
-# define BOOST_PP_FOR_157_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IIF(c, BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(158, s), p, o, m)\r
-# define BOOST_PP_FOR_158_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IIF(c, BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(159, s), p, o, m)\r
-# define BOOST_PP_FOR_159_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IIF(c, BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(160, s), p, o, m)\r
-# define BOOST_PP_FOR_160_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IIF(c, BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(161, s), p, o, m)\r
-# define BOOST_PP_FOR_161_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IIF(c, BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(162, s), p, o, m)\r
-# define BOOST_PP_FOR_162_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IIF(c, BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(163, s), p, o, m)\r
-# define BOOST_PP_FOR_163_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IIF(c, BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(164, s), p, o, m)\r
-# define BOOST_PP_FOR_164_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IIF(c, BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(165, s), p, o, m)\r
-# define BOOST_PP_FOR_165_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IIF(c, BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(166, s), p, o, m)\r
-# define BOOST_PP_FOR_166_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IIF(c, BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(167, s), p, o, m)\r
-# define BOOST_PP_FOR_167_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IIF(c, BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(168, s), p, o, m)\r
-# define BOOST_PP_FOR_168_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IIF(c, BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(169, s), p, o, m)\r
-# define BOOST_PP_FOR_169_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IIF(c, BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(170, s), p, o, m)\r
-# define BOOST_PP_FOR_170_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IIF(c, BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(171, s), p, o, m)\r
-# define BOOST_PP_FOR_171_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IIF(c, BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(172, s), p, o, m)\r
-# define BOOST_PP_FOR_172_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IIF(c, BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(173, s), p, o, m)\r
-# define BOOST_PP_FOR_173_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IIF(c, BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(174, s), p, o, m)\r
-# define BOOST_PP_FOR_174_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IIF(c, BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(175, s), p, o, m)\r
-# define BOOST_PP_FOR_175_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IIF(c, BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(176, s), p, o, m)\r
-# define BOOST_PP_FOR_176_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IIF(c, BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(177, s), p, o, m)\r
-# define BOOST_PP_FOR_177_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IIF(c, BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(178, s), p, o, m)\r
-# define BOOST_PP_FOR_178_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IIF(c, BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(179, s), p, o, m)\r
-# define BOOST_PP_FOR_179_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IIF(c, BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(180, s), p, o, m)\r
-# define BOOST_PP_FOR_180_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IIF(c, BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(181, s), p, o, m)\r
-# define BOOST_PP_FOR_181_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IIF(c, BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(182, s), p, o, m)\r
-# define BOOST_PP_FOR_182_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IIF(c, BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(183, s), p, o, m)\r
-# define BOOST_PP_FOR_183_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IIF(c, BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(184, s), p, o, m)\r
-# define BOOST_PP_FOR_184_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IIF(c, BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(185, s), p, o, m)\r
-# define BOOST_PP_FOR_185_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IIF(c, BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(186, s), p, o, m)\r
-# define BOOST_PP_FOR_186_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IIF(c, BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(187, s), p, o, m)\r
-# define BOOST_PP_FOR_187_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IIF(c, BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(188, s), p, o, m)\r
-# define BOOST_PP_FOR_188_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IIF(c, BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(189, s), p, o, m)\r
-# define BOOST_PP_FOR_189_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IIF(c, BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(190, s), p, o, m)\r
-# define BOOST_PP_FOR_190_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IIF(c, BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(191, s), p, o, m)\r
-# define BOOST_PP_FOR_191_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IIF(c, BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(192, s), p, o, m)\r
-# define BOOST_PP_FOR_192_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IIF(c, BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(193, s), p, o, m)\r
-# define BOOST_PP_FOR_193_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IIF(c, BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(194, s), p, o, m)\r
-# define BOOST_PP_FOR_194_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IIF(c, BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(195, s), p, o, m)\r
-# define BOOST_PP_FOR_195_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IIF(c, BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(196, s), p, o, m)\r
-# define BOOST_PP_FOR_196_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IIF(c, BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(197, s), p, o, m)\r
-# define BOOST_PP_FOR_197_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IIF(c, BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(198, s), p, o, m)\r
-# define BOOST_PP_FOR_198_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IIF(c, BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(199, s), p, o, m)\r
-# define BOOST_PP_FOR_199_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IIF(c, BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(200, s), p, o, m)\r
-# define BOOST_PP_FOR_200_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IIF(c, BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(201, s), p, o, m)\r
-# define BOOST_PP_FOR_201_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IIF(c, BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(202, s), p, o, m)\r
-# define BOOST_PP_FOR_202_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IIF(c, BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(203, s), p, o, m)\r
-# define BOOST_PP_FOR_203_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IIF(c, BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(204, s), p, o, m)\r
-# define BOOST_PP_FOR_204_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IIF(c, BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(205, s), p, o, m)\r
-# define BOOST_PP_FOR_205_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IIF(c, BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(206, s), p, o, m)\r
-# define BOOST_PP_FOR_206_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IIF(c, BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(207, s), p, o, m)\r
-# define BOOST_PP_FOR_207_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IIF(c, BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(208, s), p, o, m)\r
-# define BOOST_PP_FOR_208_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IIF(c, BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(209, s), p, o, m)\r
-# define BOOST_PP_FOR_209_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IIF(c, BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(210, s), p, o, m)\r
-# define BOOST_PP_FOR_210_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IIF(c, BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(211, s), p, o, m)\r
-# define BOOST_PP_FOR_211_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IIF(c, BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(212, s), p, o, m)\r
-# define BOOST_PP_FOR_212_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IIF(c, BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(213, s), p, o, m)\r
-# define BOOST_PP_FOR_213_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IIF(c, BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(214, s), p, o, m)\r
-# define BOOST_PP_FOR_214_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IIF(c, BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(215, s), p, o, m)\r
-# define BOOST_PP_FOR_215_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IIF(c, BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(216, s), p, o, m)\r
-# define BOOST_PP_FOR_216_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IIF(c, BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(217, s), p, o, m)\r
-# define BOOST_PP_FOR_217_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IIF(c, BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(218, s), p, o, m)\r
-# define BOOST_PP_FOR_218_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IIF(c, BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(219, s), p, o, m)\r
-# define BOOST_PP_FOR_219_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IIF(c, BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(220, s), p, o, m)\r
-# define BOOST_PP_FOR_220_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IIF(c, BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(221, s), p, o, m)\r
-# define BOOST_PP_FOR_221_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IIF(c, BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(222, s), p, o, m)\r
-# define BOOST_PP_FOR_222_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IIF(c, BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(223, s), p, o, m)\r
-# define BOOST_PP_FOR_223_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IIF(c, BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(224, s), p, o, m)\r
-# define BOOST_PP_FOR_224_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IIF(c, BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(225, s), p, o, m)\r
-# define BOOST_PP_FOR_225_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IIF(c, BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(226, s), p, o, m)\r
-# define BOOST_PP_FOR_226_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IIF(c, BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(227, s), p, o, m)\r
-# define BOOST_PP_FOR_227_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IIF(c, BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(228, s), p, o, m)\r
-# define BOOST_PP_FOR_228_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IIF(c, BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(229, s), p, o, m)\r
-# define BOOST_PP_FOR_229_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IIF(c, BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(230, s), p, o, m)\r
-# define BOOST_PP_FOR_230_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IIF(c, BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(231, s), p, o, m)\r
-# define BOOST_PP_FOR_231_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IIF(c, BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(232, s), p, o, m)\r
-# define BOOST_PP_FOR_232_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IIF(c, BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(233, s), p, o, m)\r
-# define BOOST_PP_FOR_233_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IIF(c, BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(234, s), p, o, m)\r
-# define BOOST_PP_FOR_234_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IIF(c, BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(235, s), p, o, m)\r
-# define BOOST_PP_FOR_235_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IIF(c, BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(236, s), p, o, m)\r
-# define BOOST_PP_FOR_236_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IIF(c, BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(237, s), p, o, m)\r
-# define BOOST_PP_FOR_237_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IIF(c, BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(238, s), p, o, m)\r
-# define BOOST_PP_FOR_238_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IIF(c, BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(239, s), p, o, m)\r
-# define BOOST_PP_FOR_239_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IIF(c, BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(240, s), p, o, m)\r
-# define BOOST_PP_FOR_240_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IIF(c, BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(241, s), p, o, m)\r
-# define BOOST_PP_FOR_241_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IIF(c, BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(242, s), p, o, m)\r
-# define BOOST_PP_FOR_242_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IIF(c, BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(243, s), p, o, m)\r
-# define BOOST_PP_FOR_243_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IIF(c, BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(244, s), p, o, m)\r
-# define BOOST_PP_FOR_244_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IIF(c, BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(245, s), p, o, m)\r
-# define BOOST_PP_FOR_245_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IIF(c, BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(246, s), p, o, m)\r
-# define BOOST_PP_FOR_246_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IIF(c, BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(247, s), p, o, m)\r
-# define BOOST_PP_FOR_247_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IIF(c, BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(248, s), p, o, m)\r
-# define BOOST_PP_FOR_248_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IIF(c, BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(249, s), p, o, m)\r
-# define BOOST_PP_FOR_249_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IIF(c, BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(250, s), p, o, m)\r
-# define BOOST_PP_FOR_250_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IIF(c, BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(251, s), p, o, m)\r
-# define BOOST_PP_FOR_251_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IIF(c, BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(252, s), p, o, m)\r
-# define BOOST_PP_FOR_252_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IIF(c, BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(253, s), p, o, m)\r
-# define BOOST_PP_FOR_253_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IIF(c, BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(254, s), p, o, m)\r
-# define BOOST_PP_FOR_254_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IIF(c, BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(255, s), p, o, m)\r
-# define BOOST_PP_FOR_255_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IIF(c, BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(256, s), p, o, m)\r
-# define BOOST_PP_FOR_256_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IIF(c, BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(257, s), p, o, m)\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
+# define BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
+#
+# include <boost/preprocessor/control/expr_iif.hpp>
+# include <boost/preprocessor/control/iif.hpp>
+# include <boost/preprocessor/logical/bool.hpp>
+# include <boost/preprocessor/tuple/eat.hpp>
+#
+# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p##(2, s)), s, p, o, m)
+# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_C(BOOST_PP_BOOL(p##(3, s)), s, p, o, m)
+# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_C(BOOST_PP_BOOL(p##(4, s)), s, p, o, m)
+# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_FOR_4_C(BOOST_PP_BOOL(p##(5, s)), s, p, o, m)
+# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_FOR_5_C(BOOST_PP_BOOL(p##(6, s)), s, p, o, m)
+# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_FOR_6_C(BOOST_PP_BOOL(p##(7, s)), s, p, o, m)
+# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_FOR_7_C(BOOST_PP_BOOL(p##(8, s)), s, p, o, m)
+# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_FOR_8_C(BOOST_PP_BOOL(p##(9, s)), s, p, o, m)
+# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_FOR_9_C(BOOST_PP_BOOL(p##(10, s)), s, p, o, m)
+# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_FOR_10_C(BOOST_PP_BOOL(p##(11, s)), s, p, o, m)
+# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_FOR_11_C(BOOST_PP_BOOL(p##(12, s)), s, p, o, m)
+# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_FOR_12_C(BOOST_PP_BOOL(p##(13, s)), s, p, o, m)
+# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_FOR_13_C(BOOST_PP_BOOL(p##(14, s)), s, p, o, m)
+# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_FOR_14_C(BOOST_PP_BOOL(p##(15, s)), s, p, o, m)
+# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_FOR_15_C(BOOST_PP_BOOL(p##(16, s)), s, p, o, m)
+# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_FOR_16_C(BOOST_PP_BOOL(p##(17, s)), s, p, o, m)
+# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_FOR_17_C(BOOST_PP_BOOL(p##(18, s)), s, p, o, m)
+# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_FOR_18_C(BOOST_PP_BOOL(p##(19, s)), s, p, o, m)
+# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_FOR_19_C(BOOST_PP_BOOL(p##(20, s)), s, p, o, m)
+# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_FOR_20_C(BOOST_PP_BOOL(p##(21, s)), s, p, o, m)
+# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_FOR_21_C(BOOST_PP_BOOL(p##(22, s)), s, p, o, m)
+# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_FOR_22_C(BOOST_PP_BOOL(p##(23, s)), s, p, o, m)
+# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_FOR_23_C(BOOST_PP_BOOL(p##(24, s)), s, p, o, m)
+# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_FOR_24_C(BOOST_PP_BOOL(p##(25, s)), s, p, o, m)
+# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_FOR_25_C(BOOST_PP_BOOL(p##(26, s)), s, p, o, m)
+# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_FOR_26_C(BOOST_PP_BOOL(p##(27, s)), s, p, o, m)
+# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_FOR_27_C(BOOST_PP_BOOL(p##(28, s)), s, p, o, m)
+# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_FOR_28_C(BOOST_PP_BOOL(p##(29, s)), s, p, o, m)
+# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_FOR_29_C(BOOST_PP_BOOL(p##(30, s)), s, p, o, m)
+# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_FOR_30_C(BOOST_PP_BOOL(p##(31, s)), s, p, o, m)
+# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_FOR_31_C(BOOST_PP_BOOL(p##(32, s)), s, p, o, m)
+# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_FOR_32_C(BOOST_PP_BOOL(p##(33, s)), s, p, o, m)
+# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_FOR_33_C(BOOST_PP_BOOL(p##(34, s)), s, p, o, m)
+# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_FOR_34_C(BOOST_PP_BOOL(p##(35, s)), s, p, o, m)
+# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_FOR_35_C(BOOST_PP_BOOL(p##(36, s)), s, p, o, m)
+# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_FOR_36_C(BOOST_PP_BOOL(p##(37, s)), s, p, o, m)
+# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_FOR_37_C(BOOST_PP_BOOL(p##(38, s)), s, p, o, m)
+# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_FOR_38_C(BOOST_PP_BOOL(p##(39, s)), s, p, o, m)
+# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_FOR_39_C(BOOST_PP_BOOL(p##(40, s)), s, p, o, m)
+# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_FOR_40_C(BOOST_PP_BOOL(p##(41, s)), s, p, o, m)
+# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_FOR_41_C(BOOST_PP_BOOL(p##(42, s)), s, p, o, m)
+# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_FOR_42_C(BOOST_PP_BOOL(p##(43, s)), s, p, o, m)
+# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_FOR_43_C(BOOST_PP_BOOL(p##(44, s)), s, p, o, m)
+# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_FOR_44_C(BOOST_PP_BOOL(p##(45, s)), s, p, o, m)
+# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_FOR_45_C(BOOST_PP_BOOL(p##(46, s)), s, p, o, m)
+# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_FOR_46_C(BOOST_PP_BOOL(p##(47, s)), s, p, o, m)
+# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_FOR_47_C(BOOST_PP_BOOL(p##(48, s)), s, p, o, m)
+# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_FOR_48_C(BOOST_PP_BOOL(p##(49, s)), s, p, o, m)
+# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_FOR_49_C(BOOST_PP_BOOL(p##(50, s)), s, p, o, m)
+# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_FOR_50_C(BOOST_PP_BOOL(p##(51, s)), s, p, o, m)
+# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_FOR_51_C(BOOST_PP_BOOL(p##(52, s)), s, p, o, m)
+# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_FOR_52_C(BOOST_PP_BOOL(p##(53, s)), s, p, o, m)
+# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_FOR_53_C(BOOST_PP_BOOL(p##(54, s)), s, p, o, m)
+# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_FOR_54_C(BOOST_PP_BOOL(p##(55, s)), s, p, o, m)
+# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_FOR_55_C(BOOST_PP_BOOL(p##(56, s)), s, p, o, m)
+# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_FOR_56_C(BOOST_PP_BOOL(p##(57, s)), s, p, o, m)
+# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_FOR_57_C(BOOST_PP_BOOL(p##(58, s)), s, p, o, m)
+# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_FOR_58_C(BOOST_PP_BOOL(p##(59, s)), s, p, o, m)
+# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_FOR_59_C(BOOST_PP_BOOL(p##(60, s)), s, p, o, m)
+# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_FOR_60_C(BOOST_PP_BOOL(p##(61, s)), s, p, o, m)
+# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_FOR_61_C(BOOST_PP_BOOL(p##(62, s)), s, p, o, m)
+# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_FOR_62_C(BOOST_PP_BOOL(p##(63, s)), s, p, o, m)
+# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_FOR_63_C(BOOST_PP_BOOL(p##(64, s)), s, p, o, m)
+# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_FOR_64_C(BOOST_PP_BOOL(p##(65, s)), s, p, o, m)
+# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_FOR_65_C(BOOST_PP_BOOL(p##(66, s)), s, p, o, m)
+# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_FOR_66_C(BOOST_PP_BOOL(p##(67, s)), s, p, o, m)
+# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_FOR_67_C(BOOST_PP_BOOL(p##(68, s)), s, p, o, m)
+# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_FOR_68_C(BOOST_PP_BOOL(p##(69, s)), s, p, o, m)
+# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_FOR_69_C(BOOST_PP_BOOL(p##(70, s)), s, p, o, m)
+# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_FOR_70_C(BOOST_PP_BOOL(p##(71, s)), s, p, o, m)
+# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_FOR_71_C(BOOST_PP_BOOL(p##(72, s)), s, p, o, m)
+# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_FOR_72_C(BOOST_PP_BOOL(p##(73, s)), s, p, o, m)
+# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_FOR_73_C(BOOST_PP_BOOL(p##(74, s)), s, p, o, m)
+# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_FOR_74_C(BOOST_PP_BOOL(p##(75, s)), s, p, o, m)
+# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_FOR_75_C(BOOST_PP_BOOL(p##(76, s)), s, p, o, m)
+# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_FOR_76_C(BOOST_PP_BOOL(p##(77, s)), s, p, o, m)
+# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_FOR_77_C(BOOST_PP_BOOL(p##(78, s)), s, p, o, m)
+# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_FOR_78_C(BOOST_PP_BOOL(p##(79, s)), s, p, o, m)
+# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_FOR_79_C(BOOST_PP_BOOL(p##(80, s)), s, p, o, m)
+# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_FOR_80_C(BOOST_PP_BOOL(p##(81, s)), s, p, o, m)
+# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_FOR_81_C(BOOST_PP_BOOL(p##(82, s)), s, p, o, m)
+# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_FOR_82_C(BOOST_PP_BOOL(p##(83, s)), s, p, o, m)
+# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_FOR_83_C(BOOST_PP_BOOL(p##(84, s)), s, p, o, m)
+# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_FOR_84_C(BOOST_PP_BOOL(p##(85, s)), s, p, o, m)
+# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_FOR_85_C(BOOST_PP_BOOL(p##(86, s)), s, p, o, m)
+# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_FOR_86_C(BOOST_PP_BOOL(p##(87, s)), s, p, o, m)
+# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_FOR_87_C(BOOST_PP_BOOL(p##(88, s)), s, p, o, m)
+# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_FOR_88_C(BOOST_PP_BOOL(p##(89, s)), s, p, o, m)
+# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_FOR_89_C(BOOST_PP_BOOL(p##(90, s)), s, p, o, m)
+# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_FOR_90_C(BOOST_PP_BOOL(p##(91, s)), s, p, o, m)
+# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_FOR_91_C(BOOST_PP_BOOL(p##(92, s)), s, p, o, m)
+# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_FOR_92_C(BOOST_PP_BOOL(p##(93, s)), s, p, o, m)
+# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_FOR_93_C(BOOST_PP_BOOL(p##(94, s)), s, p, o, m)
+# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_FOR_94_C(BOOST_PP_BOOL(p##(95, s)), s, p, o, m)
+# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_FOR_95_C(BOOST_PP_BOOL(p##(96, s)), s, p, o, m)
+# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_FOR_96_C(BOOST_PP_BOOL(p##(97, s)), s, p, o, m)
+# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_FOR_97_C(BOOST_PP_BOOL(p##(98, s)), s, p, o, m)
+# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_FOR_98_C(BOOST_PP_BOOL(p##(99, s)), s, p, o, m)
+# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_FOR_99_C(BOOST_PP_BOOL(p##(100, s)), s, p, o, m)
+# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_FOR_100_C(BOOST_PP_BOOL(p##(101, s)), s, p, o, m)
+# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_FOR_101_C(BOOST_PP_BOOL(p##(102, s)), s, p, o, m)
+# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_FOR_102_C(BOOST_PP_BOOL(p##(103, s)), s, p, o, m)
+# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_FOR_103_C(BOOST_PP_BOOL(p##(104, s)), s, p, o, m)
+# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_FOR_104_C(BOOST_PP_BOOL(p##(105, s)), s, p, o, m)
+# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_FOR_105_C(BOOST_PP_BOOL(p##(106, s)), s, p, o, m)
+# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_FOR_106_C(BOOST_PP_BOOL(p##(107, s)), s, p, o, m)
+# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_FOR_107_C(BOOST_PP_BOOL(p##(108, s)), s, p, o, m)
+# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_FOR_108_C(BOOST_PP_BOOL(p##(109, s)), s, p, o, m)
+# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_FOR_109_C(BOOST_PP_BOOL(p##(110, s)), s, p, o, m)
+# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_FOR_110_C(BOOST_PP_BOOL(p##(111, s)), s, p, o, m)
+# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_FOR_111_C(BOOST_PP_BOOL(p##(112, s)), s, p, o, m)
+# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_FOR_112_C(BOOST_PP_BOOL(p##(113, s)), s, p, o, m)
+# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_FOR_113_C(BOOST_PP_BOOL(p##(114, s)), s, p, o, m)
+# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_FOR_114_C(BOOST_PP_BOOL(p##(115, s)), s, p, o, m)
+# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_FOR_115_C(BOOST_PP_BOOL(p##(116, s)), s, p, o, m)
+# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_FOR_116_C(BOOST_PP_BOOL(p##(117, s)), s, p, o, m)
+# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_FOR_117_C(BOOST_PP_BOOL(p##(118, s)), s, p, o, m)
+# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_FOR_118_C(BOOST_PP_BOOL(p##(119, s)), s, p, o, m)
+# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_FOR_119_C(BOOST_PP_BOOL(p##(120, s)), s, p, o, m)
+# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_FOR_120_C(BOOST_PP_BOOL(p##(121, s)), s, p, o, m)
+# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_FOR_121_C(BOOST_PP_BOOL(p##(122, s)), s, p, o, m)
+# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_FOR_122_C(BOOST_PP_BOOL(p##(123, s)), s, p, o, m)
+# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_FOR_123_C(BOOST_PP_BOOL(p##(124, s)), s, p, o, m)
+# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_FOR_124_C(BOOST_PP_BOOL(p##(125, s)), s, p, o, m)
+# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_FOR_125_C(BOOST_PP_BOOL(p##(126, s)), s, p, o, m)
+# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_FOR_126_C(BOOST_PP_BOOL(p##(127, s)), s, p, o, m)
+# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_FOR_127_C(BOOST_PP_BOOL(p##(128, s)), s, p, o, m)
+# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_FOR_128_C(BOOST_PP_BOOL(p##(129, s)), s, p, o, m)
+# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_FOR_129_C(BOOST_PP_BOOL(p##(130, s)), s, p, o, m)
+# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_FOR_130_C(BOOST_PP_BOOL(p##(131, s)), s, p, o, m)
+# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_FOR_131_C(BOOST_PP_BOOL(p##(132, s)), s, p, o, m)
+# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_FOR_132_C(BOOST_PP_BOOL(p##(133, s)), s, p, o, m)
+# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_FOR_133_C(BOOST_PP_BOOL(p##(134, s)), s, p, o, m)
+# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_FOR_134_C(BOOST_PP_BOOL(p##(135, s)), s, p, o, m)
+# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_FOR_135_C(BOOST_PP_BOOL(p##(136, s)), s, p, o, m)
+# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_FOR_136_C(BOOST_PP_BOOL(p##(137, s)), s, p, o, m)
+# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_FOR_137_C(BOOST_PP_BOOL(p##(138, s)), s, p, o, m)
+# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_FOR_138_C(BOOST_PP_BOOL(p##(139, s)), s, p, o, m)
+# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_FOR_139_C(BOOST_PP_BOOL(p##(140, s)), s, p, o, m)
+# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_FOR_140_C(BOOST_PP_BOOL(p##(141, s)), s, p, o, m)
+# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_FOR_141_C(BOOST_PP_BOOL(p##(142, s)), s, p, o, m)
+# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_FOR_142_C(BOOST_PP_BOOL(p##(143, s)), s, p, o, m)
+# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_FOR_143_C(BOOST_PP_BOOL(p##(144, s)), s, p, o, m)
+# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_FOR_144_C(BOOST_PP_BOOL(p##(145, s)), s, p, o, m)
+# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_FOR_145_C(BOOST_PP_BOOL(p##(146, s)), s, p, o, m)
+# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_FOR_146_C(BOOST_PP_BOOL(p##(147, s)), s, p, o, m)
+# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_FOR_147_C(BOOST_PP_BOOL(p##(148, s)), s, p, o, m)
+# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_FOR_148_C(BOOST_PP_BOOL(p##(149, s)), s, p, o, m)
+# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_FOR_149_C(BOOST_PP_BOOL(p##(150, s)), s, p, o, m)
+# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_FOR_150_C(BOOST_PP_BOOL(p##(151, s)), s, p, o, m)
+# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_FOR_151_C(BOOST_PP_BOOL(p##(152, s)), s, p, o, m)
+# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_FOR_152_C(BOOST_PP_BOOL(p##(153, s)), s, p, o, m)
+# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_FOR_153_C(BOOST_PP_BOOL(p##(154, s)), s, p, o, m)
+# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_FOR_154_C(BOOST_PP_BOOL(p##(155, s)), s, p, o, m)
+# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_FOR_155_C(BOOST_PP_BOOL(p##(156, s)), s, p, o, m)
+# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_FOR_156_C(BOOST_PP_BOOL(p##(157, s)), s, p, o, m)
+# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_FOR_157_C(BOOST_PP_BOOL(p##(158, s)), s, p, o, m)
+# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_FOR_158_C(BOOST_PP_BOOL(p##(159, s)), s, p, o, m)
+# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_FOR_159_C(BOOST_PP_BOOL(p##(160, s)), s, p, o, m)
+# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_FOR_160_C(BOOST_PP_BOOL(p##(161, s)), s, p, o, m)
+# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_FOR_161_C(BOOST_PP_BOOL(p##(162, s)), s, p, o, m)
+# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_FOR_162_C(BOOST_PP_BOOL(p##(163, s)), s, p, o, m)
+# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_FOR_163_C(BOOST_PP_BOOL(p##(164, s)), s, p, o, m)
+# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_FOR_164_C(BOOST_PP_BOOL(p##(165, s)), s, p, o, m)
+# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_FOR_165_C(BOOST_PP_BOOL(p##(166, s)), s, p, o, m)
+# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_FOR_166_C(BOOST_PP_BOOL(p##(167, s)), s, p, o, m)
+# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_FOR_167_C(BOOST_PP_BOOL(p##(168, s)), s, p, o, m)
+# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_FOR_168_C(BOOST_PP_BOOL(p##(169, s)), s, p, o, m)
+# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_FOR_169_C(BOOST_PP_BOOL(p##(170, s)), s, p, o, m)
+# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_FOR_170_C(BOOST_PP_BOOL(p##(171, s)), s, p, o, m)
+# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_FOR_171_C(BOOST_PP_BOOL(p##(172, s)), s, p, o, m)
+# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_FOR_172_C(BOOST_PP_BOOL(p##(173, s)), s, p, o, m)
+# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_FOR_173_C(BOOST_PP_BOOL(p##(174, s)), s, p, o, m)
+# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_FOR_174_C(BOOST_PP_BOOL(p##(175, s)), s, p, o, m)
+# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_FOR_175_C(BOOST_PP_BOOL(p##(176, s)), s, p, o, m)
+# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_FOR_176_C(BOOST_PP_BOOL(p##(177, s)), s, p, o, m)
+# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_FOR_177_C(BOOST_PP_BOOL(p##(178, s)), s, p, o, m)
+# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_FOR_178_C(BOOST_PP_BOOL(p##(179, s)), s, p, o, m)
+# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_FOR_179_C(BOOST_PP_BOOL(p##(180, s)), s, p, o, m)
+# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_FOR_180_C(BOOST_PP_BOOL(p##(181, s)), s, p, o, m)
+# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_FOR_181_C(BOOST_PP_BOOL(p##(182, s)), s, p, o, m)
+# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_FOR_182_C(BOOST_PP_BOOL(p##(183, s)), s, p, o, m)
+# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_FOR_183_C(BOOST_PP_BOOL(p##(184, s)), s, p, o, m)
+# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_FOR_184_C(BOOST_PP_BOOL(p##(185, s)), s, p, o, m)
+# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_FOR_185_C(BOOST_PP_BOOL(p##(186, s)), s, p, o, m)
+# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_FOR_186_C(BOOST_PP_BOOL(p##(187, s)), s, p, o, m)
+# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_FOR_187_C(BOOST_PP_BOOL(p##(188, s)), s, p, o, m)
+# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_FOR_188_C(BOOST_PP_BOOL(p##(189, s)), s, p, o, m)
+# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_FOR_189_C(BOOST_PP_BOOL(p##(190, s)), s, p, o, m)
+# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_FOR_190_C(BOOST_PP_BOOL(p##(191, s)), s, p, o, m)
+# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_FOR_191_C(BOOST_PP_BOOL(p##(192, s)), s, p, o, m)
+# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_FOR_192_C(BOOST_PP_BOOL(p##(193, s)), s, p, o, m)
+# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_FOR_193_C(BOOST_PP_BOOL(p##(194, s)), s, p, o, m)
+# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_FOR_194_C(BOOST_PP_BOOL(p##(195, s)), s, p, o, m)
+# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_FOR_195_C(BOOST_PP_BOOL(p##(196, s)), s, p, o, m)
+# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_FOR_196_C(BOOST_PP_BOOL(p##(197, s)), s, p, o, m)
+# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_FOR_197_C(BOOST_PP_BOOL(p##(198, s)), s, p, o, m)
+# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_FOR_198_C(BOOST_PP_BOOL(p##(199, s)), s, p, o, m)
+# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_FOR_199_C(BOOST_PP_BOOL(p##(200, s)), s, p, o, m)
+# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_FOR_200_C(BOOST_PP_BOOL(p##(201, s)), s, p, o, m)
+# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_FOR_201_C(BOOST_PP_BOOL(p##(202, s)), s, p, o, m)
+# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_FOR_202_C(BOOST_PP_BOOL(p##(203, s)), s, p, o, m)
+# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_FOR_203_C(BOOST_PP_BOOL(p##(204, s)), s, p, o, m)
+# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_FOR_204_C(BOOST_PP_BOOL(p##(205, s)), s, p, o, m)
+# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_FOR_205_C(BOOST_PP_BOOL(p##(206, s)), s, p, o, m)
+# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_FOR_206_C(BOOST_PP_BOOL(p##(207, s)), s, p, o, m)
+# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_FOR_207_C(BOOST_PP_BOOL(p##(208, s)), s, p, o, m)
+# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_FOR_208_C(BOOST_PP_BOOL(p##(209, s)), s, p, o, m)
+# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_FOR_209_C(BOOST_PP_BOOL(p##(210, s)), s, p, o, m)
+# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_FOR_210_C(BOOST_PP_BOOL(p##(211, s)), s, p, o, m)
+# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_FOR_211_C(BOOST_PP_BOOL(p##(212, s)), s, p, o, m)
+# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_FOR_212_C(BOOST_PP_BOOL(p##(213, s)), s, p, o, m)
+# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_FOR_213_C(BOOST_PP_BOOL(p##(214, s)), s, p, o, m)
+# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_FOR_214_C(BOOST_PP_BOOL(p##(215, s)), s, p, o, m)
+# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_FOR_215_C(BOOST_PP_BOOL(p##(216, s)), s, p, o, m)
+# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_FOR_216_C(BOOST_PP_BOOL(p##(217, s)), s, p, o, m)
+# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_FOR_217_C(BOOST_PP_BOOL(p##(218, s)), s, p, o, m)
+# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_FOR_218_C(BOOST_PP_BOOL(p##(219, s)), s, p, o, m)
+# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_FOR_219_C(BOOST_PP_BOOL(p##(220, s)), s, p, o, m)
+# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_FOR_220_C(BOOST_PP_BOOL(p##(221, s)), s, p, o, m)
+# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_FOR_221_C(BOOST_PP_BOOL(p##(222, s)), s, p, o, m)
+# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_FOR_222_C(BOOST_PP_BOOL(p##(223, s)), s, p, o, m)
+# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_FOR_223_C(BOOST_PP_BOOL(p##(224, s)), s, p, o, m)
+# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_FOR_224_C(BOOST_PP_BOOL(p##(225, s)), s, p, o, m)
+# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_FOR_225_C(BOOST_PP_BOOL(p##(226, s)), s, p, o, m)
+# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_FOR_226_C(BOOST_PP_BOOL(p##(227, s)), s, p, o, m)
+# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_FOR_227_C(BOOST_PP_BOOL(p##(228, s)), s, p, o, m)
+# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_FOR_228_C(BOOST_PP_BOOL(p##(229, s)), s, p, o, m)
+# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_FOR_229_C(BOOST_PP_BOOL(p##(230, s)), s, p, o, m)
+# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_FOR_230_C(BOOST_PP_BOOL(p##(231, s)), s, p, o, m)
+# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_FOR_231_C(BOOST_PP_BOOL(p##(232, s)), s, p, o, m)
+# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_FOR_232_C(BOOST_PP_BOOL(p##(233, s)), s, p, o, m)
+# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_FOR_233_C(BOOST_PP_BOOL(p##(234, s)), s, p, o, m)
+# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_FOR_234_C(BOOST_PP_BOOL(p##(235, s)), s, p, o, m)
+# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_FOR_235_C(BOOST_PP_BOOL(p##(236, s)), s, p, o, m)
+# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_FOR_236_C(BOOST_PP_BOOL(p##(237, s)), s, p, o, m)
+# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_FOR_237_C(BOOST_PP_BOOL(p##(238, s)), s, p, o, m)
+# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_FOR_238_C(BOOST_PP_BOOL(p##(239, s)), s, p, o, m)
+# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_FOR_239_C(BOOST_PP_BOOL(p##(240, s)), s, p, o, m)
+# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_FOR_240_C(BOOST_PP_BOOL(p##(241, s)), s, p, o, m)
+# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_FOR_241_C(BOOST_PP_BOOL(p##(242, s)), s, p, o, m)
+# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_FOR_242_C(BOOST_PP_BOOL(p##(243, s)), s, p, o, m)
+# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_FOR_243_C(BOOST_PP_BOOL(p##(244, s)), s, p, o, m)
+# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_FOR_244_C(BOOST_PP_BOOL(p##(245, s)), s, p, o, m)
+# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_FOR_245_C(BOOST_PP_BOOL(p##(246, s)), s, p, o, m)
+# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_FOR_246_C(BOOST_PP_BOOL(p##(247, s)), s, p, o, m)
+# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_FOR_247_C(BOOST_PP_BOOL(p##(248, s)), s, p, o, m)
+# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_FOR_248_C(BOOST_PP_BOOL(p##(249, s)), s, p, o, m)
+# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_FOR_249_C(BOOST_PP_BOOL(p##(250, s)), s, p, o, m)
+# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_FOR_250_C(BOOST_PP_BOOL(p##(251, s)), s, p, o, m)
+# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_FOR_251_C(BOOST_PP_BOOL(p##(252, s)), s, p, o, m)
+# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_FOR_252_C(BOOST_PP_BOOL(p##(253, s)), s, p, o, m)
+# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_FOR_253_C(BOOST_PP_BOOL(p##(254, s)), s, p, o, m)
+# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_FOR_254_C(BOOST_PP_BOOL(p##(255, s)), s, p, o, m)
+# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_FOR_255_C(BOOST_PP_BOOL(p##(256, s)), s, p, o, m)
+# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_FOR_256_C(BOOST_PP_BOOL(p##(257, s)), s, p, o, m)
+#
+# define BOOST_PP_FOR_1_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IIF(c, BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(2, s), p, o, m)
+# define BOOST_PP_FOR_2_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IIF(c, BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(3, s), p, o, m)
+# define BOOST_PP_FOR_3_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IIF(c, BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(4, s), p, o, m)
+# define BOOST_PP_FOR_4_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IIF(c, BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(5, s), p, o, m)
+# define BOOST_PP_FOR_5_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IIF(c, BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(6, s), p, o, m)
+# define BOOST_PP_FOR_6_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IIF(c, BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(7, s), p, o, m)
+# define BOOST_PP_FOR_7_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IIF(c, BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(8, s), p, o, m)
+# define BOOST_PP_FOR_8_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IIF(c, BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(9, s), p, o, m)
+# define BOOST_PP_FOR_9_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IIF(c, BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(10, s), p, o, m)
+# define BOOST_PP_FOR_10_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IIF(c, BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(11, s), p, o, m)
+# define BOOST_PP_FOR_11_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IIF(c, BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(12, s), p, o, m)
+# define BOOST_PP_FOR_12_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IIF(c, BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(13, s), p, o, m)
+# define BOOST_PP_FOR_13_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IIF(c, BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(14, s), p, o, m)
+# define BOOST_PP_FOR_14_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IIF(c, BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(15, s), p, o, m)
+# define BOOST_PP_FOR_15_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IIF(c, BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(16, s), p, o, m)
+# define BOOST_PP_FOR_16_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IIF(c, BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(17, s), p, o, m)
+# define BOOST_PP_FOR_17_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IIF(c, BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(18, s), p, o, m)
+# define BOOST_PP_FOR_18_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IIF(c, BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(19, s), p, o, m)
+# define BOOST_PP_FOR_19_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IIF(c, BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(20, s), p, o, m)
+# define BOOST_PP_FOR_20_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IIF(c, BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(21, s), p, o, m)
+# define BOOST_PP_FOR_21_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IIF(c, BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(22, s), p, o, m)
+# define BOOST_PP_FOR_22_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IIF(c, BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(23, s), p, o, m)
+# define BOOST_PP_FOR_23_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IIF(c, BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(24, s), p, o, m)
+# define BOOST_PP_FOR_24_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IIF(c, BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(25, s), p, o, m)
+# define BOOST_PP_FOR_25_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IIF(c, BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(26, s), p, o, m)
+# define BOOST_PP_FOR_26_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IIF(c, BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(27, s), p, o, m)
+# define BOOST_PP_FOR_27_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IIF(c, BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(28, s), p, o, m)
+# define BOOST_PP_FOR_28_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IIF(c, BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(29, s), p, o, m)
+# define BOOST_PP_FOR_29_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IIF(c, BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(30, s), p, o, m)
+# define BOOST_PP_FOR_30_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IIF(c, BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(31, s), p, o, m)
+# define BOOST_PP_FOR_31_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IIF(c, BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(32, s), p, o, m)
+# define BOOST_PP_FOR_32_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IIF(c, BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(33, s), p, o, m)
+# define BOOST_PP_FOR_33_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IIF(c, BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(34, s), p, o, m)
+# define BOOST_PP_FOR_34_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IIF(c, BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(35, s), p, o, m)
+# define BOOST_PP_FOR_35_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IIF(c, BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(36, s), p, o, m)
+# define BOOST_PP_FOR_36_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IIF(c, BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(37, s), p, o, m)
+# define BOOST_PP_FOR_37_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IIF(c, BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(38, s), p, o, m)
+# define BOOST_PP_FOR_38_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IIF(c, BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(39, s), p, o, m)
+# define BOOST_PP_FOR_39_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IIF(c, BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(40, s), p, o, m)
+# define BOOST_PP_FOR_40_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IIF(c, BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(41, s), p, o, m)
+# define BOOST_PP_FOR_41_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IIF(c, BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(42, s), p, o, m)
+# define BOOST_PP_FOR_42_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IIF(c, BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(43, s), p, o, m)
+# define BOOST_PP_FOR_43_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IIF(c, BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(44, s), p, o, m)
+# define BOOST_PP_FOR_44_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IIF(c, BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(45, s), p, o, m)
+# define BOOST_PP_FOR_45_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IIF(c, BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(46, s), p, o, m)
+# define BOOST_PP_FOR_46_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IIF(c, BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(47, s), p, o, m)
+# define BOOST_PP_FOR_47_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IIF(c, BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(48, s), p, o, m)
+# define BOOST_PP_FOR_48_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IIF(c, BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(49, s), p, o, m)
+# define BOOST_PP_FOR_49_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IIF(c, BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(50, s), p, o, m)
+# define BOOST_PP_FOR_50_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IIF(c, BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(51, s), p, o, m)
+# define BOOST_PP_FOR_51_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IIF(c, BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(52, s), p, o, m)
+# define BOOST_PP_FOR_52_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IIF(c, BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(53, s), p, o, m)
+# define BOOST_PP_FOR_53_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IIF(c, BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(54, s), p, o, m)
+# define BOOST_PP_FOR_54_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IIF(c, BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(55, s), p, o, m)
+# define BOOST_PP_FOR_55_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IIF(c, BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(56, s), p, o, m)
+# define BOOST_PP_FOR_56_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IIF(c, BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(57, s), p, o, m)
+# define BOOST_PP_FOR_57_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IIF(c, BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(58, s), p, o, m)
+# define BOOST_PP_FOR_58_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IIF(c, BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(59, s), p, o, m)
+# define BOOST_PP_FOR_59_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IIF(c, BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(60, s), p, o, m)
+# define BOOST_PP_FOR_60_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IIF(c, BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(61, s), p, o, m)
+# define BOOST_PP_FOR_61_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IIF(c, BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(62, s), p, o, m)
+# define BOOST_PP_FOR_62_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IIF(c, BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(63, s), p, o, m)
+# define BOOST_PP_FOR_63_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IIF(c, BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(64, s), p, o, m)
+# define BOOST_PP_FOR_64_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IIF(c, BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(65, s), p, o, m)
+# define BOOST_PP_FOR_65_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IIF(c, BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(66, s), p, o, m)
+# define BOOST_PP_FOR_66_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IIF(c, BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(67, s), p, o, m)
+# define BOOST_PP_FOR_67_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IIF(c, BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(68, s), p, o, m)
+# define BOOST_PP_FOR_68_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IIF(c, BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(69, s), p, o, m)
+# define BOOST_PP_FOR_69_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IIF(c, BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(70, s), p, o, m)
+# define BOOST_PP_FOR_70_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IIF(c, BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(71, s), p, o, m)
+# define BOOST_PP_FOR_71_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IIF(c, BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(72, s), p, o, m)
+# define BOOST_PP_FOR_72_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IIF(c, BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(73, s), p, o, m)
+# define BOOST_PP_FOR_73_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IIF(c, BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(74, s), p, o, m)
+# define BOOST_PP_FOR_74_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IIF(c, BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(75, s), p, o, m)
+# define BOOST_PP_FOR_75_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IIF(c, BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(76, s), p, o, m)
+# define BOOST_PP_FOR_76_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IIF(c, BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(77, s), p, o, m)
+# define BOOST_PP_FOR_77_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IIF(c, BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(78, s), p, o, m)
+# define BOOST_PP_FOR_78_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IIF(c, BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(79, s), p, o, m)
+# define BOOST_PP_FOR_79_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IIF(c, BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(80, s), p, o, m)
+# define BOOST_PP_FOR_80_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IIF(c, BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(81, s), p, o, m)
+# define BOOST_PP_FOR_81_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IIF(c, BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(82, s), p, o, m)
+# define BOOST_PP_FOR_82_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IIF(c, BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(83, s), p, o, m)
+# define BOOST_PP_FOR_83_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IIF(c, BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(84, s), p, o, m)
+# define BOOST_PP_FOR_84_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IIF(c, BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(85, s), p, o, m)
+# define BOOST_PP_FOR_85_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IIF(c, BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(86, s), p, o, m)
+# define BOOST_PP_FOR_86_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IIF(c, BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(87, s), p, o, m)
+# define BOOST_PP_FOR_87_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IIF(c, BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(88, s), p, o, m)
+# define BOOST_PP_FOR_88_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IIF(c, BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(89, s), p, o, m)
+# define BOOST_PP_FOR_89_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IIF(c, BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(90, s), p, o, m)
+# define BOOST_PP_FOR_90_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IIF(c, BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(91, s), p, o, m)
+# define BOOST_PP_FOR_91_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IIF(c, BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(92, s), p, o, m)
+# define BOOST_PP_FOR_92_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IIF(c, BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(93, s), p, o, m)
+# define BOOST_PP_FOR_93_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IIF(c, BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(94, s), p, o, m)
+# define BOOST_PP_FOR_94_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IIF(c, BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(95, s), p, o, m)
+# define BOOST_PP_FOR_95_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IIF(c, BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(96, s), p, o, m)
+# define BOOST_PP_FOR_96_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IIF(c, BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(97, s), p, o, m)
+# define BOOST_PP_FOR_97_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IIF(c, BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(98, s), p, o, m)
+# define BOOST_PP_FOR_98_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IIF(c, BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(99, s), p, o, m)
+# define BOOST_PP_FOR_99_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IIF(c, BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(100, s), p, o, m)
+# define BOOST_PP_FOR_100_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IIF(c, BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(101, s), p, o, m)
+# define BOOST_PP_FOR_101_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IIF(c, BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(102, s), p, o, m)
+# define BOOST_PP_FOR_102_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IIF(c, BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(103, s), p, o, m)
+# define BOOST_PP_FOR_103_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IIF(c, BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(104, s), p, o, m)
+# define BOOST_PP_FOR_104_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IIF(c, BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(105, s), p, o, m)
+# define BOOST_PP_FOR_105_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IIF(c, BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(106, s), p, o, m)
+# define BOOST_PP_FOR_106_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IIF(c, BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(107, s), p, o, m)
+# define BOOST_PP_FOR_107_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IIF(c, BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(108, s), p, o, m)
+# define BOOST_PP_FOR_108_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IIF(c, BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(109, s), p, o, m)
+# define BOOST_PP_FOR_109_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IIF(c, BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(110, s), p, o, m)
+# define BOOST_PP_FOR_110_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IIF(c, BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(111, s), p, o, m)
+# define BOOST_PP_FOR_111_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IIF(c, BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(112, s), p, o, m)
+# define BOOST_PP_FOR_112_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IIF(c, BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(113, s), p, o, m)
+# define BOOST_PP_FOR_113_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IIF(c, BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(114, s), p, o, m)
+# define BOOST_PP_FOR_114_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IIF(c, BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(115, s), p, o, m)
+# define BOOST_PP_FOR_115_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IIF(c, BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(116, s), p, o, m)
+# define BOOST_PP_FOR_116_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IIF(c, BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(117, s), p, o, m)
+# define BOOST_PP_FOR_117_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IIF(c, BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(118, s), p, o, m)
+# define BOOST_PP_FOR_118_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IIF(c, BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(119, s), p, o, m)
+# define BOOST_PP_FOR_119_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IIF(c, BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(120, s), p, o, m)
+# define BOOST_PP_FOR_120_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IIF(c, BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(121, s), p, o, m)
+# define BOOST_PP_FOR_121_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IIF(c, BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(122, s), p, o, m)
+# define BOOST_PP_FOR_122_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IIF(c, BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(123, s), p, o, m)
+# define BOOST_PP_FOR_123_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IIF(c, BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(124, s), p, o, m)
+# define BOOST_PP_FOR_124_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IIF(c, BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(125, s), p, o, m)
+# define BOOST_PP_FOR_125_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IIF(c, BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(126, s), p, o, m)
+# define BOOST_PP_FOR_126_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IIF(c, BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(127, s), p, o, m)
+# define BOOST_PP_FOR_127_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IIF(c, BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(128, s), p, o, m)
+# define BOOST_PP_FOR_128_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IIF(c, BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(129, s), p, o, m)
+# define BOOST_PP_FOR_129_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IIF(c, BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(130, s), p, o, m)
+# define BOOST_PP_FOR_130_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IIF(c, BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(131, s), p, o, m)
+# define BOOST_PP_FOR_131_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IIF(c, BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(132, s), p, o, m)
+# define BOOST_PP_FOR_132_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IIF(c, BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(133, s), p, o, m)
+# define BOOST_PP_FOR_133_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IIF(c, BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(134, s), p, o, m)
+# define BOOST_PP_FOR_134_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IIF(c, BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(135, s), p, o, m)
+# define BOOST_PP_FOR_135_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IIF(c, BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(136, s), p, o, m)
+# define BOOST_PP_FOR_136_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IIF(c, BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(137, s), p, o, m)
+# define BOOST_PP_FOR_137_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IIF(c, BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(138, s), p, o, m)
+# define BOOST_PP_FOR_138_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IIF(c, BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(139, s), p, o, m)
+# define BOOST_PP_FOR_139_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IIF(c, BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(140, s), p, o, m)
+# define BOOST_PP_FOR_140_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IIF(c, BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(141, s), p, o, m)
+# define BOOST_PP_FOR_141_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IIF(c, BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(142, s), p, o, m)
+# define BOOST_PP_FOR_142_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IIF(c, BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(143, s), p, o, m)
+# define BOOST_PP_FOR_143_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IIF(c, BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(144, s), p, o, m)
+# define BOOST_PP_FOR_144_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IIF(c, BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(145, s), p, o, m)
+# define BOOST_PP_FOR_145_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IIF(c, BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(146, s), p, o, m)
+# define BOOST_PP_FOR_146_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IIF(c, BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(147, s), p, o, m)
+# define BOOST_PP_FOR_147_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IIF(c, BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(148, s), p, o, m)
+# define BOOST_PP_FOR_148_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IIF(c, BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(149, s), p, o, m)
+# define BOOST_PP_FOR_149_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IIF(c, BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(150, s), p, o, m)
+# define BOOST_PP_FOR_150_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IIF(c, BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(151, s), p, o, m)
+# define BOOST_PP_FOR_151_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IIF(c, BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(152, s), p, o, m)
+# define BOOST_PP_FOR_152_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IIF(c, BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(153, s), p, o, m)
+# define BOOST_PP_FOR_153_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IIF(c, BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(154, s), p, o, m)
+# define BOOST_PP_FOR_154_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IIF(c, BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(155, s), p, o, m)
+# define BOOST_PP_FOR_155_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IIF(c, BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(156, s), p, o, m)
+# define BOOST_PP_FOR_156_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IIF(c, BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(157, s), p, o, m)
+# define BOOST_PP_FOR_157_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IIF(c, BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(158, s), p, o, m)
+# define BOOST_PP_FOR_158_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IIF(c, BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(159, s), p, o, m)
+# define BOOST_PP_FOR_159_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IIF(c, BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(160, s), p, o, m)
+# define BOOST_PP_FOR_160_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IIF(c, BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(161, s), p, o, m)
+# define BOOST_PP_FOR_161_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IIF(c, BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(162, s), p, o, m)
+# define BOOST_PP_FOR_162_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IIF(c, BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(163, s), p, o, m)
+# define BOOST_PP_FOR_163_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IIF(c, BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(164, s), p, o, m)
+# define BOOST_PP_FOR_164_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IIF(c, BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(165, s), p, o, m)
+# define BOOST_PP_FOR_165_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IIF(c, BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(166, s), p, o, m)
+# define BOOST_PP_FOR_166_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IIF(c, BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(167, s), p, o, m)
+# define BOOST_PP_FOR_167_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IIF(c, BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(168, s), p, o, m)
+# define BOOST_PP_FOR_168_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IIF(c, BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(169, s), p, o, m)
+# define BOOST_PP_FOR_169_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IIF(c, BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(170, s), p, o, m)
+# define BOOST_PP_FOR_170_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IIF(c, BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(171, s), p, o, m)
+# define BOOST_PP_FOR_171_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IIF(c, BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(172, s), p, o, m)
+# define BOOST_PP_FOR_172_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IIF(c, BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(173, s), p, o, m)
+# define BOOST_PP_FOR_173_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IIF(c, BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(174, s), p, o, m)
+# define BOOST_PP_FOR_174_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IIF(c, BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(175, s), p, o, m)
+# define BOOST_PP_FOR_175_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IIF(c, BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(176, s), p, o, m)
+# define BOOST_PP_FOR_176_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IIF(c, BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(177, s), p, o, m)
+# define BOOST_PP_FOR_177_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IIF(c, BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(178, s), p, o, m)
+# define BOOST_PP_FOR_178_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IIF(c, BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(179, s), p, o, m)
+# define BOOST_PP_FOR_179_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IIF(c, BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(180, s), p, o, m)
+# define BOOST_PP_FOR_180_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IIF(c, BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(181, s), p, o, m)
+# define BOOST_PP_FOR_181_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IIF(c, BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(182, s), p, o, m)
+# define BOOST_PP_FOR_182_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IIF(c, BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(183, s), p, o, m)
+# define BOOST_PP_FOR_183_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IIF(c, BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(184, s), p, o, m)
+# define BOOST_PP_FOR_184_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IIF(c, BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(185, s), p, o, m)
+# define BOOST_PP_FOR_185_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IIF(c, BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(186, s), p, o, m)
+# define BOOST_PP_FOR_186_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IIF(c, BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(187, s), p, o, m)
+# define BOOST_PP_FOR_187_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IIF(c, BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(188, s), p, o, m)
+# define BOOST_PP_FOR_188_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IIF(c, BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(189, s), p, o, m)
+# define BOOST_PP_FOR_189_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IIF(c, BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(190, s), p, o, m)
+# define BOOST_PP_FOR_190_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IIF(c, BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(191, s), p, o, m)
+# define BOOST_PP_FOR_191_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IIF(c, BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(192, s), p, o, m)
+# define BOOST_PP_FOR_192_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IIF(c, BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(193, s), p, o, m)
+# define BOOST_PP_FOR_193_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IIF(c, BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(194, s), p, o, m)
+# define BOOST_PP_FOR_194_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IIF(c, BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(195, s), p, o, m)
+# define BOOST_PP_FOR_195_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IIF(c, BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(196, s), p, o, m)
+# define BOOST_PP_FOR_196_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IIF(c, BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(197, s), p, o, m)
+# define BOOST_PP_FOR_197_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IIF(c, BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(198, s), p, o, m)
+# define BOOST_PP_FOR_198_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IIF(c, BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(199, s), p, o, m)
+# define BOOST_PP_FOR_199_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IIF(c, BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(200, s), p, o, m)
+# define BOOST_PP_FOR_200_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IIF(c, BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(201, s), p, o, m)
+# define BOOST_PP_FOR_201_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IIF(c, BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(202, s), p, o, m)
+# define BOOST_PP_FOR_202_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IIF(c, BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(203, s), p, o, m)
+# define BOOST_PP_FOR_203_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IIF(c, BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(204, s), p, o, m)
+# define BOOST_PP_FOR_204_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IIF(c, BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(205, s), p, o, m)
+# define BOOST_PP_FOR_205_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IIF(c, BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(206, s), p, o, m)
+# define BOOST_PP_FOR_206_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IIF(c, BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(207, s), p, o, m)
+# define BOOST_PP_FOR_207_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IIF(c, BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(208, s), p, o, m)
+# define BOOST_PP_FOR_208_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IIF(c, BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(209, s), p, o, m)
+# define BOOST_PP_FOR_209_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IIF(c, BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(210, s), p, o, m)
+# define BOOST_PP_FOR_210_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IIF(c, BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(211, s), p, o, m)
+# define BOOST_PP_FOR_211_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IIF(c, BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(212, s), p, o, m)
+# define BOOST_PP_FOR_212_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IIF(c, BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(213, s), p, o, m)
+# define BOOST_PP_FOR_213_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IIF(c, BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(214, s), p, o, m)
+# define BOOST_PP_FOR_214_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IIF(c, BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(215, s), p, o, m)
+# define BOOST_PP_FOR_215_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IIF(c, BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(216, s), p, o, m)
+# define BOOST_PP_FOR_216_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IIF(c, BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(217, s), p, o, m)
+# define BOOST_PP_FOR_217_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IIF(c, BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(218, s), p, o, m)
+# define BOOST_PP_FOR_218_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IIF(c, BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(219, s), p, o, m)
+# define BOOST_PP_FOR_219_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IIF(c, BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(220, s), p, o, m)
+# define BOOST_PP_FOR_220_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IIF(c, BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(221, s), p, o, m)
+# define BOOST_PP_FOR_221_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IIF(c, BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(222, s), p, o, m)
+# define BOOST_PP_FOR_222_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IIF(c, BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(223, s), p, o, m)
+# define BOOST_PP_FOR_223_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IIF(c, BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(224, s), p, o, m)
+# define BOOST_PP_FOR_224_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IIF(c, BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(225, s), p, o, m)
+# define BOOST_PP_FOR_225_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IIF(c, BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(226, s), p, o, m)
+# define BOOST_PP_FOR_226_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IIF(c, BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(227, s), p, o, m)
+# define BOOST_PP_FOR_227_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IIF(c, BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(228, s), p, o, m)
+# define BOOST_PP_FOR_228_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IIF(c, BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(229, s), p, o, m)
+# define BOOST_PP_FOR_229_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IIF(c, BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(230, s), p, o, m)
+# define BOOST_PP_FOR_230_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IIF(c, BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(231, s), p, o, m)
+# define BOOST_PP_FOR_231_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IIF(c, BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(232, s), p, o, m)
+# define BOOST_PP_FOR_232_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IIF(c, BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(233, s), p, o, m)
+# define BOOST_PP_FOR_233_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IIF(c, BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(234, s), p, o, m)
+# define BOOST_PP_FOR_234_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IIF(c, BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(235, s), p, o, m)
+# define BOOST_PP_FOR_235_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IIF(c, BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(236, s), p, o, m)
+# define BOOST_PP_FOR_236_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IIF(c, BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(237, s), p, o, m)
+# define BOOST_PP_FOR_237_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IIF(c, BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(238, s), p, o, m)
+# define BOOST_PP_FOR_238_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IIF(c, BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(239, s), p, o, m)
+# define BOOST_PP_FOR_239_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IIF(c, BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(240, s), p, o, m)
+# define BOOST_PP_FOR_240_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IIF(c, BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(241, s), p, o, m)
+# define BOOST_PP_FOR_241_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IIF(c, BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(242, s), p, o, m)
+# define BOOST_PP_FOR_242_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IIF(c, BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(243, s), p, o, m)
+# define BOOST_PP_FOR_243_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IIF(c, BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(244, s), p, o, m)
+# define BOOST_PP_FOR_244_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IIF(c, BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(245, s), p, o, m)
+# define BOOST_PP_FOR_245_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IIF(c, BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(246, s), p, o, m)
+# define BOOST_PP_FOR_246_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IIF(c, BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(247, s), p, o, m)
+# define BOOST_PP_FOR_247_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IIF(c, BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(248, s), p, o, m)
+# define BOOST_PP_FOR_248_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IIF(c, BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(249, s), p, o, m)
+# define BOOST_PP_FOR_249_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IIF(c, BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(250, s), p, o, m)
+# define BOOST_PP_FOR_250_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IIF(c, BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(251, s), p, o, m)
+# define BOOST_PP_FOR_251_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IIF(c, BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(252, s), p, o, m)
+# define BOOST_PP_FOR_252_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IIF(c, BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(253, s), p, o, m)
+# define BOOST_PP_FOR_253_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IIF(c, BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(254, s), p, o, m)
+# define BOOST_PP_FOR_254_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IIF(c, BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(255, s), p, o, m)
+# define BOOST_PP_FOR_255_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IIF(c, BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(256, s), p, o, m)
+# define BOOST_PP_FOR_256_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IIF(c, BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(257, s), p, o, m)
+#
+# endif
index 2281c5cea3b224f02648617ff8b620b07e58156a..7496df62f20f72a489c42e507382a219cff7ddbd 100644 (file)
@@ -1,25 +1,25 @@
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP\r
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/facilities/intercept.hpp>\r
-# include <boost/preprocessor/repetition/enum_binary_params.hpp>\r
-#\r
-# /* BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT */\r
-#\r
-# define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(count, param, def) BOOST_PP_ENUM_BINARY_PARAMS(count, param, = def BOOST_PP_INTERCEPT)\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/facilities/intercept.hpp>
+# include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#
+# /* BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT */
+#
+# define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(count, param, def) BOOST_PP_ENUM_BINARY_PARAMS(count, param, = def BOOST_PP_INTERCEPT)
+#
+# endif
index 146352f875978043bd5b346a5edfe18a9fd9de06..fa0106f775040414f9658b6f60ceb1b2b4d69369 100644 (file)
@@ -1,24 +1,24 @@
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_DEFAULTS_HPP\r
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_DEFAULTS_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/repetition/enum_binary_params.hpp>\r
-#\r
-# /* BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS */\r
-#\r
-# define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS(count, param, def) BOOST_PP_ENUM_BINARY_PARAMS(count, param, = def)\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_DEFAULTS_HPP
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_DEFAULTS_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#
+# /* BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS */
+#
+# define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS(count, param, def) BOOST_PP_ENUM_BINARY_PARAMS(count, param, = def)
+#
+# endif
index f2750b20afef3f145e984a1fafaac8f9f23081a8..d5b006f4d0f8757cbee553ced12d620a25ce6200 100644 (file)
@@ -1,68 +1,68 @@
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_HPP\r
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_HPP\r
-#\r
-# include <boost/preprocessor/cat.hpp>\r
-# include <boost/preprocessor/arithmetic/dec.hpp>\r
-# include <boost/preprocessor/arithmetic/inc.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/debug/error.hpp>\r
-# include <boost/preprocessor/detail/auto_rec.hpp>\r
-# include <boost/preprocessor/punctuation/comma_if.hpp>\r
-# include <boost/preprocessor/repetition/repeat.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-# include <boost/preprocessor/tuple/rem.hpp>\r
-#\r
-# /* BOOST_PP_ENUM_SHIFTED */\r
-#\r
-# if 0\r
-#    define BOOST_PP_ENUM_SHIFTED(count, macro, data)\r
-# endif\r
-#\r
-# define BOOST_PP_ENUM_SHIFTED BOOST_PP_CAT(BOOST_PP_ENUM_SHIFTED_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ENUM_SHIFTED_1(c, m, d) BOOST_PP_REPEAT_1(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_1, (m, d))\r
-#    define BOOST_PP_ENUM_SHIFTED_2(c, m, d) BOOST_PP_REPEAT_2(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_2, (m, d))\r
-#    define BOOST_PP_ENUM_SHIFTED_3(c, m, d) BOOST_PP_REPEAT_3(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_3, (m, d))\r
-# else\r
-#    define BOOST_PP_ENUM_SHIFTED_1(c, m, d) BOOST_PP_ENUM_SHIFTED_1_I(c, m, d)\r
-#    define BOOST_PP_ENUM_SHIFTED_2(c, m, d) BOOST_PP_ENUM_SHIFTED_1_2(c, m, d)\r
-#    define BOOST_PP_ENUM_SHIFTED_3(c, m, d) BOOST_PP_ENUM_SHIFTED_1_3(c, m, d)\r
-#    define BOOST_PP_ENUM_SHIFTED_1_I(c, m, d) BOOST_PP_REPEAT_1(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_1, (m, d))\r
-#    define BOOST_PP_ENUM_SHIFTED_2_I(c, m, d) BOOST_PP_REPEAT_2(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_2, (m, d))\r
-#    define BOOST_PP_ENUM_SHIFTED_3_I(c, m, d) BOOST_PP_REPEAT_3(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_3, (m, d))\r
-# endif\r
-#\r
-# define BOOST_PP_ENUM_SHIFTED_4(c, m, d) BOOST_PP_ERROR(0x0003)\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_ENUM_SHIFTED_M_1(z, n, md) BOOST_PP_ENUM_SHIFTED_M_1_IM(z, n, BOOST_PP_TUPLE_REM_2 md)\r
-#    define BOOST_PP_ENUM_SHIFTED_M_2(z, n, md) BOOST_PP_ENUM_SHIFTED_M_2_IM(z, n, BOOST_PP_TUPLE_REM_2 md)\r
-#    define BOOST_PP_ENUM_SHIFTED_M_3(z, n, md) BOOST_PP_ENUM_SHIFTED_M_3_IM(z, n, BOOST_PP_TUPLE_REM_2 md)\r
-#    define BOOST_PP_ENUM_SHIFTED_M_1_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, im)\r
-#    define BOOST_PP_ENUM_SHIFTED_M_2_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, im)\r
-#    define BOOST_PP_ENUM_SHIFTED_M_3_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, im)\r
-# else\r
-#    define BOOST_PP_ENUM_SHIFTED_M_1(z, n, md) BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))\r
-#    define BOOST_PP_ENUM_SHIFTED_M_2(z, n, md) BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))\r
-#    define BOOST_PP_ENUM_SHIFTED_M_3(z, n, md) BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))\r
-# endif\r
-#\r
-# define BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d)\r
-# define BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d)\r
-# define BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d)\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_HPP
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/debug/error.hpp>
+# include <boost/preprocessor/detail/auto_rec.hpp>
+# include <boost/preprocessor/punctuation/comma_if.hpp>
+# include <boost/preprocessor/repetition/repeat.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_ENUM_SHIFTED */
+#
+# if 0
+#    define BOOST_PP_ENUM_SHIFTED(count, macro, data)
+# endif
+#
+# define BOOST_PP_ENUM_SHIFTED BOOST_PP_CAT(BOOST_PP_ENUM_SHIFTED_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ENUM_SHIFTED_1(c, m, d) BOOST_PP_REPEAT_1(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_1, (m, d))
+#    define BOOST_PP_ENUM_SHIFTED_2(c, m, d) BOOST_PP_REPEAT_2(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_2, (m, d))
+#    define BOOST_PP_ENUM_SHIFTED_3(c, m, d) BOOST_PP_REPEAT_3(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_3, (m, d))
+# else
+#    define BOOST_PP_ENUM_SHIFTED_1(c, m, d) BOOST_PP_ENUM_SHIFTED_1_I(c, m, d)
+#    define BOOST_PP_ENUM_SHIFTED_2(c, m, d) BOOST_PP_ENUM_SHIFTED_1_2(c, m, d)
+#    define BOOST_PP_ENUM_SHIFTED_3(c, m, d) BOOST_PP_ENUM_SHIFTED_1_3(c, m, d)
+#    define BOOST_PP_ENUM_SHIFTED_1_I(c, m, d) BOOST_PP_REPEAT_1(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_1, (m, d))
+#    define BOOST_PP_ENUM_SHIFTED_2_I(c, m, d) BOOST_PP_REPEAT_2(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_2, (m, d))
+#    define BOOST_PP_ENUM_SHIFTED_3_I(c, m, d) BOOST_PP_REPEAT_3(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_3, (m, d))
+# endif
+#
+# define BOOST_PP_ENUM_SHIFTED_4(c, m, d) BOOST_PP_ERROR(0x0003)
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_ENUM_SHIFTED_M_1(z, n, md) BOOST_PP_ENUM_SHIFTED_M_1_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
+#    define BOOST_PP_ENUM_SHIFTED_M_2(z, n, md) BOOST_PP_ENUM_SHIFTED_M_2_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
+#    define BOOST_PP_ENUM_SHIFTED_M_3(z, n, md) BOOST_PP_ENUM_SHIFTED_M_3_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
+#    define BOOST_PP_ENUM_SHIFTED_M_1_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, im)
+#    define BOOST_PP_ENUM_SHIFTED_M_2_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, im)
+#    define BOOST_PP_ENUM_SHIFTED_M_3_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, im)
+# else
+#    define BOOST_PP_ENUM_SHIFTED_M_1(z, n, md) BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
+#    define BOOST_PP_ENUM_SHIFTED_M_2(z, n, md) BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
+#    define BOOST_PP_ENUM_SHIFTED_M_3(z, n, md) BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
+# endif
+#
+# define BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d)
+# define BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d)
+# define BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d)
+#
+# endif
index d1bd957517d7bdcf5ce8d883c592d622a6daa935..f3d20fc7b475266447c2f0d3e27bbbb5c24c2bcd 100644 (file)
@@ -1,51 +1,51 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2005.                                  *\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See      *\r
-#  *     accompanying file LICENSE_1_0.txt or copy at                         *\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)                                *\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_BINARY_PARAMS_HPP\r
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_BINARY_PARAMS_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/dec.hpp>\r
-# include <boost/preprocessor/arithmetic/inc.hpp>\r
-# include <boost/preprocessor/cat.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/punctuation/comma_if.hpp>\r
-# include <boost/preprocessor/repetition/repeat.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-# include <boost/preprocessor/tuple/rem.hpp>\r
-#\r
-# /* BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))\r
-# else\r
-#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_I(count, p1, p2)\r
-#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_I(count, p1, p2) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))\r
-# endif\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_IM(z, n, BOOST_PP_TUPLE_REM_2 pp)\r
-#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, im)\r
-# else\r
-#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, pp), BOOST_PP_TUPLE_ELEM(2, 1, pp))\r
-# endif\r
-#\r
-# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(p1, BOOST_PP_INC(n)) BOOST_PP_CAT(p2, BOOST_PP_INC(n))\r
-#\r
-# /* BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))\r
-# else\r
-#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z_I(z, count, p1, p2)\r
-#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z_I(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (C) Copyright Paul Mensonides 2005.                                  *
+#  *     Distributed under the Boost Software License, Version 1.0. (See      *
+#  *     accompanying file LICENSE_1_0.txt or copy at                         *
+#  *     http://www.boost.org/LICENSE_1_0.txt)                                *
+#  *                                                                          *
+#  ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_BINARY_PARAMS_HPP
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_BINARY_PARAMS_HPP
+#
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/punctuation/comma_if.hpp>
+# include <boost/preprocessor/repetition/repeat.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))
+# else
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_I(count, p1, p2)
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_I(count, p1, p2) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))
+# endif
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_IM(z, n, BOOST_PP_TUPLE_REM_2 pp)
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, im)
+# else
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, pp), BOOST_PP_TUPLE_ELEM(2, 1, pp))
+# endif
+#
+# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(p1, BOOST_PP_INC(n)) BOOST_PP_CAT(p2, BOOST_PP_INC(n))
+#
+# /* BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))
+# else
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z_I(z, count, p1, p2)
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z_I(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))
+# endif
+#
+# endif
index 447a1147784f02739a7c47d0c3913c5b93d0e157..88b2bf4c32c1a777127761e0be4a43bb586c8d64 100644 (file)
@@ -1,44 +1,44 @@
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP\r
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/dec.hpp>\r
-# include <boost/preprocessor/arithmetic/inc.hpp>\r
-# include <boost/preprocessor/cat.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/punctuation/comma_if.hpp>\r
-# include <boost/preprocessor/repetition/repeat.hpp>\r
-#\r
-# /* BOOST_PP_ENUM_SHIFTED_PARAMS */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS(count, param) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)\r
-# else\r
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS(count, param) BOOST_PP_ENUM_SHIFTED_PARAMS_I(count, param)\r
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS_I(count, param) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)\r
-# endif\r
-#\r
-# define BOOST_PP_ENUM_SHIFTED_PARAMS_M(z, n, param) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(param, BOOST_PP_INC(n))\r
-#\r
-# /* BOOST_PP_ENUM_SHIFTED_PARAMS_Z */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)\r
-# else\r
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) BOOST_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param)\r
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)\r
-# endif\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP
+#
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/punctuation/comma_if.hpp>
+# include <boost/preprocessor/repetition/repeat.hpp>
+#
+# /* BOOST_PP_ENUM_SHIFTED_PARAMS */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ENUM_SHIFTED_PARAMS(count, param) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
+# else
+#    define BOOST_PP_ENUM_SHIFTED_PARAMS(count, param) BOOST_PP_ENUM_SHIFTED_PARAMS_I(count, param)
+#    define BOOST_PP_ENUM_SHIFTED_PARAMS_I(count, param) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
+# endif
+#
+# define BOOST_PP_ENUM_SHIFTED_PARAMS_M(z, n, param) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(param, BOOST_PP_INC(n))
+#
+# /* BOOST_PP_ENUM_SHIFTED_PARAMS_Z */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
+# else
+#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) BOOST_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param)
+#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
+# endif
+#
+# endif
index b8d197e2ea66805697cc7f637a5a12b7fa99e68a..20af2d54b0b115c8d9ddce2f7ea2d946d1a3a206 100644 (file)
@@ -1,63 +1,63 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP\r
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP\r
-#\r
-# include <boost/preprocessor/cat.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/debug/error.hpp>\r
-# include <boost/preprocessor/detail/auto_rec.hpp>\r
-# include <boost/preprocessor/repetition/repeat.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-# include <boost/preprocessor/tuple/rem.hpp>\r
-#\r
-# /* BOOST_PP_ENUM_TRAILING */\r
-#\r
-# if 0\r
-#    define BOOST_PP_ENUM_TRAILING(count, macro, data)\r
-# endif\r
-#\r
-# define BOOST_PP_ENUM_TRAILING BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ENUM_TRAILING_1(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_TRAILING_M_1, (m, d))\r
-#    define BOOST_PP_ENUM_TRAILING_2(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_TRAILING_M_2, (m, d))\r
-#    define BOOST_PP_ENUM_TRAILING_3(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_TRAILING_M_3, (m, d))\r
-# else\r
-#    define BOOST_PP_ENUM_TRAILING_1(c, m, d) BOOST_PP_ENUM_TRAILING_1_I(c, m, d)\r
-#    define BOOST_PP_ENUM_TRAILING_2(c, m, d) BOOST_PP_ENUM_TRAILING_2_I(c, m, d)\r
-#    define BOOST_PP_ENUM_TRAILING_3(c, m, d) BOOST_PP_ENUM_TRAILING_3_I(c, m, d)\r
-#    define BOOST_PP_ENUM_TRAILING_1_I(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_TRAILING_M_1, (m, d))\r
-#    define BOOST_PP_ENUM_TRAILING_2_I(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_TRAILING_M_2, (m, d))\r
-#    define BOOST_PP_ENUM_TRAILING_3_I(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_TRAILING_M_3, (m, d))\r
-# endif\r
-#\r
-# define BOOST_PP_ENUM_TRAILING_4(c, m, d) BOOST_PP_ERROR(0x0003)\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_ENUM_TRAILING_M_1(z, n, md) BOOST_PP_ENUM_TRAILING_M_1_IM(z, n, BOOST_PP_TUPLE_REM_2 md)\r
-#    define BOOST_PP_ENUM_TRAILING_M_2(z, n, md) BOOST_PP_ENUM_TRAILING_M_2_IM(z, n, BOOST_PP_TUPLE_REM_2 md)\r
-#    define BOOST_PP_ENUM_TRAILING_M_3(z, n, md) BOOST_PP_ENUM_TRAILING_M_3_IM(z, n, BOOST_PP_TUPLE_REM_2 md)\r
-#    define BOOST_PP_ENUM_TRAILING_M_1_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_1_I(z, n, im)\r
-#    define BOOST_PP_ENUM_TRAILING_M_2_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_2_I(z, n, im)\r
-#    define BOOST_PP_ENUM_TRAILING_M_3_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_3_I(z, n, im)\r
-# else\r
-#    define BOOST_PP_ENUM_TRAILING_M_1(z, n, md) BOOST_PP_ENUM_TRAILING_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))\r
-#    define BOOST_PP_ENUM_TRAILING_M_2(z, n, md) BOOST_PP_ENUM_TRAILING_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))\r
-#    define BOOST_PP_ENUM_TRAILING_M_3(z, n, md) BOOST_PP_ENUM_TRAILING_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))\r
-# endif\r
-#\r
-# define BOOST_PP_ENUM_TRAILING_M_1_I(z, n, m, d) , m(z, n, d)\r
-# define BOOST_PP_ENUM_TRAILING_M_2_I(z, n, m, d) , m(z, n, d)\r
-# define BOOST_PP_ENUM_TRAILING_M_3_I(z, n, m, d) , m(z, n, d)\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/debug/error.hpp>
+# include <boost/preprocessor/detail/auto_rec.hpp>
+# include <boost/preprocessor/repetition/repeat.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_ENUM_TRAILING */
+#
+# if 0
+#    define BOOST_PP_ENUM_TRAILING(count, macro, data)
+# endif
+#
+# define BOOST_PP_ENUM_TRAILING BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ENUM_TRAILING_1(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_TRAILING_M_1, (m, d))
+#    define BOOST_PP_ENUM_TRAILING_2(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_TRAILING_M_2, (m, d))
+#    define BOOST_PP_ENUM_TRAILING_3(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_TRAILING_M_3, (m, d))
+# else
+#    define BOOST_PP_ENUM_TRAILING_1(c, m, d) BOOST_PP_ENUM_TRAILING_1_I(c, m, d)
+#    define BOOST_PP_ENUM_TRAILING_2(c, m, d) BOOST_PP_ENUM_TRAILING_2_I(c, m, d)
+#    define BOOST_PP_ENUM_TRAILING_3(c, m, d) BOOST_PP_ENUM_TRAILING_3_I(c, m, d)
+#    define BOOST_PP_ENUM_TRAILING_1_I(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_TRAILING_M_1, (m, d))
+#    define BOOST_PP_ENUM_TRAILING_2_I(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_TRAILING_M_2, (m, d))
+#    define BOOST_PP_ENUM_TRAILING_3_I(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_TRAILING_M_3, (m, d))
+# endif
+#
+# define BOOST_PP_ENUM_TRAILING_4(c, m, d) BOOST_PP_ERROR(0x0003)
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_ENUM_TRAILING_M_1(z, n, md) BOOST_PP_ENUM_TRAILING_M_1_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
+#    define BOOST_PP_ENUM_TRAILING_M_2(z, n, md) BOOST_PP_ENUM_TRAILING_M_2_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
+#    define BOOST_PP_ENUM_TRAILING_M_3(z, n, md) BOOST_PP_ENUM_TRAILING_M_3_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
+#    define BOOST_PP_ENUM_TRAILING_M_1_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_1_I(z, n, im)
+#    define BOOST_PP_ENUM_TRAILING_M_2_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_2_I(z, n, im)
+#    define BOOST_PP_ENUM_TRAILING_M_3_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_3_I(z, n, im)
+# else
+#    define BOOST_PP_ENUM_TRAILING_M_1(z, n, md) BOOST_PP_ENUM_TRAILING_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
+#    define BOOST_PP_ENUM_TRAILING_M_2(z, n, md) BOOST_PP_ENUM_TRAILING_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
+#    define BOOST_PP_ENUM_TRAILING_M_3(z, n, md) BOOST_PP_ENUM_TRAILING_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
+# endif
+#
+# define BOOST_PP_ENUM_TRAILING_M_1_I(z, n, m, d) , m(z, n, d)
+# define BOOST_PP_ENUM_TRAILING_M_2_I(z, n, m, d) , m(z, n, d)
+# define BOOST_PP_ENUM_TRAILING_M_3_I(z, n, m, d) , m(z, n, d)
+#
+# endif
index 449bdb57b97d11bf613bbd7cf7bcd949f1f4b4af..e201b69917de19f86a34d0c9e3fb2a09a03d07c3 100644 (file)
@@ -1,53 +1,53 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_BINARY_PARAMS_HPP\r
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_BINARY_PARAMS_HPP\r
-#\r
-# include <boost/preprocessor/cat.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/repetition/repeat.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-# include <boost/preprocessor/tuple/rem.hpp>\r
-#\r
-# /* BOOST_PP_ENUM_TRAILING_BINARY_PARAMS */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(count, p1, p2) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))\r
-# else\r
-#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(count, p1, p2) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_I(count, p1, p2)\r
-#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_I(count, p1, p2) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))\r
-# endif\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_IM(z, n, BOOST_PP_TUPLE_REM_2 pp)\r
-#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_IM(z, n, im) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, im)\r
-# else\r
-#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, pp), BOOST_PP_TUPLE_ELEM(2, 1, pp))\r
-# endif\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
-#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_II(z, n, p1, p2)\r
-#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_II(z, n, p1, p2) , p1 ## n p2 ## n\r
-# else\r
-#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, p1, p2) , BOOST_PP_CAT(p1, n) BOOST_PP_CAT(p2, n)\r
-# endif\r
-#\r
-# /* BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))\r
-# else\r
-#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z_I(z, count, p1, p2)\r
-#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z_I(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_BINARY_PARAMS_HPP
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_BINARY_PARAMS_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/repetition/repeat.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_ENUM_TRAILING_BINARY_PARAMS */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(count, p1, p2) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))
+# else
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(count, p1, p2) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_I(count, p1, p2)
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_I(count, p1, p2) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))
+# endif
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_IM(z, n, BOOST_PP_TUPLE_REM_2 pp)
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_IM(z, n, im) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, im)
+# else
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, pp), BOOST_PP_TUPLE_ELEM(2, 1, pp))
+# endif
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_II(z, n, p1, p2)
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_II(z, n, p1, p2) , p1 ## n p2 ## n
+# else
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, p1, p2) , BOOST_PP_CAT(p1, n) BOOST_PP_CAT(p2, n)
+# endif
+#
+# /* BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))
+# else
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z_I(z, count, p1, p2)
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z_I(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))
+# endif
+#
+# endif
index 33ad8ca996cc3ba3bf9b2922f2f7eaceb8652560..f7520dbdeff73a74d0732638f67a85724c65bb91 100644 (file)
@@ -1,38 +1,38 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP\r
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/repetition/repeat.hpp>\r
-#\r
-# /* BOOST_PP_ENUM_TRAILING_PARAMS */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ENUM_TRAILING_PARAMS(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)\r
-# else\r
-#    define BOOST_PP_ENUM_TRAILING_PARAMS(count, param) BOOST_PP_ENUM_TRAILING_PARAMS_I(count, param)\r
-#    define BOOST_PP_ENUM_TRAILING_PARAMS_I(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)\r
-# endif\r
-#\r
-# define BOOST_PP_ENUM_TRAILING_PARAMS_M(z, n, param) , param ## n\r
-#\r
-# /* BOOST_PP_ENUM_TRAILING_PARAMS_Z */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)\r
-# else\r
-#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) BOOST_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param)\r
-#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/repetition/repeat.hpp>
+#
+# /* BOOST_PP_ENUM_TRAILING_PARAMS */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ENUM_TRAILING_PARAMS(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)
+# else
+#    define BOOST_PP_ENUM_TRAILING_PARAMS(count, param) BOOST_PP_ENUM_TRAILING_PARAMS_I(count, param)
+#    define BOOST_PP_ENUM_TRAILING_PARAMS_I(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)
+# endif
+#
+# define BOOST_PP_ENUM_TRAILING_PARAMS_M(z, n, param) , param ## n
+#
+# /* BOOST_PP_ENUM_TRAILING_PARAMS_Z */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)
+# else
+#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) BOOST_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param)
+#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)
+# endif
+#
+# endif
index 0813dfcd32d9a5c902d839f3a7102b81ee34a371..3b67fad4e38bd7fd553be4bf68104a5b94b8dea2 100644 (file)
@@ -1,18 +1,18 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SELECTION_HPP\r
-# define BOOST_PREPROCESSOR_SELECTION_HPP\r
-#\r
-# include <boost/preprocessor/selection/max.hpp>\r
-# include <boost/preprocessor/selection/min.hpp>\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SELECTION_HPP
+# define BOOST_PREPROCESSOR_SELECTION_HPP
+#
+# include <boost/preprocessor/selection/max.hpp>
+# include <boost/preprocessor/selection/min.hpp>
+#
+# endif
index 08e362c631e8389ac6fa4128f87bbd7767712921..407d70205f8fb5893b9c879ce5bf88970cd7b107 100644 (file)
@@ -1,39 +1,39 @@
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SELECTION_MAX_HPP\r
-# define BOOST_PREPROCESSOR_SELECTION_MAX_HPP\r
-#\r
-# include <boost/preprocessor/comparison/less_equal.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/control/iif.hpp>\r
-#\r
-# /* BOOST_PP_MAX */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_MAX(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(x, y), y, x)\r
-# else\r
-#    define BOOST_PP_MAX(x, y) BOOST_PP_MAX_I(x, y)\r
-#    define BOOST_PP_MAX_I(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(x, y), y, x)\r
-# endif\r
-#\r
-# /* BOOST_PP_MAX_D */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_MAX_D(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, x, y), y, x)\r
-# else\r
-#    define BOOST_PP_MAX_D(d, x, y) BOOST_PP_MAX_D_I(d, x, y)\r
-#    define BOOST_PP_MAX_D_I(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, x, y), y, x)\r
-# endif\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_SELECTION_MAX_HPP
+# define BOOST_PREPROCESSOR_SELECTION_MAX_HPP
+#
+# include <boost/preprocessor/comparison/less_equal.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/control/iif.hpp>
+#
+# /* BOOST_PP_MAX */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_MAX(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(x, y), y, x)
+# else
+#    define BOOST_PP_MAX(x, y) BOOST_PP_MAX_I(x, y)
+#    define BOOST_PP_MAX_I(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(x, y), y, x)
+# endif
+#
+# /* BOOST_PP_MAX_D */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_MAX_D(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, x, y), y, x)
+# else
+#    define BOOST_PP_MAX_D(d, x, y) BOOST_PP_MAX_D_I(d, x, y)
+#    define BOOST_PP_MAX_D_I(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, x, y), y, x)
+# endif
+#
+# endif
index 6cd548df8ba906095b9a0b955cdbccfd7809b32e..ee05588bd772c5195296b00b66ebc0d86c81b6fb 100644 (file)
@@ -1,39 +1,39 @@
-# /* Copyright (C) 2001\r
-#  * Housemarque Oy\r
-#  * http://www.housemarque.com\r
-#  *\r
-#  * Distributed under the Boost Software License, Version 1.0. (See\r
-#  * accompanying file LICENSE_1_0.txt or copy at\r
-#  * http://www.boost.org/LICENSE_1_0.txt)\r
-#  */\r
-#\r
-# /* Revised by Paul Mensonides (2002) */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SELECTION_MIN_HPP\r
-# define BOOST_PREPROCESSOR_SELECTION_MIN_HPP\r
-#\r
-# include <boost/preprocessor/comparison/less_equal.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/control/iif.hpp>\r
-#\r
-# /* BOOST_PP_MIN */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_MIN(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(y, x), y, x)\r
-# else\r
-#    define BOOST_PP_MIN(x, y) BOOST_PP_MIN_I(x, y)\r
-#    define BOOST_PP_MIN_I(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(y, x), y, x)\r
-# endif\r
-#\r
-# /* BOOST_PP_MIN_D */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_MIN_D(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, y, x), y, x)\r
-# else\r
-#    define BOOST_PP_MIN_D(d, x, y) BOOST_PP_MIN_D_I(d, x, y)\r
-#    define BOOST_PP_MIN_D_I(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, y, x), y, x)\r
-# endif\r
-#\r
-# endif\r
+# /* Copyright (C) 2001
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_SELECTION_MIN_HPP
+# define BOOST_PREPROCESSOR_SELECTION_MIN_HPP
+#
+# include <boost/preprocessor/comparison/less_equal.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/control/iif.hpp>
+#
+# /* BOOST_PP_MIN */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_MIN(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(y, x), y, x)
+# else
+#    define BOOST_PP_MIN(x, y) BOOST_PP_MIN_I(x, y)
+#    define BOOST_PP_MIN_I(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(y, x), y, x)
+# endif
+#
+# /* BOOST_PP_MIN_D */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_MIN_D(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, y, x), y, x)
+# else
+#    define BOOST_PP_MIN_D(d, x, y) BOOST_PP_MIN_D_I(d, x, y)
+#    define BOOST_PP_MIN_D_I(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, y, x), y, x)
+# endif
+#
+# endif
index 12dae9d5fe0d31764bdee0c3f5c35400e1ca6a0c..a26a47198fc3fd37e30f31b072fc2694081247a4 100644 (file)
@@ -1,41 +1,41 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_HPP\r
-#\r
-# include <boost/preprocessor/seq/cat.hpp>\r
-# include <boost/preprocessor/seq/elem.hpp>\r
-# include <boost/preprocessor/seq/enum.hpp>\r
-# include <boost/preprocessor/seq/filter.hpp>\r
-# include <boost/preprocessor/seq/first_n.hpp>\r
-# include <boost/preprocessor/seq/fold_left.hpp>\r
-# include <boost/preprocessor/seq/fold_right.hpp>\r
-# include <boost/preprocessor/seq/for_each.hpp>\r
-# include <boost/preprocessor/seq/for_each_i.hpp>\r
-# include <boost/preprocessor/seq/for_each_product.hpp>\r
-# include <boost/preprocessor/seq/insert.hpp>\r
-# include <boost/preprocessor/seq/pop_back.hpp>\r
-# include <boost/preprocessor/seq/pop_front.hpp>\r
-# include <boost/preprocessor/seq/push_back.hpp>\r
-# include <boost/preprocessor/seq/push_front.hpp>\r
-# include <boost/preprocessor/seq/remove.hpp>\r
-# include <boost/preprocessor/seq/replace.hpp>\r
-# include <boost/preprocessor/seq/rest_n.hpp>\r
-# include <boost/preprocessor/seq/reverse.hpp>\r
-# include <boost/preprocessor/seq/seq.hpp>\r
-# include <boost/preprocessor/seq/size.hpp>\r
-# include <boost/preprocessor/seq/subseq.hpp>\r
-# include <boost/preprocessor/seq/to_array.hpp>\r
-# include <boost/preprocessor/seq/to_tuple.hpp>\r
-# include <boost/preprocessor/seq/transform.hpp>\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_HPP
+# define BOOST_PREPROCESSOR_SEQ_HPP
+#
+# include <boost/preprocessor/seq/cat.hpp>
+# include <boost/preprocessor/seq/elem.hpp>
+# include <boost/preprocessor/seq/enum.hpp>
+# include <boost/preprocessor/seq/filter.hpp>
+# include <boost/preprocessor/seq/first_n.hpp>
+# include <boost/preprocessor/seq/fold_left.hpp>
+# include <boost/preprocessor/seq/fold_right.hpp>
+# include <boost/preprocessor/seq/for_each.hpp>
+# include <boost/preprocessor/seq/for_each_i.hpp>
+# include <boost/preprocessor/seq/for_each_product.hpp>
+# include <boost/preprocessor/seq/insert.hpp>
+# include <boost/preprocessor/seq/pop_back.hpp>
+# include <boost/preprocessor/seq/pop_front.hpp>
+# include <boost/preprocessor/seq/push_back.hpp>
+# include <boost/preprocessor/seq/push_front.hpp>
+# include <boost/preprocessor/seq/remove.hpp>
+# include <boost/preprocessor/seq/replace.hpp>
+# include <boost/preprocessor/seq/rest_n.hpp>
+# include <boost/preprocessor/seq/reverse.hpp>
+# include <boost/preprocessor/seq/seq.hpp>
+# include <boost/preprocessor/seq/size.hpp>
+# include <boost/preprocessor/seq/subseq.hpp>
+# include <boost/preprocessor/seq/to_array.hpp>
+# include <boost/preprocessor/seq/to_tuple.hpp>
+# include <boost/preprocessor/seq/transform.hpp>
+#
+# endif
index f8280d29196aa0877d7962557b5c651075d24510..0efd8e556479888bc07900a165b3c12c32659a54 100644 (file)
@@ -1,48 +1,48 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_CAT_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_CAT_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/dec.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/control/if.hpp>\r
-# include <boost/preprocessor/seq/fold_left.hpp>\r
-# include <boost/preprocessor/seq/seq.hpp>\r
-# include <boost/preprocessor/seq/size.hpp>\r
-# include <boost/preprocessor/tuple/eat.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_CAT */\r
-#\r
-# define BOOST_PP_SEQ_CAT(seq) \\r
-    BOOST_PP_IF( \\r
-        BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), \\r
-        BOOST_PP_SEQ_CAT_I, \\r
-        BOOST_PP_SEQ_HEAD(seq) BOOST_PP_TUPLE_EAT_1 \\r
-    )(seq) \\r
-    /**/\r
-# define BOOST_PP_SEQ_CAT_I(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq))\r
-#\r
-# define BOOST_PP_SEQ_CAT_O(s, st, elem) BOOST_PP_SEQ_CAT_O_I(st, elem)\r
-# define BOOST_PP_SEQ_CAT_O_I(a, b) a ## b\r
-#\r
-# /* BOOST_PP_SEQ_CAT_S */\r
-#\r
-# define BOOST_PP_SEQ_CAT_S(s, seq) \\r
-    BOOST_PP_IF( \\r
-        BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), \\r
-        BOOST_PP_SEQ_CAT_S_I, \\r
-        BOOST_PP_SEQ_HEAD(seq) BOOST_PP_TUPLE_EAT_2 \\r
-    )(s, seq) \\r
-    /**/\r
-# define BOOST_PP_SEQ_CAT_S_I(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq))\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_CAT_HPP
+# define BOOST_PREPROCESSOR_SEQ_CAT_HPP
+#
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/control/if.hpp>
+# include <boost/preprocessor/seq/fold_left.hpp>
+# include <boost/preprocessor/seq/seq.hpp>
+# include <boost/preprocessor/seq/size.hpp>
+# include <boost/preprocessor/tuple/eat.hpp>
+#
+# /* BOOST_PP_SEQ_CAT */
+#
+# define BOOST_PP_SEQ_CAT(seq) \
+    BOOST_PP_IF( \
+        BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), \
+        BOOST_PP_SEQ_CAT_I, \
+        BOOST_PP_SEQ_HEAD(seq) BOOST_PP_TUPLE_EAT_1 \
+    )(seq) \
+    /**/
+# define BOOST_PP_SEQ_CAT_I(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq))
+#
+# define BOOST_PP_SEQ_CAT_O(s, st, elem) BOOST_PP_SEQ_CAT_O_I(st, elem)
+# define BOOST_PP_SEQ_CAT_O_I(a, b) a ## b
+#
+# /* BOOST_PP_SEQ_CAT_S */
+#
+# define BOOST_PP_SEQ_CAT_S(s, seq) \
+    BOOST_PP_IF( \
+        BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), \
+        BOOST_PP_SEQ_CAT_S_I, \
+        BOOST_PP_SEQ_HEAD(seq) BOOST_PP_TUPLE_EAT_2 \
+    )(s, seq) \
+    /**/
+# define BOOST_PP_SEQ_CAT_S_I(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq))
+#
+# endif
index ada485e9f574cc23d395f3a5831b69397698af59..7c339319186cbebbd0cc076eeea51cff9888aade 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_SPLIT */\r
-#\r
-# define BOOST_PP_SEQ_SPLIT(n, seq) BOOST_PP_SEQ_SPLIT_D(n, seq)\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_SEQ_SPLIT_D(n, seq) (BOOST_PP_SEQ_SPLIT_ ## n seq)\r
-# else\r
-#    define BOOST_PP_SEQ_SPLIT_D(n, seq) (BOOST_PP_SEQ_SPLIT_ ## n ## seq)\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_SPLIT_1(x) (x),\r
-# define BOOST_PP_SEQ_SPLIT_2(x) (x) BOOST_PP_SEQ_SPLIT_1\r
-# define BOOST_PP_SEQ_SPLIT_3(x) (x) BOOST_PP_SEQ_SPLIT_2\r
-# define BOOST_PP_SEQ_SPLIT_4(x) (x) BOOST_PP_SEQ_SPLIT_3\r
-# define BOOST_PP_SEQ_SPLIT_5(x) (x) BOOST_PP_SEQ_SPLIT_4\r
-# define BOOST_PP_SEQ_SPLIT_6(x) (x) BOOST_PP_SEQ_SPLIT_5\r
-# define BOOST_PP_SEQ_SPLIT_7(x) (x) BOOST_PP_SEQ_SPLIT_6\r
-# define BOOST_PP_SEQ_SPLIT_8(x) (x) BOOST_PP_SEQ_SPLIT_7\r
-# define BOOST_PP_SEQ_SPLIT_9(x) (x) BOOST_PP_SEQ_SPLIT_8\r
-# define BOOST_PP_SEQ_SPLIT_10(x) (x) BOOST_PP_SEQ_SPLIT_9\r
-# define BOOST_PP_SEQ_SPLIT_11(x) (x) BOOST_PP_SEQ_SPLIT_10\r
-# define BOOST_PP_SEQ_SPLIT_12(x) (x) BOOST_PP_SEQ_SPLIT_11\r
-# define BOOST_PP_SEQ_SPLIT_13(x) (x) BOOST_PP_SEQ_SPLIT_12\r
-# define BOOST_PP_SEQ_SPLIT_14(x) (x) BOOST_PP_SEQ_SPLIT_13\r
-# define BOOST_PP_SEQ_SPLIT_15(x) (x) BOOST_PP_SEQ_SPLIT_14\r
-# define BOOST_PP_SEQ_SPLIT_16(x) (x) BOOST_PP_SEQ_SPLIT_15\r
-# define BOOST_PP_SEQ_SPLIT_17(x) (x) BOOST_PP_SEQ_SPLIT_16\r
-# define BOOST_PP_SEQ_SPLIT_18(x) (x) BOOST_PP_SEQ_SPLIT_17\r
-# define BOOST_PP_SEQ_SPLIT_19(x) (x) BOOST_PP_SEQ_SPLIT_18\r
-# define BOOST_PP_SEQ_SPLIT_20(x) (x) BOOST_PP_SEQ_SPLIT_19\r
-# define BOOST_PP_SEQ_SPLIT_21(x) (x) BOOST_PP_SEQ_SPLIT_20\r
-# define BOOST_PP_SEQ_SPLIT_22(x) (x) BOOST_PP_SEQ_SPLIT_21\r
-# define BOOST_PP_SEQ_SPLIT_23(x) (x) BOOST_PP_SEQ_SPLIT_22\r
-# define BOOST_PP_SEQ_SPLIT_24(x) (x) BOOST_PP_SEQ_SPLIT_23\r
-# define BOOST_PP_SEQ_SPLIT_25(x) (x) BOOST_PP_SEQ_SPLIT_24\r
-# define BOOST_PP_SEQ_SPLIT_26(x) (x) BOOST_PP_SEQ_SPLIT_25\r
-# define BOOST_PP_SEQ_SPLIT_27(x) (x) BOOST_PP_SEQ_SPLIT_26\r
-# define BOOST_PP_SEQ_SPLIT_28(x) (x) BOOST_PP_SEQ_SPLIT_27\r
-# define BOOST_PP_SEQ_SPLIT_29(x) (x) BOOST_PP_SEQ_SPLIT_28\r
-# define BOOST_PP_SEQ_SPLIT_30(x) (x) BOOST_PP_SEQ_SPLIT_29\r
-# define BOOST_PP_SEQ_SPLIT_31(x) (x) BOOST_PP_SEQ_SPLIT_30\r
-# define BOOST_PP_SEQ_SPLIT_32(x) (x) BOOST_PP_SEQ_SPLIT_31\r
-# define BOOST_PP_SEQ_SPLIT_33(x) (x) BOOST_PP_SEQ_SPLIT_32\r
-# define BOOST_PP_SEQ_SPLIT_34(x) (x) BOOST_PP_SEQ_SPLIT_33\r
-# define BOOST_PP_SEQ_SPLIT_35(x) (x) BOOST_PP_SEQ_SPLIT_34\r
-# define BOOST_PP_SEQ_SPLIT_36(x) (x) BOOST_PP_SEQ_SPLIT_35\r
-# define BOOST_PP_SEQ_SPLIT_37(x) (x) BOOST_PP_SEQ_SPLIT_36\r
-# define BOOST_PP_SEQ_SPLIT_38(x) (x) BOOST_PP_SEQ_SPLIT_37\r
-# define BOOST_PP_SEQ_SPLIT_39(x) (x) BOOST_PP_SEQ_SPLIT_38\r
-# define BOOST_PP_SEQ_SPLIT_40(x) (x) BOOST_PP_SEQ_SPLIT_39\r
-# define BOOST_PP_SEQ_SPLIT_41(x) (x) BOOST_PP_SEQ_SPLIT_40\r
-# define BOOST_PP_SEQ_SPLIT_42(x) (x) BOOST_PP_SEQ_SPLIT_41\r
-# define BOOST_PP_SEQ_SPLIT_43(x) (x) BOOST_PP_SEQ_SPLIT_42\r
-# define BOOST_PP_SEQ_SPLIT_44(x) (x) BOOST_PP_SEQ_SPLIT_43\r
-# define BOOST_PP_SEQ_SPLIT_45(x) (x) BOOST_PP_SEQ_SPLIT_44\r
-# define BOOST_PP_SEQ_SPLIT_46(x) (x) BOOST_PP_SEQ_SPLIT_45\r
-# define BOOST_PP_SEQ_SPLIT_47(x) (x) BOOST_PP_SEQ_SPLIT_46\r
-# define BOOST_PP_SEQ_SPLIT_48(x) (x) BOOST_PP_SEQ_SPLIT_47\r
-# define BOOST_PP_SEQ_SPLIT_49(x) (x) BOOST_PP_SEQ_SPLIT_48\r
-# define BOOST_PP_SEQ_SPLIT_50(x) (x) BOOST_PP_SEQ_SPLIT_49\r
-# define BOOST_PP_SEQ_SPLIT_51(x) (x) BOOST_PP_SEQ_SPLIT_50\r
-# define BOOST_PP_SEQ_SPLIT_52(x) (x) BOOST_PP_SEQ_SPLIT_51\r
-# define BOOST_PP_SEQ_SPLIT_53(x) (x) BOOST_PP_SEQ_SPLIT_52\r
-# define BOOST_PP_SEQ_SPLIT_54(x) (x) BOOST_PP_SEQ_SPLIT_53\r
-# define BOOST_PP_SEQ_SPLIT_55(x) (x) BOOST_PP_SEQ_SPLIT_54\r
-# define BOOST_PP_SEQ_SPLIT_56(x) (x) BOOST_PP_SEQ_SPLIT_55\r
-# define BOOST_PP_SEQ_SPLIT_57(x) (x) BOOST_PP_SEQ_SPLIT_56\r
-# define BOOST_PP_SEQ_SPLIT_58(x) (x) BOOST_PP_SEQ_SPLIT_57\r
-# define BOOST_PP_SEQ_SPLIT_59(x) (x) BOOST_PP_SEQ_SPLIT_58\r
-# define BOOST_PP_SEQ_SPLIT_60(x) (x) BOOST_PP_SEQ_SPLIT_59\r
-# define BOOST_PP_SEQ_SPLIT_61(x) (x) BOOST_PP_SEQ_SPLIT_60\r
-# define BOOST_PP_SEQ_SPLIT_62(x) (x) BOOST_PP_SEQ_SPLIT_61\r
-# define BOOST_PP_SEQ_SPLIT_63(x) (x) BOOST_PP_SEQ_SPLIT_62\r
-# define BOOST_PP_SEQ_SPLIT_64(x) (x) BOOST_PP_SEQ_SPLIT_63\r
-# define BOOST_PP_SEQ_SPLIT_65(x) (x) BOOST_PP_SEQ_SPLIT_64\r
-# define BOOST_PP_SEQ_SPLIT_66(x) (x) BOOST_PP_SEQ_SPLIT_65\r
-# define BOOST_PP_SEQ_SPLIT_67(x) (x) BOOST_PP_SEQ_SPLIT_66\r
-# define BOOST_PP_SEQ_SPLIT_68(x) (x) BOOST_PP_SEQ_SPLIT_67\r
-# define BOOST_PP_SEQ_SPLIT_69(x) (x) BOOST_PP_SEQ_SPLIT_68\r
-# define BOOST_PP_SEQ_SPLIT_70(x) (x) BOOST_PP_SEQ_SPLIT_69\r
-# define BOOST_PP_SEQ_SPLIT_71(x) (x) BOOST_PP_SEQ_SPLIT_70\r
-# define BOOST_PP_SEQ_SPLIT_72(x) (x) BOOST_PP_SEQ_SPLIT_71\r
-# define BOOST_PP_SEQ_SPLIT_73(x) (x) BOOST_PP_SEQ_SPLIT_72\r
-# define BOOST_PP_SEQ_SPLIT_74(x) (x) BOOST_PP_SEQ_SPLIT_73\r
-# define BOOST_PP_SEQ_SPLIT_75(x) (x) BOOST_PP_SEQ_SPLIT_74\r
-# define BOOST_PP_SEQ_SPLIT_76(x) (x) BOOST_PP_SEQ_SPLIT_75\r
-# define BOOST_PP_SEQ_SPLIT_77(x) (x) BOOST_PP_SEQ_SPLIT_76\r
-# define BOOST_PP_SEQ_SPLIT_78(x) (x) BOOST_PP_SEQ_SPLIT_77\r
-# define BOOST_PP_SEQ_SPLIT_79(x) (x) BOOST_PP_SEQ_SPLIT_78\r
-# define BOOST_PP_SEQ_SPLIT_80(x) (x) BOOST_PP_SEQ_SPLIT_79\r
-# define BOOST_PP_SEQ_SPLIT_81(x) (x) BOOST_PP_SEQ_SPLIT_80\r
-# define BOOST_PP_SEQ_SPLIT_82(x) (x) BOOST_PP_SEQ_SPLIT_81\r
-# define BOOST_PP_SEQ_SPLIT_83(x) (x) BOOST_PP_SEQ_SPLIT_82\r
-# define BOOST_PP_SEQ_SPLIT_84(x) (x) BOOST_PP_SEQ_SPLIT_83\r
-# define BOOST_PP_SEQ_SPLIT_85(x) (x) BOOST_PP_SEQ_SPLIT_84\r
-# define BOOST_PP_SEQ_SPLIT_86(x) (x) BOOST_PP_SEQ_SPLIT_85\r
-# define BOOST_PP_SEQ_SPLIT_87(x) (x) BOOST_PP_SEQ_SPLIT_86\r
-# define BOOST_PP_SEQ_SPLIT_88(x) (x) BOOST_PP_SEQ_SPLIT_87\r
-# define BOOST_PP_SEQ_SPLIT_89(x) (x) BOOST_PP_SEQ_SPLIT_88\r
-# define BOOST_PP_SEQ_SPLIT_90(x) (x) BOOST_PP_SEQ_SPLIT_89\r
-# define BOOST_PP_SEQ_SPLIT_91(x) (x) BOOST_PP_SEQ_SPLIT_90\r
-# define BOOST_PP_SEQ_SPLIT_92(x) (x) BOOST_PP_SEQ_SPLIT_91\r
-# define BOOST_PP_SEQ_SPLIT_93(x) (x) BOOST_PP_SEQ_SPLIT_92\r
-# define BOOST_PP_SEQ_SPLIT_94(x) (x) BOOST_PP_SEQ_SPLIT_93\r
-# define BOOST_PP_SEQ_SPLIT_95(x) (x) BOOST_PP_SEQ_SPLIT_94\r
-# define BOOST_PP_SEQ_SPLIT_96(x) (x) BOOST_PP_SEQ_SPLIT_95\r
-# define BOOST_PP_SEQ_SPLIT_97(x) (x) BOOST_PP_SEQ_SPLIT_96\r
-# define BOOST_PP_SEQ_SPLIT_98(x) (x) BOOST_PP_SEQ_SPLIT_97\r
-# define BOOST_PP_SEQ_SPLIT_99(x) (x) BOOST_PP_SEQ_SPLIT_98\r
-# define BOOST_PP_SEQ_SPLIT_100(x) (x) BOOST_PP_SEQ_SPLIT_99\r
-# define BOOST_PP_SEQ_SPLIT_101(x) (x) BOOST_PP_SEQ_SPLIT_100\r
-# define BOOST_PP_SEQ_SPLIT_102(x) (x) BOOST_PP_SEQ_SPLIT_101\r
-# define BOOST_PP_SEQ_SPLIT_103(x) (x) BOOST_PP_SEQ_SPLIT_102\r
-# define BOOST_PP_SEQ_SPLIT_104(x) (x) BOOST_PP_SEQ_SPLIT_103\r
-# define BOOST_PP_SEQ_SPLIT_105(x) (x) BOOST_PP_SEQ_SPLIT_104\r
-# define BOOST_PP_SEQ_SPLIT_106(x) (x) BOOST_PP_SEQ_SPLIT_105\r
-# define BOOST_PP_SEQ_SPLIT_107(x) (x) BOOST_PP_SEQ_SPLIT_106\r
-# define BOOST_PP_SEQ_SPLIT_108(x) (x) BOOST_PP_SEQ_SPLIT_107\r
-# define BOOST_PP_SEQ_SPLIT_109(x) (x) BOOST_PP_SEQ_SPLIT_108\r
-# define BOOST_PP_SEQ_SPLIT_110(x) (x) BOOST_PP_SEQ_SPLIT_109\r
-# define BOOST_PP_SEQ_SPLIT_111(x) (x) BOOST_PP_SEQ_SPLIT_110\r
-# define BOOST_PP_SEQ_SPLIT_112(x) (x) BOOST_PP_SEQ_SPLIT_111\r
-# define BOOST_PP_SEQ_SPLIT_113(x) (x) BOOST_PP_SEQ_SPLIT_112\r
-# define BOOST_PP_SEQ_SPLIT_114(x) (x) BOOST_PP_SEQ_SPLIT_113\r
-# define BOOST_PP_SEQ_SPLIT_115(x) (x) BOOST_PP_SEQ_SPLIT_114\r
-# define BOOST_PP_SEQ_SPLIT_116(x) (x) BOOST_PP_SEQ_SPLIT_115\r
-# define BOOST_PP_SEQ_SPLIT_117(x) (x) BOOST_PP_SEQ_SPLIT_116\r
-# define BOOST_PP_SEQ_SPLIT_118(x) (x) BOOST_PP_SEQ_SPLIT_117\r
-# define BOOST_PP_SEQ_SPLIT_119(x) (x) BOOST_PP_SEQ_SPLIT_118\r
-# define BOOST_PP_SEQ_SPLIT_120(x) (x) BOOST_PP_SEQ_SPLIT_119\r
-# define BOOST_PP_SEQ_SPLIT_121(x) (x) BOOST_PP_SEQ_SPLIT_120\r
-# define BOOST_PP_SEQ_SPLIT_122(x) (x) BOOST_PP_SEQ_SPLIT_121\r
-# define BOOST_PP_SEQ_SPLIT_123(x) (x) BOOST_PP_SEQ_SPLIT_122\r
-# define BOOST_PP_SEQ_SPLIT_124(x) (x) BOOST_PP_SEQ_SPLIT_123\r
-# define BOOST_PP_SEQ_SPLIT_125(x) (x) BOOST_PP_SEQ_SPLIT_124\r
-# define BOOST_PP_SEQ_SPLIT_126(x) (x) BOOST_PP_SEQ_SPLIT_125\r
-# define BOOST_PP_SEQ_SPLIT_127(x) (x) BOOST_PP_SEQ_SPLIT_126\r
-# define BOOST_PP_SEQ_SPLIT_128(x) (x) BOOST_PP_SEQ_SPLIT_127\r
-# define BOOST_PP_SEQ_SPLIT_129(x) (x) BOOST_PP_SEQ_SPLIT_128\r
-# define BOOST_PP_SEQ_SPLIT_130(x) (x) BOOST_PP_SEQ_SPLIT_129\r
-# define BOOST_PP_SEQ_SPLIT_131(x) (x) BOOST_PP_SEQ_SPLIT_130\r
-# define BOOST_PP_SEQ_SPLIT_132(x) (x) BOOST_PP_SEQ_SPLIT_131\r
-# define BOOST_PP_SEQ_SPLIT_133(x) (x) BOOST_PP_SEQ_SPLIT_132\r
-# define BOOST_PP_SEQ_SPLIT_134(x) (x) BOOST_PP_SEQ_SPLIT_133\r
-# define BOOST_PP_SEQ_SPLIT_135(x) (x) BOOST_PP_SEQ_SPLIT_134\r
-# define BOOST_PP_SEQ_SPLIT_136(x) (x) BOOST_PP_SEQ_SPLIT_135\r
-# define BOOST_PP_SEQ_SPLIT_137(x) (x) BOOST_PP_SEQ_SPLIT_136\r
-# define BOOST_PP_SEQ_SPLIT_138(x) (x) BOOST_PP_SEQ_SPLIT_137\r
-# define BOOST_PP_SEQ_SPLIT_139(x) (x) BOOST_PP_SEQ_SPLIT_138\r
-# define BOOST_PP_SEQ_SPLIT_140(x) (x) BOOST_PP_SEQ_SPLIT_139\r
-# define BOOST_PP_SEQ_SPLIT_141(x) (x) BOOST_PP_SEQ_SPLIT_140\r
-# define BOOST_PP_SEQ_SPLIT_142(x) (x) BOOST_PP_SEQ_SPLIT_141\r
-# define BOOST_PP_SEQ_SPLIT_143(x) (x) BOOST_PP_SEQ_SPLIT_142\r
-# define BOOST_PP_SEQ_SPLIT_144(x) (x) BOOST_PP_SEQ_SPLIT_143\r
-# define BOOST_PP_SEQ_SPLIT_145(x) (x) BOOST_PP_SEQ_SPLIT_144\r
-# define BOOST_PP_SEQ_SPLIT_146(x) (x) BOOST_PP_SEQ_SPLIT_145\r
-# define BOOST_PP_SEQ_SPLIT_147(x) (x) BOOST_PP_SEQ_SPLIT_146\r
-# define BOOST_PP_SEQ_SPLIT_148(x) (x) BOOST_PP_SEQ_SPLIT_147\r
-# define BOOST_PP_SEQ_SPLIT_149(x) (x) BOOST_PP_SEQ_SPLIT_148\r
-# define BOOST_PP_SEQ_SPLIT_150(x) (x) BOOST_PP_SEQ_SPLIT_149\r
-# define BOOST_PP_SEQ_SPLIT_151(x) (x) BOOST_PP_SEQ_SPLIT_150\r
-# define BOOST_PP_SEQ_SPLIT_152(x) (x) BOOST_PP_SEQ_SPLIT_151\r
-# define BOOST_PP_SEQ_SPLIT_153(x) (x) BOOST_PP_SEQ_SPLIT_152\r
-# define BOOST_PP_SEQ_SPLIT_154(x) (x) BOOST_PP_SEQ_SPLIT_153\r
-# define BOOST_PP_SEQ_SPLIT_155(x) (x) BOOST_PP_SEQ_SPLIT_154\r
-# define BOOST_PP_SEQ_SPLIT_156(x) (x) BOOST_PP_SEQ_SPLIT_155\r
-# define BOOST_PP_SEQ_SPLIT_157(x) (x) BOOST_PP_SEQ_SPLIT_156\r
-# define BOOST_PP_SEQ_SPLIT_158(x) (x) BOOST_PP_SEQ_SPLIT_157\r
-# define BOOST_PP_SEQ_SPLIT_159(x) (x) BOOST_PP_SEQ_SPLIT_158\r
-# define BOOST_PP_SEQ_SPLIT_160(x) (x) BOOST_PP_SEQ_SPLIT_159\r
-# define BOOST_PP_SEQ_SPLIT_161(x) (x) BOOST_PP_SEQ_SPLIT_160\r
-# define BOOST_PP_SEQ_SPLIT_162(x) (x) BOOST_PP_SEQ_SPLIT_161\r
-# define BOOST_PP_SEQ_SPLIT_163(x) (x) BOOST_PP_SEQ_SPLIT_162\r
-# define BOOST_PP_SEQ_SPLIT_164(x) (x) BOOST_PP_SEQ_SPLIT_163\r
-# define BOOST_PP_SEQ_SPLIT_165(x) (x) BOOST_PP_SEQ_SPLIT_164\r
-# define BOOST_PP_SEQ_SPLIT_166(x) (x) BOOST_PP_SEQ_SPLIT_165\r
-# define BOOST_PP_SEQ_SPLIT_167(x) (x) BOOST_PP_SEQ_SPLIT_166\r
-# define BOOST_PP_SEQ_SPLIT_168(x) (x) BOOST_PP_SEQ_SPLIT_167\r
-# define BOOST_PP_SEQ_SPLIT_169(x) (x) BOOST_PP_SEQ_SPLIT_168\r
-# define BOOST_PP_SEQ_SPLIT_170(x) (x) BOOST_PP_SEQ_SPLIT_169\r
-# define BOOST_PP_SEQ_SPLIT_171(x) (x) BOOST_PP_SEQ_SPLIT_170\r
-# define BOOST_PP_SEQ_SPLIT_172(x) (x) BOOST_PP_SEQ_SPLIT_171\r
-# define BOOST_PP_SEQ_SPLIT_173(x) (x) BOOST_PP_SEQ_SPLIT_172\r
-# define BOOST_PP_SEQ_SPLIT_174(x) (x) BOOST_PP_SEQ_SPLIT_173\r
-# define BOOST_PP_SEQ_SPLIT_175(x) (x) BOOST_PP_SEQ_SPLIT_174\r
-# define BOOST_PP_SEQ_SPLIT_176(x) (x) BOOST_PP_SEQ_SPLIT_175\r
-# define BOOST_PP_SEQ_SPLIT_177(x) (x) BOOST_PP_SEQ_SPLIT_176\r
-# define BOOST_PP_SEQ_SPLIT_178(x) (x) BOOST_PP_SEQ_SPLIT_177\r
-# define BOOST_PP_SEQ_SPLIT_179(x) (x) BOOST_PP_SEQ_SPLIT_178\r
-# define BOOST_PP_SEQ_SPLIT_180(x) (x) BOOST_PP_SEQ_SPLIT_179\r
-# define BOOST_PP_SEQ_SPLIT_181(x) (x) BOOST_PP_SEQ_SPLIT_180\r
-# define BOOST_PP_SEQ_SPLIT_182(x) (x) BOOST_PP_SEQ_SPLIT_181\r
-# define BOOST_PP_SEQ_SPLIT_183(x) (x) BOOST_PP_SEQ_SPLIT_182\r
-# define BOOST_PP_SEQ_SPLIT_184(x) (x) BOOST_PP_SEQ_SPLIT_183\r
-# define BOOST_PP_SEQ_SPLIT_185(x) (x) BOOST_PP_SEQ_SPLIT_184\r
-# define BOOST_PP_SEQ_SPLIT_186(x) (x) BOOST_PP_SEQ_SPLIT_185\r
-# define BOOST_PP_SEQ_SPLIT_187(x) (x) BOOST_PP_SEQ_SPLIT_186\r
-# define BOOST_PP_SEQ_SPLIT_188(x) (x) BOOST_PP_SEQ_SPLIT_187\r
-# define BOOST_PP_SEQ_SPLIT_189(x) (x) BOOST_PP_SEQ_SPLIT_188\r
-# define BOOST_PP_SEQ_SPLIT_190(x) (x) BOOST_PP_SEQ_SPLIT_189\r
-# define BOOST_PP_SEQ_SPLIT_191(x) (x) BOOST_PP_SEQ_SPLIT_190\r
-# define BOOST_PP_SEQ_SPLIT_192(x) (x) BOOST_PP_SEQ_SPLIT_191\r
-# define BOOST_PP_SEQ_SPLIT_193(x) (x) BOOST_PP_SEQ_SPLIT_192\r
-# define BOOST_PP_SEQ_SPLIT_194(x) (x) BOOST_PP_SEQ_SPLIT_193\r
-# define BOOST_PP_SEQ_SPLIT_195(x) (x) BOOST_PP_SEQ_SPLIT_194\r
-# define BOOST_PP_SEQ_SPLIT_196(x) (x) BOOST_PP_SEQ_SPLIT_195\r
-# define BOOST_PP_SEQ_SPLIT_197(x) (x) BOOST_PP_SEQ_SPLIT_196\r
-# define BOOST_PP_SEQ_SPLIT_198(x) (x) BOOST_PP_SEQ_SPLIT_197\r
-# define BOOST_PP_SEQ_SPLIT_199(x) (x) BOOST_PP_SEQ_SPLIT_198\r
-# define BOOST_PP_SEQ_SPLIT_200(x) (x) BOOST_PP_SEQ_SPLIT_199\r
-# define BOOST_PP_SEQ_SPLIT_201(x) (x) BOOST_PP_SEQ_SPLIT_200\r
-# define BOOST_PP_SEQ_SPLIT_202(x) (x) BOOST_PP_SEQ_SPLIT_201\r
-# define BOOST_PP_SEQ_SPLIT_203(x) (x) BOOST_PP_SEQ_SPLIT_202\r
-# define BOOST_PP_SEQ_SPLIT_204(x) (x) BOOST_PP_SEQ_SPLIT_203\r
-# define BOOST_PP_SEQ_SPLIT_205(x) (x) BOOST_PP_SEQ_SPLIT_204\r
-# define BOOST_PP_SEQ_SPLIT_206(x) (x) BOOST_PP_SEQ_SPLIT_205\r
-# define BOOST_PP_SEQ_SPLIT_207(x) (x) BOOST_PP_SEQ_SPLIT_206\r
-# define BOOST_PP_SEQ_SPLIT_208(x) (x) BOOST_PP_SEQ_SPLIT_207\r
-# define BOOST_PP_SEQ_SPLIT_209(x) (x) BOOST_PP_SEQ_SPLIT_208\r
-# define BOOST_PP_SEQ_SPLIT_210(x) (x) BOOST_PP_SEQ_SPLIT_209\r
-# define BOOST_PP_SEQ_SPLIT_211(x) (x) BOOST_PP_SEQ_SPLIT_210\r
-# define BOOST_PP_SEQ_SPLIT_212(x) (x) BOOST_PP_SEQ_SPLIT_211\r
-# define BOOST_PP_SEQ_SPLIT_213(x) (x) BOOST_PP_SEQ_SPLIT_212\r
-# define BOOST_PP_SEQ_SPLIT_214(x) (x) BOOST_PP_SEQ_SPLIT_213\r
-# define BOOST_PP_SEQ_SPLIT_215(x) (x) BOOST_PP_SEQ_SPLIT_214\r
-# define BOOST_PP_SEQ_SPLIT_216(x) (x) BOOST_PP_SEQ_SPLIT_215\r
-# define BOOST_PP_SEQ_SPLIT_217(x) (x) BOOST_PP_SEQ_SPLIT_216\r
-# define BOOST_PP_SEQ_SPLIT_218(x) (x) BOOST_PP_SEQ_SPLIT_217\r
-# define BOOST_PP_SEQ_SPLIT_219(x) (x) BOOST_PP_SEQ_SPLIT_218\r
-# define BOOST_PP_SEQ_SPLIT_220(x) (x) BOOST_PP_SEQ_SPLIT_219\r
-# define BOOST_PP_SEQ_SPLIT_221(x) (x) BOOST_PP_SEQ_SPLIT_220\r
-# define BOOST_PP_SEQ_SPLIT_222(x) (x) BOOST_PP_SEQ_SPLIT_221\r
-# define BOOST_PP_SEQ_SPLIT_223(x) (x) BOOST_PP_SEQ_SPLIT_222\r
-# define BOOST_PP_SEQ_SPLIT_224(x) (x) BOOST_PP_SEQ_SPLIT_223\r
-# define BOOST_PP_SEQ_SPLIT_225(x) (x) BOOST_PP_SEQ_SPLIT_224\r
-# define BOOST_PP_SEQ_SPLIT_226(x) (x) BOOST_PP_SEQ_SPLIT_225\r
-# define BOOST_PP_SEQ_SPLIT_227(x) (x) BOOST_PP_SEQ_SPLIT_226\r
-# define BOOST_PP_SEQ_SPLIT_228(x) (x) BOOST_PP_SEQ_SPLIT_227\r
-# define BOOST_PP_SEQ_SPLIT_229(x) (x) BOOST_PP_SEQ_SPLIT_228\r
-# define BOOST_PP_SEQ_SPLIT_230(x) (x) BOOST_PP_SEQ_SPLIT_229\r
-# define BOOST_PP_SEQ_SPLIT_231(x) (x) BOOST_PP_SEQ_SPLIT_230\r
-# define BOOST_PP_SEQ_SPLIT_232(x) (x) BOOST_PP_SEQ_SPLIT_231\r
-# define BOOST_PP_SEQ_SPLIT_233(x) (x) BOOST_PP_SEQ_SPLIT_232\r
-# define BOOST_PP_SEQ_SPLIT_234(x) (x) BOOST_PP_SEQ_SPLIT_233\r
-# define BOOST_PP_SEQ_SPLIT_235(x) (x) BOOST_PP_SEQ_SPLIT_234\r
-# define BOOST_PP_SEQ_SPLIT_236(x) (x) BOOST_PP_SEQ_SPLIT_235\r
-# define BOOST_PP_SEQ_SPLIT_237(x) (x) BOOST_PP_SEQ_SPLIT_236\r
-# define BOOST_PP_SEQ_SPLIT_238(x) (x) BOOST_PP_SEQ_SPLIT_237\r
-# define BOOST_PP_SEQ_SPLIT_239(x) (x) BOOST_PP_SEQ_SPLIT_238\r
-# define BOOST_PP_SEQ_SPLIT_240(x) (x) BOOST_PP_SEQ_SPLIT_239\r
-# define BOOST_PP_SEQ_SPLIT_241(x) (x) BOOST_PP_SEQ_SPLIT_240\r
-# define BOOST_PP_SEQ_SPLIT_242(x) (x) BOOST_PP_SEQ_SPLIT_241\r
-# define BOOST_PP_SEQ_SPLIT_243(x) (x) BOOST_PP_SEQ_SPLIT_242\r
-# define BOOST_PP_SEQ_SPLIT_244(x) (x) BOOST_PP_SEQ_SPLIT_243\r
-# define BOOST_PP_SEQ_SPLIT_245(x) (x) BOOST_PP_SEQ_SPLIT_244\r
-# define BOOST_PP_SEQ_SPLIT_246(x) (x) BOOST_PP_SEQ_SPLIT_245\r
-# define BOOST_PP_SEQ_SPLIT_247(x) (x) BOOST_PP_SEQ_SPLIT_246\r
-# define BOOST_PP_SEQ_SPLIT_248(x) (x) BOOST_PP_SEQ_SPLIT_247\r
-# define BOOST_PP_SEQ_SPLIT_249(x) (x) BOOST_PP_SEQ_SPLIT_248\r
-# define BOOST_PP_SEQ_SPLIT_250(x) (x) BOOST_PP_SEQ_SPLIT_249\r
-# define BOOST_PP_SEQ_SPLIT_251(x) (x) BOOST_PP_SEQ_SPLIT_250\r
-# define BOOST_PP_SEQ_SPLIT_252(x) (x) BOOST_PP_SEQ_SPLIT_251\r
-# define BOOST_PP_SEQ_SPLIT_253(x) (x) BOOST_PP_SEQ_SPLIT_252\r
-# define BOOST_PP_SEQ_SPLIT_254(x) (x) BOOST_PP_SEQ_SPLIT_253\r
-# define BOOST_PP_SEQ_SPLIT_255(x) (x) BOOST_PP_SEQ_SPLIT_254\r
-# define BOOST_PP_SEQ_SPLIT_256(x) (x) BOOST_PP_SEQ_SPLIT_255\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP
+# define BOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+#
+# /* BOOST_PP_SEQ_SPLIT */
+#
+# define BOOST_PP_SEQ_SPLIT(n, seq) BOOST_PP_SEQ_SPLIT_D(n, seq)
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_SEQ_SPLIT_D(n, seq) (BOOST_PP_SEQ_SPLIT_ ## n seq)
+# else
+#    define BOOST_PP_SEQ_SPLIT_D(n, seq) (BOOST_PP_SEQ_SPLIT_ ## n ## seq)
+# endif
+#
+# define BOOST_PP_SEQ_SPLIT_1(x) (x),
+# define BOOST_PP_SEQ_SPLIT_2(x) (x) BOOST_PP_SEQ_SPLIT_1
+# define BOOST_PP_SEQ_SPLIT_3(x) (x) BOOST_PP_SEQ_SPLIT_2
+# define BOOST_PP_SEQ_SPLIT_4(x) (x) BOOST_PP_SEQ_SPLIT_3
+# define BOOST_PP_SEQ_SPLIT_5(x) (x) BOOST_PP_SEQ_SPLIT_4
+# define BOOST_PP_SEQ_SPLIT_6(x) (x) BOOST_PP_SEQ_SPLIT_5
+# define BOOST_PP_SEQ_SPLIT_7(x) (x) BOOST_PP_SEQ_SPLIT_6
+# define BOOST_PP_SEQ_SPLIT_8(x) (x) BOOST_PP_SEQ_SPLIT_7
+# define BOOST_PP_SEQ_SPLIT_9(x) (x) BOOST_PP_SEQ_SPLIT_8
+# define BOOST_PP_SEQ_SPLIT_10(x) (x) BOOST_PP_SEQ_SPLIT_9
+# define BOOST_PP_SEQ_SPLIT_11(x) (x) BOOST_PP_SEQ_SPLIT_10
+# define BOOST_PP_SEQ_SPLIT_12(x) (x) BOOST_PP_SEQ_SPLIT_11
+# define BOOST_PP_SEQ_SPLIT_13(x) (x) BOOST_PP_SEQ_SPLIT_12
+# define BOOST_PP_SEQ_SPLIT_14(x) (x) BOOST_PP_SEQ_SPLIT_13
+# define BOOST_PP_SEQ_SPLIT_15(x) (x) BOOST_PP_SEQ_SPLIT_14
+# define BOOST_PP_SEQ_SPLIT_16(x) (x) BOOST_PP_SEQ_SPLIT_15
+# define BOOST_PP_SEQ_SPLIT_17(x) (x) BOOST_PP_SEQ_SPLIT_16
+# define BOOST_PP_SEQ_SPLIT_18(x) (x) BOOST_PP_SEQ_SPLIT_17
+# define BOOST_PP_SEQ_SPLIT_19(x) (x) BOOST_PP_SEQ_SPLIT_18
+# define BOOST_PP_SEQ_SPLIT_20(x) (x) BOOST_PP_SEQ_SPLIT_19
+# define BOOST_PP_SEQ_SPLIT_21(x) (x) BOOST_PP_SEQ_SPLIT_20
+# define BOOST_PP_SEQ_SPLIT_22(x) (x) BOOST_PP_SEQ_SPLIT_21
+# define BOOST_PP_SEQ_SPLIT_23(x) (x) BOOST_PP_SEQ_SPLIT_22
+# define BOOST_PP_SEQ_SPLIT_24(x) (x) BOOST_PP_SEQ_SPLIT_23
+# define BOOST_PP_SEQ_SPLIT_25(x) (x) BOOST_PP_SEQ_SPLIT_24
+# define BOOST_PP_SEQ_SPLIT_26(x) (x) BOOST_PP_SEQ_SPLIT_25
+# define BOOST_PP_SEQ_SPLIT_27(x) (x) BOOST_PP_SEQ_SPLIT_26
+# define BOOST_PP_SEQ_SPLIT_28(x) (x) BOOST_PP_SEQ_SPLIT_27
+# define BOOST_PP_SEQ_SPLIT_29(x) (x) BOOST_PP_SEQ_SPLIT_28
+# define BOOST_PP_SEQ_SPLIT_30(x) (x) BOOST_PP_SEQ_SPLIT_29
+# define BOOST_PP_SEQ_SPLIT_31(x) (x) BOOST_PP_SEQ_SPLIT_30
+# define BOOST_PP_SEQ_SPLIT_32(x) (x) BOOST_PP_SEQ_SPLIT_31
+# define BOOST_PP_SEQ_SPLIT_33(x) (x) BOOST_PP_SEQ_SPLIT_32
+# define BOOST_PP_SEQ_SPLIT_34(x) (x) BOOST_PP_SEQ_SPLIT_33
+# define BOOST_PP_SEQ_SPLIT_35(x) (x) BOOST_PP_SEQ_SPLIT_34
+# define BOOST_PP_SEQ_SPLIT_36(x) (x) BOOST_PP_SEQ_SPLIT_35
+# define BOOST_PP_SEQ_SPLIT_37(x) (x) BOOST_PP_SEQ_SPLIT_36
+# define BOOST_PP_SEQ_SPLIT_38(x) (x) BOOST_PP_SEQ_SPLIT_37
+# define BOOST_PP_SEQ_SPLIT_39(x) (x) BOOST_PP_SEQ_SPLIT_38
+# define BOOST_PP_SEQ_SPLIT_40(x) (x) BOOST_PP_SEQ_SPLIT_39
+# define BOOST_PP_SEQ_SPLIT_41(x) (x) BOOST_PP_SEQ_SPLIT_40
+# define BOOST_PP_SEQ_SPLIT_42(x) (x) BOOST_PP_SEQ_SPLIT_41
+# define BOOST_PP_SEQ_SPLIT_43(x) (x) BOOST_PP_SEQ_SPLIT_42
+# define BOOST_PP_SEQ_SPLIT_44(x) (x) BOOST_PP_SEQ_SPLIT_43
+# define BOOST_PP_SEQ_SPLIT_45(x) (x) BOOST_PP_SEQ_SPLIT_44
+# define BOOST_PP_SEQ_SPLIT_46(x) (x) BOOST_PP_SEQ_SPLIT_45
+# define BOOST_PP_SEQ_SPLIT_47(x) (x) BOOST_PP_SEQ_SPLIT_46
+# define BOOST_PP_SEQ_SPLIT_48(x) (x) BOOST_PP_SEQ_SPLIT_47
+# define BOOST_PP_SEQ_SPLIT_49(x) (x) BOOST_PP_SEQ_SPLIT_48
+# define BOOST_PP_SEQ_SPLIT_50(x) (x) BOOST_PP_SEQ_SPLIT_49
+# define BOOST_PP_SEQ_SPLIT_51(x) (x) BOOST_PP_SEQ_SPLIT_50
+# define BOOST_PP_SEQ_SPLIT_52(x) (x) BOOST_PP_SEQ_SPLIT_51
+# define BOOST_PP_SEQ_SPLIT_53(x) (x) BOOST_PP_SEQ_SPLIT_52
+# define BOOST_PP_SEQ_SPLIT_54(x) (x) BOOST_PP_SEQ_SPLIT_53
+# define BOOST_PP_SEQ_SPLIT_55(x) (x) BOOST_PP_SEQ_SPLIT_54
+# define BOOST_PP_SEQ_SPLIT_56(x) (x) BOOST_PP_SEQ_SPLIT_55
+# define BOOST_PP_SEQ_SPLIT_57(x) (x) BOOST_PP_SEQ_SPLIT_56
+# define BOOST_PP_SEQ_SPLIT_58(x) (x) BOOST_PP_SEQ_SPLIT_57
+# define BOOST_PP_SEQ_SPLIT_59(x) (x) BOOST_PP_SEQ_SPLIT_58
+# define BOOST_PP_SEQ_SPLIT_60(x) (x) BOOST_PP_SEQ_SPLIT_59
+# define BOOST_PP_SEQ_SPLIT_61(x) (x) BOOST_PP_SEQ_SPLIT_60
+# define BOOST_PP_SEQ_SPLIT_62(x) (x) BOOST_PP_SEQ_SPLIT_61
+# define BOOST_PP_SEQ_SPLIT_63(x) (x) BOOST_PP_SEQ_SPLIT_62
+# define BOOST_PP_SEQ_SPLIT_64(x) (x) BOOST_PP_SEQ_SPLIT_63
+# define BOOST_PP_SEQ_SPLIT_65(x) (x) BOOST_PP_SEQ_SPLIT_64
+# define BOOST_PP_SEQ_SPLIT_66(x) (x) BOOST_PP_SEQ_SPLIT_65
+# define BOOST_PP_SEQ_SPLIT_67(x) (x) BOOST_PP_SEQ_SPLIT_66
+# define BOOST_PP_SEQ_SPLIT_68(x) (x) BOOST_PP_SEQ_SPLIT_67
+# define BOOST_PP_SEQ_SPLIT_69(x) (x) BOOST_PP_SEQ_SPLIT_68
+# define BOOST_PP_SEQ_SPLIT_70(x) (x) BOOST_PP_SEQ_SPLIT_69
+# define BOOST_PP_SEQ_SPLIT_71(x) (x) BOOST_PP_SEQ_SPLIT_70
+# define BOOST_PP_SEQ_SPLIT_72(x) (x) BOOST_PP_SEQ_SPLIT_71
+# define BOOST_PP_SEQ_SPLIT_73(x) (x) BOOST_PP_SEQ_SPLIT_72
+# define BOOST_PP_SEQ_SPLIT_74(x) (x) BOOST_PP_SEQ_SPLIT_73
+# define BOOST_PP_SEQ_SPLIT_75(x) (x) BOOST_PP_SEQ_SPLIT_74
+# define BOOST_PP_SEQ_SPLIT_76(x) (x) BOOST_PP_SEQ_SPLIT_75
+# define BOOST_PP_SEQ_SPLIT_77(x) (x) BOOST_PP_SEQ_SPLIT_76
+# define BOOST_PP_SEQ_SPLIT_78(x) (x) BOOST_PP_SEQ_SPLIT_77
+# define BOOST_PP_SEQ_SPLIT_79(x) (x) BOOST_PP_SEQ_SPLIT_78
+# define BOOST_PP_SEQ_SPLIT_80(x) (x) BOOST_PP_SEQ_SPLIT_79
+# define BOOST_PP_SEQ_SPLIT_81(x) (x) BOOST_PP_SEQ_SPLIT_80
+# define BOOST_PP_SEQ_SPLIT_82(x) (x) BOOST_PP_SEQ_SPLIT_81
+# define BOOST_PP_SEQ_SPLIT_83(x) (x) BOOST_PP_SEQ_SPLIT_82
+# define BOOST_PP_SEQ_SPLIT_84(x) (x) BOOST_PP_SEQ_SPLIT_83
+# define BOOST_PP_SEQ_SPLIT_85(x) (x) BOOST_PP_SEQ_SPLIT_84
+# define BOOST_PP_SEQ_SPLIT_86(x) (x) BOOST_PP_SEQ_SPLIT_85
+# define BOOST_PP_SEQ_SPLIT_87(x) (x) BOOST_PP_SEQ_SPLIT_86
+# define BOOST_PP_SEQ_SPLIT_88(x) (x) BOOST_PP_SEQ_SPLIT_87
+# define BOOST_PP_SEQ_SPLIT_89(x) (x) BOOST_PP_SEQ_SPLIT_88
+# define BOOST_PP_SEQ_SPLIT_90(x) (x) BOOST_PP_SEQ_SPLIT_89
+# define BOOST_PP_SEQ_SPLIT_91(x) (x) BOOST_PP_SEQ_SPLIT_90
+# define BOOST_PP_SEQ_SPLIT_92(x) (x) BOOST_PP_SEQ_SPLIT_91
+# define BOOST_PP_SEQ_SPLIT_93(x) (x) BOOST_PP_SEQ_SPLIT_92
+# define BOOST_PP_SEQ_SPLIT_94(x) (x) BOOST_PP_SEQ_SPLIT_93
+# define BOOST_PP_SEQ_SPLIT_95(x) (x) BOOST_PP_SEQ_SPLIT_94
+# define BOOST_PP_SEQ_SPLIT_96(x) (x) BOOST_PP_SEQ_SPLIT_95
+# define BOOST_PP_SEQ_SPLIT_97(x) (x) BOOST_PP_SEQ_SPLIT_96
+# define BOOST_PP_SEQ_SPLIT_98(x) (x) BOOST_PP_SEQ_SPLIT_97
+# define BOOST_PP_SEQ_SPLIT_99(x) (x) BOOST_PP_SEQ_SPLIT_98
+# define BOOST_PP_SEQ_SPLIT_100(x) (x) BOOST_PP_SEQ_SPLIT_99
+# define BOOST_PP_SEQ_SPLIT_101(x) (x) BOOST_PP_SEQ_SPLIT_100
+# define BOOST_PP_SEQ_SPLIT_102(x) (x) BOOST_PP_SEQ_SPLIT_101
+# define BOOST_PP_SEQ_SPLIT_103(x) (x) BOOST_PP_SEQ_SPLIT_102
+# define BOOST_PP_SEQ_SPLIT_104(x) (x) BOOST_PP_SEQ_SPLIT_103
+# define BOOST_PP_SEQ_SPLIT_105(x) (x) BOOST_PP_SEQ_SPLIT_104
+# define BOOST_PP_SEQ_SPLIT_106(x) (x) BOOST_PP_SEQ_SPLIT_105
+# define BOOST_PP_SEQ_SPLIT_107(x) (x) BOOST_PP_SEQ_SPLIT_106
+# define BOOST_PP_SEQ_SPLIT_108(x) (x) BOOST_PP_SEQ_SPLIT_107
+# define BOOST_PP_SEQ_SPLIT_109(x) (x) BOOST_PP_SEQ_SPLIT_108
+# define BOOST_PP_SEQ_SPLIT_110(x) (x) BOOST_PP_SEQ_SPLIT_109
+# define BOOST_PP_SEQ_SPLIT_111(x) (x) BOOST_PP_SEQ_SPLIT_110
+# define BOOST_PP_SEQ_SPLIT_112(x) (x) BOOST_PP_SEQ_SPLIT_111
+# define BOOST_PP_SEQ_SPLIT_113(x) (x) BOOST_PP_SEQ_SPLIT_112
+# define BOOST_PP_SEQ_SPLIT_114(x) (x) BOOST_PP_SEQ_SPLIT_113
+# define BOOST_PP_SEQ_SPLIT_115(x) (x) BOOST_PP_SEQ_SPLIT_114
+# define BOOST_PP_SEQ_SPLIT_116(x) (x) BOOST_PP_SEQ_SPLIT_115
+# define BOOST_PP_SEQ_SPLIT_117(x) (x) BOOST_PP_SEQ_SPLIT_116
+# define BOOST_PP_SEQ_SPLIT_118(x) (x) BOOST_PP_SEQ_SPLIT_117
+# define BOOST_PP_SEQ_SPLIT_119(x) (x) BOOST_PP_SEQ_SPLIT_118
+# define BOOST_PP_SEQ_SPLIT_120(x) (x) BOOST_PP_SEQ_SPLIT_119
+# define BOOST_PP_SEQ_SPLIT_121(x) (x) BOOST_PP_SEQ_SPLIT_120
+# define BOOST_PP_SEQ_SPLIT_122(x) (x) BOOST_PP_SEQ_SPLIT_121
+# define BOOST_PP_SEQ_SPLIT_123(x) (x) BOOST_PP_SEQ_SPLIT_122
+# define BOOST_PP_SEQ_SPLIT_124(x) (x) BOOST_PP_SEQ_SPLIT_123
+# define BOOST_PP_SEQ_SPLIT_125(x) (x) BOOST_PP_SEQ_SPLIT_124
+# define BOOST_PP_SEQ_SPLIT_126(x) (x) BOOST_PP_SEQ_SPLIT_125
+# define BOOST_PP_SEQ_SPLIT_127(x) (x) BOOST_PP_SEQ_SPLIT_126
+# define BOOST_PP_SEQ_SPLIT_128(x) (x) BOOST_PP_SEQ_SPLIT_127
+# define BOOST_PP_SEQ_SPLIT_129(x) (x) BOOST_PP_SEQ_SPLIT_128
+# define BOOST_PP_SEQ_SPLIT_130(x) (x) BOOST_PP_SEQ_SPLIT_129
+# define BOOST_PP_SEQ_SPLIT_131(x) (x) BOOST_PP_SEQ_SPLIT_130
+# define BOOST_PP_SEQ_SPLIT_132(x) (x) BOOST_PP_SEQ_SPLIT_131
+# define BOOST_PP_SEQ_SPLIT_133(x) (x) BOOST_PP_SEQ_SPLIT_132
+# define BOOST_PP_SEQ_SPLIT_134(x) (x) BOOST_PP_SEQ_SPLIT_133
+# define BOOST_PP_SEQ_SPLIT_135(x) (x) BOOST_PP_SEQ_SPLIT_134
+# define BOOST_PP_SEQ_SPLIT_136(x) (x) BOOST_PP_SEQ_SPLIT_135
+# define BOOST_PP_SEQ_SPLIT_137(x) (x) BOOST_PP_SEQ_SPLIT_136
+# define BOOST_PP_SEQ_SPLIT_138(x) (x) BOOST_PP_SEQ_SPLIT_137
+# define BOOST_PP_SEQ_SPLIT_139(x) (x) BOOST_PP_SEQ_SPLIT_138
+# define BOOST_PP_SEQ_SPLIT_140(x) (x) BOOST_PP_SEQ_SPLIT_139
+# define BOOST_PP_SEQ_SPLIT_141(x) (x) BOOST_PP_SEQ_SPLIT_140
+# define BOOST_PP_SEQ_SPLIT_142(x) (x) BOOST_PP_SEQ_SPLIT_141
+# define BOOST_PP_SEQ_SPLIT_143(x) (x) BOOST_PP_SEQ_SPLIT_142
+# define BOOST_PP_SEQ_SPLIT_144(x) (x) BOOST_PP_SEQ_SPLIT_143
+# define BOOST_PP_SEQ_SPLIT_145(x) (x) BOOST_PP_SEQ_SPLIT_144
+# define BOOST_PP_SEQ_SPLIT_146(x) (x) BOOST_PP_SEQ_SPLIT_145
+# define BOOST_PP_SEQ_SPLIT_147(x) (x) BOOST_PP_SEQ_SPLIT_146
+# define BOOST_PP_SEQ_SPLIT_148(x) (x) BOOST_PP_SEQ_SPLIT_147
+# define BOOST_PP_SEQ_SPLIT_149(x) (x) BOOST_PP_SEQ_SPLIT_148
+# define BOOST_PP_SEQ_SPLIT_150(x) (x) BOOST_PP_SEQ_SPLIT_149
+# define BOOST_PP_SEQ_SPLIT_151(x) (x) BOOST_PP_SEQ_SPLIT_150
+# define BOOST_PP_SEQ_SPLIT_152(x) (x) BOOST_PP_SEQ_SPLIT_151
+# define BOOST_PP_SEQ_SPLIT_153(x) (x) BOOST_PP_SEQ_SPLIT_152
+# define BOOST_PP_SEQ_SPLIT_154(x) (x) BOOST_PP_SEQ_SPLIT_153
+# define BOOST_PP_SEQ_SPLIT_155(x) (x) BOOST_PP_SEQ_SPLIT_154
+# define BOOST_PP_SEQ_SPLIT_156(x) (x) BOOST_PP_SEQ_SPLIT_155
+# define BOOST_PP_SEQ_SPLIT_157(x) (x) BOOST_PP_SEQ_SPLIT_156
+# define BOOST_PP_SEQ_SPLIT_158(x) (x) BOOST_PP_SEQ_SPLIT_157
+# define BOOST_PP_SEQ_SPLIT_159(x) (x) BOOST_PP_SEQ_SPLIT_158
+# define BOOST_PP_SEQ_SPLIT_160(x) (x) BOOST_PP_SEQ_SPLIT_159
+# define BOOST_PP_SEQ_SPLIT_161(x) (x) BOOST_PP_SEQ_SPLIT_160
+# define BOOST_PP_SEQ_SPLIT_162(x) (x) BOOST_PP_SEQ_SPLIT_161
+# define BOOST_PP_SEQ_SPLIT_163(x) (x) BOOST_PP_SEQ_SPLIT_162
+# define BOOST_PP_SEQ_SPLIT_164(x) (x) BOOST_PP_SEQ_SPLIT_163
+# define BOOST_PP_SEQ_SPLIT_165(x) (x) BOOST_PP_SEQ_SPLIT_164
+# define BOOST_PP_SEQ_SPLIT_166(x) (x) BOOST_PP_SEQ_SPLIT_165
+# define BOOST_PP_SEQ_SPLIT_167(x) (x) BOOST_PP_SEQ_SPLIT_166
+# define BOOST_PP_SEQ_SPLIT_168(x) (x) BOOST_PP_SEQ_SPLIT_167
+# define BOOST_PP_SEQ_SPLIT_169(x) (x) BOOST_PP_SEQ_SPLIT_168
+# define BOOST_PP_SEQ_SPLIT_170(x) (x) BOOST_PP_SEQ_SPLIT_169
+# define BOOST_PP_SEQ_SPLIT_171(x) (x) BOOST_PP_SEQ_SPLIT_170
+# define BOOST_PP_SEQ_SPLIT_172(x) (x) BOOST_PP_SEQ_SPLIT_171
+# define BOOST_PP_SEQ_SPLIT_173(x) (x) BOOST_PP_SEQ_SPLIT_172
+# define BOOST_PP_SEQ_SPLIT_174(x) (x) BOOST_PP_SEQ_SPLIT_173
+# define BOOST_PP_SEQ_SPLIT_175(x) (x) BOOST_PP_SEQ_SPLIT_174
+# define BOOST_PP_SEQ_SPLIT_176(x) (x) BOOST_PP_SEQ_SPLIT_175
+# define BOOST_PP_SEQ_SPLIT_177(x) (x) BOOST_PP_SEQ_SPLIT_176
+# define BOOST_PP_SEQ_SPLIT_178(x) (x) BOOST_PP_SEQ_SPLIT_177
+# define BOOST_PP_SEQ_SPLIT_179(x) (x) BOOST_PP_SEQ_SPLIT_178
+# define BOOST_PP_SEQ_SPLIT_180(x) (x) BOOST_PP_SEQ_SPLIT_179
+# define BOOST_PP_SEQ_SPLIT_181(x) (x) BOOST_PP_SEQ_SPLIT_180
+# define BOOST_PP_SEQ_SPLIT_182(x) (x) BOOST_PP_SEQ_SPLIT_181
+# define BOOST_PP_SEQ_SPLIT_183(x) (x) BOOST_PP_SEQ_SPLIT_182
+# define BOOST_PP_SEQ_SPLIT_184(x) (x) BOOST_PP_SEQ_SPLIT_183
+# define BOOST_PP_SEQ_SPLIT_185(x) (x) BOOST_PP_SEQ_SPLIT_184
+# define BOOST_PP_SEQ_SPLIT_186(x) (x) BOOST_PP_SEQ_SPLIT_185
+# define BOOST_PP_SEQ_SPLIT_187(x) (x) BOOST_PP_SEQ_SPLIT_186
+# define BOOST_PP_SEQ_SPLIT_188(x) (x) BOOST_PP_SEQ_SPLIT_187
+# define BOOST_PP_SEQ_SPLIT_189(x) (x) BOOST_PP_SEQ_SPLIT_188
+# define BOOST_PP_SEQ_SPLIT_190(x) (x) BOOST_PP_SEQ_SPLIT_189
+# define BOOST_PP_SEQ_SPLIT_191(x) (x) BOOST_PP_SEQ_SPLIT_190
+# define BOOST_PP_SEQ_SPLIT_192(x) (x) BOOST_PP_SEQ_SPLIT_191
+# define BOOST_PP_SEQ_SPLIT_193(x) (x) BOOST_PP_SEQ_SPLIT_192
+# define BOOST_PP_SEQ_SPLIT_194(x) (x) BOOST_PP_SEQ_SPLIT_193
+# define BOOST_PP_SEQ_SPLIT_195(x) (x) BOOST_PP_SEQ_SPLIT_194
+# define BOOST_PP_SEQ_SPLIT_196(x) (x) BOOST_PP_SEQ_SPLIT_195
+# define BOOST_PP_SEQ_SPLIT_197(x) (x) BOOST_PP_SEQ_SPLIT_196
+# define BOOST_PP_SEQ_SPLIT_198(x) (x) BOOST_PP_SEQ_SPLIT_197
+# define BOOST_PP_SEQ_SPLIT_199(x) (x) BOOST_PP_SEQ_SPLIT_198
+# define BOOST_PP_SEQ_SPLIT_200(x) (x) BOOST_PP_SEQ_SPLIT_199
+# define BOOST_PP_SEQ_SPLIT_201(x) (x) BOOST_PP_SEQ_SPLIT_200
+# define BOOST_PP_SEQ_SPLIT_202(x) (x) BOOST_PP_SEQ_SPLIT_201
+# define BOOST_PP_SEQ_SPLIT_203(x) (x) BOOST_PP_SEQ_SPLIT_202
+# define BOOST_PP_SEQ_SPLIT_204(x) (x) BOOST_PP_SEQ_SPLIT_203
+# define BOOST_PP_SEQ_SPLIT_205(x) (x) BOOST_PP_SEQ_SPLIT_204
+# define BOOST_PP_SEQ_SPLIT_206(x) (x) BOOST_PP_SEQ_SPLIT_205
+# define BOOST_PP_SEQ_SPLIT_207(x) (x) BOOST_PP_SEQ_SPLIT_206
+# define BOOST_PP_SEQ_SPLIT_208(x) (x) BOOST_PP_SEQ_SPLIT_207
+# define BOOST_PP_SEQ_SPLIT_209(x) (x) BOOST_PP_SEQ_SPLIT_208
+# define BOOST_PP_SEQ_SPLIT_210(x) (x) BOOST_PP_SEQ_SPLIT_209
+# define BOOST_PP_SEQ_SPLIT_211(x) (x) BOOST_PP_SEQ_SPLIT_210
+# define BOOST_PP_SEQ_SPLIT_212(x) (x) BOOST_PP_SEQ_SPLIT_211
+# define BOOST_PP_SEQ_SPLIT_213(x) (x) BOOST_PP_SEQ_SPLIT_212
+# define BOOST_PP_SEQ_SPLIT_214(x) (x) BOOST_PP_SEQ_SPLIT_213
+# define BOOST_PP_SEQ_SPLIT_215(x) (x) BOOST_PP_SEQ_SPLIT_214
+# define BOOST_PP_SEQ_SPLIT_216(x) (x) BOOST_PP_SEQ_SPLIT_215
+# define BOOST_PP_SEQ_SPLIT_217(x) (x) BOOST_PP_SEQ_SPLIT_216
+# define BOOST_PP_SEQ_SPLIT_218(x) (x) BOOST_PP_SEQ_SPLIT_217
+# define BOOST_PP_SEQ_SPLIT_219(x) (x) BOOST_PP_SEQ_SPLIT_218
+# define BOOST_PP_SEQ_SPLIT_220(x) (x) BOOST_PP_SEQ_SPLIT_219
+# define BOOST_PP_SEQ_SPLIT_221(x) (x) BOOST_PP_SEQ_SPLIT_220
+# define BOOST_PP_SEQ_SPLIT_222(x) (x) BOOST_PP_SEQ_SPLIT_221
+# define BOOST_PP_SEQ_SPLIT_223(x) (x) BOOST_PP_SEQ_SPLIT_222
+# define BOOST_PP_SEQ_SPLIT_224(x) (x) BOOST_PP_SEQ_SPLIT_223
+# define BOOST_PP_SEQ_SPLIT_225(x) (x) BOOST_PP_SEQ_SPLIT_224
+# define BOOST_PP_SEQ_SPLIT_226(x) (x) BOOST_PP_SEQ_SPLIT_225
+# define BOOST_PP_SEQ_SPLIT_227(x) (x) BOOST_PP_SEQ_SPLIT_226
+# define BOOST_PP_SEQ_SPLIT_228(x) (x) BOOST_PP_SEQ_SPLIT_227
+# define BOOST_PP_SEQ_SPLIT_229(x) (x) BOOST_PP_SEQ_SPLIT_228
+# define BOOST_PP_SEQ_SPLIT_230(x) (x) BOOST_PP_SEQ_SPLIT_229
+# define BOOST_PP_SEQ_SPLIT_231(x) (x) BOOST_PP_SEQ_SPLIT_230
+# define BOOST_PP_SEQ_SPLIT_232(x) (x) BOOST_PP_SEQ_SPLIT_231
+# define BOOST_PP_SEQ_SPLIT_233(x) (x) BOOST_PP_SEQ_SPLIT_232
+# define BOOST_PP_SEQ_SPLIT_234(x) (x) BOOST_PP_SEQ_SPLIT_233
+# define BOOST_PP_SEQ_SPLIT_235(x) (x) BOOST_PP_SEQ_SPLIT_234
+# define BOOST_PP_SEQ_SPLIT_236(x) (x) BOOST_PP_SEQ_SPLIT_235
+# define BOOST_PP_SEQ_SPLIT_237(x) (x) BOOST_PP_SEQ_SPLIT_236
+# define BOOST_PP_SEQ_SPLIT_238(x) (x) BOOST_PP_SEQ_SPLIT_237
+# define BOOST_PP_SEQ_SPLIT_239(x) (x) BOOST_PP_SEQ_SPLIT_238
+# define BOOST_PP_SEQ_SPLIT_240(x) (x) BOOST_PP_SEQ_SPLIT_239
+# define BOOST_PP_SEQ_SPLIT_241(x) (x) BOOST_PP_SEQ_SPLIT_240
+# define BOOST_PP_SEQ_SPLIT_242(x) (x) BOOST_PP_SEQ_SPLIT_241
+# define BOOST_PP_SEQ_SPLIT_243(x) (x) BOOST_PP_SEQ_SPLIT_242
+# define BOOST_PP_SEQ_SPLIT_244(x) (x) BOOST_PP_SEQ_SPLIT_243
+# define BOOST_PP_SEQ_SPLIT_245(x) (x) BOOST_PP_SEQ_SPLIT_244
+# define BOOST_PP_SEQ_SPLIT_246(x) (x) BOOST_PP_SEQ_SPLIT_245
+# define BOOST_PP_SEQ_SPLIT_247(x) (x) BOOST_PP_SEQ_SPLIT_246
+# define BOOST_PP_SEQ_SPLIT_248(x) (x) BOOST_PP_SEQ_SPLIT_247
+# define BOOST_PP_SEQ_SPLIT_249(x) (x) BOOST_PP_SEQ_SPLIT_248
+# define BOOST_PP_SEQ_SPLIT_250(x) (x) BOOST_PP_SEQ_SPLIT_249
+# define BOOST_PP_SEQ_SPLIT_251(x) (x) BOOST_PP_SEQ_SPLIT_250
+# define BOOST_PP_SEQ_SPLIT_252(x) (x) BOOST_PP_SEQ_SPLIT_251
+# define BOOST_PP_SEQ_SPLIT_253(x) (x) BOOST_PP_SEQ_SPLIT_252
+# define BOOST_PP_SEQ_SPLIT_254(x) (x) BOOST_PP_SEQ_SPLIT_253
+# define BOOST_PP_SEQ_SPLIT_255(x) (x) BOOST_PP_SEQ_SPLIT_254
+# define BOOST_PP_SEQ_SPLIT_256(x) (x) BOOST_PP_SEQ_SPLIT_255
+#
+# endif
index 16c22559e3b986aa24fdf68ecdba9809e7820a0a..9c7a4b27665bbf957851eb0487cc423cb5e6158a 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_ELEM_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_ELEM_HPP\r
-#\r
-# include <boost/preprocessor/cat.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/facilities/empty.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_ELEM */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I(i, seq)\r
-# else\r
-#    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I((i, seq))\r
-# endif\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
-#    define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II((BOOST_PP_SEQ_ELEM_ ## i seq))\r
-#    define BOOST_PP_SEQ_ELEM_II(res) BOOST_PP_SEQ_ELEM_IV(BOOST_PP_SEQ_ELEM_III res)\r
-#    define BOOST_PP_SEQ_ELEM_III(x, _) x BOOST_PP_EMPTY()\r
-#    define BOOST_PP_SEQ_ELEM_IV(x) x\r
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_SEQ_ELEM_I(par) BOOST_PP_SEQ_ELEM_II ## par\r
-#    define BOOST_PP_SEQ_ELEM_II(i, seq) BOOST_PP_SEQ_ELEM_III(BOOST_PP_SEQ_ELEM_ ## i ## seq)\r
-#    define BOOST_PP_SEQ_ELEM_III(im) BOOST_PP_SEQ_ELEM_IV(im)\r
-#    define BOOST_PP_SEQ_ELEM_IV(x, _) x\r
-# else\r
-#    if defined(__IBMC__) || defined(__IBMCPP__)\r
-#        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_CAT(BOOST_PP_SEQ_ELEM_ ## i, seq))\r
-#    else\r
-#        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)\r
-#    endif\r
-#    define BOOST_PP_SEQ_ELEM_II(im) BOOST_PP_SEQ_ELEM_III(im)\r
-#    define BOOST_PP_SEQ_ELEM_III(x, _) x\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_ELEM_0(x) x, BOOST_PP_NIL\r
-# define BOOST_PP_SEQ_ELEM_1(_) BOOST_PP_SEQ_ELEM_0\r
-# define BOOST_PP_SEQ_ELEM_2(_) BOOST_PP_SEQ_ELEM_1\r
-# define BOOST_PP_SEQ_ELEM_3(_) BOOST_PP_SEQ_ELEM_2\r
-# define BOOST_PP_SEQ_ELEM_4(_) BOOST_PP_SEQ_ELEM_3\r
-# define BOOST_PP_SEQ_ELEM_5(_) BOOST_PP_SEQ_ELEM_4\r
-# define BOOST_PP_SEQ_ELEM_6(_) BOOST_PP_SEQ_ELEM_5\r
-# define BOOST_PP_SEQ_ELEM_7(_) BOOST_PP_SEQ_ELEM_6\r
-# define BOOST_PP_SEQ_ELEM_8(_) BOOST_PP_SEQ_ELEM_7\r
-# define BOOST_PP_SEQ_ELEM_9(_) BOOST_PP_SEQ_ELEM_8\r
-# define BOOST_PP_SEQ_ELEM_10(_) BOOST_PP_SEQ_ELEM_9\r
-# define BOOST_PP_SEQ_ELEM_11(_) BOOST_PP_SEQ_ELEM_10\r
-# define BOOST_PP_SEQ_ELEM_12(_) BOOST_PP_SEQ_ELEM_11\r
-# define BOOST_PP_SEQ_ELEM_13(_) BOOST_PP_SEQ_ELEM_12\r
-# define BOOST_PP_SEQ_ELEM_14(_) BOOST_PP_SEQ_ELEM_13\r
-# define BOOST_PP_SEQ_ELEM_15(_) BOOST_PP_SEQ_ELEM_14\r
-# define BOOST_PP_SEQ_ELEM_16(_) BOOST_PP_SEQ_ELEM_15\r
-# define BOOST_PP_SEQ_ELEM_17(_) BOOST_PP_SEQ_ELEM_16\r
-# define BOOST_PP_SEQ_ELEM_18(_) BOOST_PP_SEQ_ELEM_17\r
-# define BOOST_PP_SEQ_ELEM_19(_) BOOST_PP_SEQ_ELEM_18\r
-# define BOOST_PP_SEQ_ELEM_20(_) BOOST_PP_SEQ_ELEM_19\r
-# define BOOST_PP_SEQ_ELEM_21(_) BOOST_PP_SEQ_ELEM_20\r
-# define BOOST_PP_SEQ_ELEM_22(_) BOOST_PP_SEQ_ELEM_21\r
-# define BOOST_PP_SEQ_ELEM_23(_) BOOST_PP_SEQ_ELEM_22\r
-# define BOOST_PP_SEQ_ELEM_24(_) BOOST_PP_SEQ_ELEM_23\r
-# define BOOST_PP_SEQ_ELEM_25(_) BOOST_PP_SEQ_ELEM_24\r
-# define BOOST_PP_SEQ_ELEM_26(_) BOOST_PP_SEQ_ELEM_25\r
-# define BOOST_PP_SEQ_ELEM_27(_) BOOST_PP_SEQ_ELEM_26\r
-# define BOOST_PP_SEQ_ELEM_28(_) BOOST_PP_SEQ_ELEM_27\r
-# define BOOST_PP_SEQ_ELEM_29(_) BOOST_PP_SEQ_ELEM_28\r
-# define BOOST_PP_SEQ_ELEM_30(_) BOOST_PP_SEQ_ELEM_29\r
-# define BOOST_PP_SEQ_ELEM_31(_) BOOST_PP_SEQ_ELEM_30\r
-# define BOOST_PP_SEQ_ELEM_32(_) BOOST_PP_SEQ_ELEM_31\r
-# define BOOST_PP_SEQ_ELEM_33(_) BOOST_PP_SEQ_ELEM_32\r
-# define BOOST_PP_SEQ_ELEM_34(_) BOOST_PP_SEQ_ELEM_33\r
-# define BOOST_PP_SEQ_ELEM_35(_) BOOST_PP_SEQ_ELEM_34\r
-# define BOOST_PP_SEQ_ELEM_36(_) BOOST_PP_SEQ_ELEM_35\r
-# define BOOST_PP_SEQ_ELEM_37(_) BOOST_PP_SEQ_ELEM_36\r
-# define BOOST_PP_SEQ_ELEM_38(_) BOOST_PP_SEQ_ELEM_37\r
-# define BOOST_PP_SEQ_ELEM_39(_) BOOST_PP_SEQ_ELEM_38\r
-# define BOOST_PP_SEQ_ELEM_40(_) BOOST_PP_SEQ_ELEM_39\r
-# define BOOST_PP_SEQ_ELEM_41(_) BOOST_PP_SEQ_ELEM_40\r
-# define BOOST_PP_SEQ_ELEM_42(_) BOOST_PP_SEQ_ELEM_41\r
-# define BOOST_PP_SEQ_ELEM_43(_) BOOST_PP_SEQ_ELEM_42\r
-# define BOOST_PP_SEQ_ELEM_44(_) BOOST_PP_SEQ_ELEM_43\r
-# define BOOST_PP_SEQ_ELEM_45(_) BOOST_PP_SEQ_ELEM_44\r
-# define BOOST_PP_SEQ_ELEM_46(_) BOOST_PP_SEQ_ELEM_45\r
-# define BOOST_PP_SEQ_ELEM_47(_) BOOST_PP_SEQ_ELEM_46\r
-# define BOOST_PP_SEQ_ELEM_48(_) BOOST_PP_SEQ_ELEM_47\r
-# define BOOST_PP_SEQ_ELEM_49(_) BOOST_PP_SEQ_ELEM_48\r
-# define BOOST_PP_SEQ_ELEM_50(_) BOOST_PP_SEQ_ELEM_49\r
-# define BOOST_PP_SEQ_ELEM_51(_) BOOST_PP_SEQ_ELEM_50\r
-# define BOOST_PP_SEQ_ELEM_52(_) BOOST_PP_SEQ_ELEM_51\r
-# define BOOST_PP_SEQ_ELEM_53(_) BOOST_PP_SEQ_ELEM_52\r
-# define BOOST_PP_SEQ_ELEM_54(_) BOOST_PP_SEQ_ELEM_53\r
-# define BOOST_PP_SEQ_ELEM_55(_) BOOST_PP_SEQ_ELEM_54\r
-# define BOOST_PP_SEQ_ELEM_56(_) BOOST_PP_SEQ_ELEM_55\r
-# define BOOST_PP_SEQ_ELEM_57(_) BOOST_PP_SEQ_ELEM_56\r
-# define BOOST_PP_SEQ_ELEM_58(_) BOOST_PP_SEQ_ELEM_57\r
-# define BOOST_PP_SEQ_ELEM_59(_) BOOST_PP_SEQ_ELEM_58\r
-# define BOOST_PP_SEQ_ELEM_60(_) BOOST_PP_SEQ_ELEM_59\r
-# define BOOST_PP_SEQ_ELEM_61(_) BOOST_PP_SEQ_ELEM_60\r
-# define BOOST_PP_SEQ_ELEM_62(_) BOOST_PP_SEQ_ELEM_61\r
-# define BOOST_PP_SEQ_ELEM_63(_) BOOST_PP_SEQ_ELEM_62\r
-# define BOOST_PP_SEQ_ELEM_64(_) BOOST_PP_SEQ_ELEM_63\r
-# define BOOST_PP_SEQ_ELEM_65(_) BOOST_PP_SEQ_ELEM_64\r
-# define BOOST_PP_SEQ_ELEM_66(_) BOOST_PP_SEQ_ELEM_65\r
-# define BOOST_PP_SEQ_ELEM_67(_) BOOST_PP_SEQ_ELEM_66\r
-# define BOOST_PP_SEQ_ELEM_68(_) BOOST_PP_SEQ_ELEM_67\r
-# define BOOST_PP_SEQ_ELEM_69(_) BOOST_PP_SEQ_ELEM_68\r
-# define BOOST_PP_SEQ_ELEM_70(_) BOOST_PP_SEQ_ELEM_69\r
-# define BOOST_PP_SEQ_ELEM_71(_) BOOST_PP_SEQ_ELEM_70\r
-# define BOOST_PP_SEQ_ELEM_72(_) BOOST_PP_SEQ_ELEM_71\r
-# define BOOST_PP_SEQ_ELEM_73(_) BOOST_PP_SEQ_ELEM_72\r
-# define BOOST_PP_SEQ_ELEM_74(_) BOOST_PP_SEQ_ELEM_73\r
-# define BOOST_PP_SEQ_ELEM_75(_) BOOST_PP_SEQ_ELEM_74\r
-# define BOOST_PP_SEQ_ELEM_76(_) BOOST_PP_SEQ_ELEM_75\r
-# define BOOST_PP_SEQ_ELEM_77(_) BOOST_PP_SEQ_ELEM_76\r
-# define BOOST_PP_SEQ_ELEM_78(_) BOOST_PP_SEQ_ELEM_77\r
-# define BOOST_PP_SEQ_ELEM_79(_) BOOST_PP_SEQ_ELEM_78\r
-# define BOOST_PP_SEQ_ELEM_80(_) BOOST_PP_SEQ_ELEM_79\r
-# define BOOST_PP_SEQ_ELEM_81(_) BOOST_PP_SEQ_ELEM_80\r
-# define BOOST_PP_SEQ_ELEM_82(_) BOOST_PP_SEQ_ELEM_81\r
-# define BOOST_PP_SEQ_ELEM_83(_) BOOST_PP_SEQ_ELEM_82\r
-# define BOOST_PP_SEQ_ELEM_84(_) BOOST_PP_SEQ_ELEM_83\r
-# define BOOST_PP_SEQ_ELEM_85(_) BOOST_PP_SEQ_ELEM_84\r
-# define BOOST_PP_SEQ_ELEM_86(_) BOOST_PP_SEQ_ELEM_85\r
-# define BOOST_PP_SEQ_ELEM_87(_) BOOST_PP_SEQ_ELEM_86\r
-# define BOOST_PP_SEQ_ELEM_88(_) BOOST_PP_SEQ_ELEM_87\r
-# define BOOST_PP_SEQ_ELEM_89(_) BOOST_PP_SEQ_ELEM_88\r
-# define BOOST_PP_SEQ_ELEM_90(_) BOOST_PP_SEQ_ELEM_89\r
-# define BOOST_PP_SEQ_ELEM_91(_) BOOST_PP_SEQ_ELEM_90\r
-# define BOOST_PP_SEQ_ELEM_92(_) BOOST_PP_SEQ_ELEM_91\r
-# define BOOST_PP_SEQ_ELEM_93(_) BOOST_PP_SEQ_ELEM_92\r
-# define BOOST_PP_SEQ_ELEM_94(_) BOOST_PP_SEQ_ELEM_93\r
-# define BOOST_PP_SEQ_ELEM_95(_) BOOST_PP_SEQ_ELEM_94\r
-# define BOOST_PP_SEQ_ELEM_96(_) BOOST_PP_SEQ_ELEM_95\r
-# define BOOST_PP_SEQ_ELEM_97(_) BOOST_PP_SEQ_ELEM_96\r
-# define BOOST_PP_SEQ_ELEM_98(_) BOOST_PP_SEQ_ELEM_97\r
-# define BOOST_PP_SEQ_ELEM_99(_) BOOST_PP_SEQ_ELEM_98\r
-# define BOOST_PP_SEQ_ELEM_100(_) BOOST_PP_SEQ_ELEM_99\r
-# define BOOST_PP_SEQ_ELEM_101(_) BOOST_PP_SEQ_ELEM_100\r
-# define BOOST_PP_SEQ_ELEM_102(_) BOOST_PP_SEQ_ELEM_101\r
-# define BOOST_PP_SEQ_ELEM_103(_) BOOST_PP_SEQ_ELEM_102\r
-# define BOOST_PP_SEQ_ELEM_104(_) BOOST_PP_SEQ_ELEM_103\r
-# define BOOST_PP_SEQ_ELEM_105(_) BOOST_PP_SEQ_ELEM_104\r
-# define BOOST_PP_SEQ_ELEM_106(_) BOOST_PP_SEQ_ELEM_105\r
-# define BOOST_PP_SEQ_ELEM_107(_) BOOST_PP_SEQ_ELEM_106\r
-# define BOOST_PP_SEQ_ELEM_108(_) BOOST_PP_SEQ_ELEM_107\r
-# define BOOST_PP_SEQ_ELEM_109(_) BOOST_PP_SEQ_ELEM_108\r
-# define BOOST_PP_SEQ_ELEM_110(_) BOOST_PP_SEQ_ELEM_109\r
-# define BOOST_PP_SEQ_ELEM_111(_) BOOST_PP_SEQ_ELEM_110\r
-# define BOOST_PP_SEQ_ELEM_112(_) BOOST_PP_SEQ_ELEM_111\r
-# define BOOST_PP_SEQ_ELEM_113(_) BOOST_PP_SEQ_ELEM_112\r
-# define BOOST_PP_SEQ_ELEM_114(_) BOOST_PP_SEQ_ELEM_113\r
-# define BOOST_PP_SEQ_ELEM_115(_) BOOST_PP_SEQ_ELEM_114\r
-# define BOOST_PP_SEQ_ELEM_116(_) BOOST_PP_SEQ_ELEM_115\r
-# define BOOST_PP_SEQ_ELEM_117(_) BOOST_PP_SEQ_ELEM_116\r
-# define BOOST_PP_SEQ_ELEM_118(_) BOOST_PP_SEQ_ELEM_117\r
-# define BOOST_PP_SEQ_ELEM_119(_) BOOST_PP_SEQ_ELEM_118\r
-# define BOOST_PP_SEQ_ELEM_120(_) BOOST_PP_SEQ_ELEM_119\r
-# define BOOST_PP_SEQ_ELEM_121(_) BOOST_PP_SEQ_ELEM_120\r
-# define BOOST_PP_SEQ_ELEM_122(_) BOOST_PP_SEQ_ELEM_121\r
-# define BOOST_PP_SEQ_ELEM_123(_) BOOST_PP_SEQ_ELEM_122\r
-# define BOOST_PP_SEQ_ELEM_124(_) BOOST_PP_SEQ_ELEM_123\r
-# define BOOST_PP_SEQ_ELEM_125(_) BOOST_PP_SEQ_ELEM_124\r
-# define BOOST_PP_SEQ_ELEM_126(_) BOOST_PP_SEQ_ELEM_125\r
-# define BOOST_PP_SEQ_ELEM_127(_) BOOST_PP_SEQ_ELEM_126\r
-# define BOOST_PP_SEQ_ELEM_128(_) BOOST_PP_SEQ_ELEM_127\r
-# define BOOST_PP_SEQ_ELEM_129(_) BOOST_PP_SEQ_ELEM_128\r
-# define BOOST_PP_SEQ_ELEM_130(_) BOOST_PP_SEQ_ELEM_129\r
-# define BOOST_PP_SEQ_ELEM_131(_) BOOST_PP_SEQ_ELEM_130\r
-# define BOOST_PP_SEQ_ELEM_132(_) BOOST_PP_SEQ_ELEM_131\r
-# define BOOST_PP_SEQ_ELEM_133(_) BOOST_PP_SEQ_ELEM_132\r
-# define BOOST_PP_SEQ_ELEM_134(_) BOOST_PP_SEQ_ELEM_133\r
-# define BOOST_PP_SEQ_ELEM_135(_) BOOST_PP_SEQ_ELEM_134\r
-# define BOOST_PP_SEQ_ELEM_136(_) BOOST_PP_SEQ_ELEM_135\r
-# define BOOST_PP_SEQ_ELEM_137(_) BOOST_PP_SEQ_ELEM_136\r
-# define BOOST_PP_SEQ_ELEM_138(_) BOOST_PP_SEQ_ELEM_137\r
-# define BOOST_PP_SEQ_ELEM_139(_) BOOST_PP_SEQ_ELEM_138\r
-# define BOOST_PP_SEQ_ELEM_140(_) BOOST_PP_SEQ_ELEM_139\r
-# define BOOST_PP_SEQ_ELEM_141(_) BOOST_PP_SEQ_ELEM_140\r
-# define BOOST_PP_SEQ_ELEM_142(_) BOOST_PP_SEQ_ELEM_141\r
-# define BOOST_PP_SEQ_ELEM_143(_) BOOST_PP_SEQ_ELEM_142\r
-# define BOOST_PP_SEQ_ELEM_144(_) BOOST_PP_SEQ_ELEM_143\r
-# define BOOST_PP_SEQ_ELEM_145(_) BOOST_PP_SEQ_ELEM_144\r
-# define BOOST_PP_SEQ_ELEM_146(_) BOOST_PP_SEQ_ELEM_145\r
-# define BOOST_PP_SEQ_ELEM_147(_) BOOST_PP_SEQ_ELEM_146\r
-# define BOOST_PP_SEQ_ELEM_148(_) BOOST_PP_SEQ_ELEM_147\r
-# define BOOST_PP_SEQ_ELEM_149(_) BOOST_PP_SEQ_ELEM_148\r
-# define BOOST_PP_SEQ_ELEM_150(_) BOOST_PP_SEQ_ELEM_149\r
-# define BOOST_PP_SEQ_ELEM_151(_) BOOST_PP_SEQ_ELEM_150\r
-# define BOOST_PP_SEQ_ELEM_152(_) BOOST_PP_SEQ_ELEM_151\r
-# define BOOST_PP_SEQ_ELEM_153(_) BOOST_PP_SEQ_ELEM_152\r
-# define BOOST_PP_SEQ_ELEM_154(_) BOOST_PP_SEQ_ELEM_153\r
-# define BOOST_PP_SEQ_ELEM_155(_) BOOST_PP_SEQ_ELEM_154\r
-# define BOOST_PP_SEQ_ELEM_156(_) BOOST_PP_SEQ_ELEM_155\r
-# define BOOST_PP_SEQ_ELEM_157(_) BOOST_PP_SEQ_ELEM_156\r
-# define BOOST_PP_SEQ_ELEM_158(_) BOOST_PP_SEQ_ELEM_157\r
-# define BOOST_PP_SEQ_ELEM_159(_) BOOST_PP_SEQ_ELEM_158\r
-# define BOOST_PP_SEQ_ELEM_160(_) BOOST_PP_SEQ_ELEM_159\r
-# define BOOST_PP_SEQ_ELEM_161(_) BOOST_PP_SEQ_ELEM_160\r
-# define BOOST_PP_SEQ_ELEM_162(_) BOOST_PP_SEQ_ELEM_161\r
-# define BOOST_PP_SEQ_ELEM_163(_) BOOST_PP_SEQ_ELEM_162\r
-# define BOOST_PP_SEQ_ELEM_164(_) BOOST_PP_SEQ_ELEM_163\r
-# define BOOST_PP_SEQ_ELEM_165(_) BOOST_PP_SEQ_ELEM_164\r
-# define BOOST_PP_SEQ_ELEM_166(_) BOOST_PP_SEQ_ELEM_165\r
-# define BOOST_PP_SEQ_ELEM_167(_) BOOST_PP_SEQ_ELEM_166\r
-# define BOOST_PP_SEQ_ELEM_168(_) BOOST_PP_SEQ_ELEM_167\r
-# define BOOST_PP_SEQ_ELEM_169(_) BOOST_PP_SEQ_ELEM_168\r
-# define BOOST_PP_SEQ_ELEM_170(_) BOOST_PP_SEQ_ELEM_169\r
-# define BOOST_PP_SEQ_ELEM_171(_) BOOST_PP_SEQ_ELEM_170\r
-# define BOOST_PP_SEQ_ELEM_172(_) BOOST_PP_SEQ_ELEM_171\r
-# define BOOST_PP_SEQ_ELEM_173(_) BOOST_PP_SEQ_ELEM_172\r
-# define BOOST_PP_SEQ_ELEM_174(_) BOOST_PP_SEQ_ELEM_173\r
-# define BOOST_PP_SEQ_ELEM_175(_) BOOST_PP_SEQ_ELEM_174\r
-# define BOOST_PP_SEQ_ELEM_176(_) BOOST_PP_SEQ_ELEM_175\r
-# define BOOST_PP_SEQ_ELEM_177(_) BOOST_PP_SEQ_ELEM_176\r
-# define BOOST_PP_SEQ_ELEM_178(_) BOOST_PP_SEQ_ELEM_177\r
-# define BOOST_PP_SEQ_ELEM_179(_) BOOST_PP_SEQ_ELEM_178\r
-# define BOOST_PP_SEQ_ELEM_180(_) BOOST_PP_SEQ_ELEM_179\r
-# define BOOST_PP_SEQ_ELEM_181(_) BOOST_PP_SEQ_ELEM_180\r
-# define BOOST_PP_SEQ_ELEM_182(_) BOOST_PP_SEQ_ELEM_181\r
-# define BOOST_PP_SEQ_ELEM_183(_) BOOST_PP_SEQ_ELEM_182\r
-# define BOOST_PP_SEQ_ELEM_184(_) BOOST_PP_SEQ_ELEM_183\r
-# define BOOST_PP_SEQ_ELEM_185(_) BOOST_PP_SEQ_ELEM_184\r
-# define BOOST_PP_SEQ_ELEM_186(_) BOOST_PP_SEQ_ELEM_185\r
-# define BOOST_PP_SEQ_ELEM_187(_) BOOST_PP_SEQ_ELEM_186\r
-# define BOOST_PP_SEQ_ELEM_188(_) BOOST_PP_SEQ_ELEM_187\r
-# define BOOST_PP_SEQ_ELEM_189(_) BOOST_PP_SEQ_ELEM_188\r
-# define BOOST_PP_SEQ_ELEM_190(_) BOOST_PP_SEQ_ELEM_189\r
-# define BOOST_PP_SEQ_ELEM_191(_) BOOST_PP_SEQ_ELEM_190\r
-# define BOOST_PP_SEQ_ELEM_192(_) BOOST_PP_SEQ_ELEM_191\r
-# define BOOST_PP_SEQ_ELEM_193(_) BOOST_PP_SEQ_ELEM_192\r
-# define BOOST_PP_SEQ_ELEM_194(_) BOOST_PP_SEQ_ELEM_193\r
-# define BOOST_PP_SEQ_ELEM_195(_) BOOST_PP_SEQ_ELEM_194\r
-# define BOOST_PP_SEQ_ELEM_196(_) BOOST_PP_SEQ_ELEM_195\r
-# define BOOST_PP_SEQ_ELEM_197(_) BOOST_PP_SEQ_ELEM_196\r
-# define BOOST_PP_SEQ_ELEM_198(_) BOOST_PP_SEQ_ELEM_197\r
-# define BOOST_PP_SEQ_ELEM_199(_) BOOST_PP_SEQ_ELEM_198\r
-# define BOOST_PP_SEQ_ELEM_200(_) BOOST_PP_SEQ_ELEM_199\r
-# define BOOST_PP_SEQ_ELEM_201(_) BOOST_PP_SEQ_ELEM_200\r
-# define BOOST_PP_SEQ_ELEM_202(_) BOOST_PP_SEQ_ELEM_201\r
-# define BOOST_PP_SEQ_ELEM_203(_) BOOST_PP_SEQ_ELEM_202\r
-# define BOOST_PP_SEQ_ELEM_204(_) BOOST_PP_SEQ_ELEM_203\r
-# define BOOST_PP_SEQ_ELEM_205(_) BOOST_PP_SEQ_ELEM_204\r
-# define BOOST_PP_SEQ_ELEM_206(_) BOOST_PP_SEQ_ELEM_205\r
-# define BOOST_PP_SEQ_ELEM_207(_) BOOST_PP_SEQ_ELEM_206\r
-# define BOOST_PP_SEQ_ELEM_208(_) BOOST_PP_SEQ_ELEM_207\r
-# define BOOST_PP_SEQ_ELEM_209(_) BOOST_PP_SEQ_ELEM_208\r
-# define BOOST_PP_SEQ_ELEM_210(_) BOOST_PP_SEQ_ELEM_209\r
-# define BOOST_PP_SEQ_ELEM_211(_) BOOST_PP_SEQ_ELEM_210\r
-# define BOOST_PP_SEQ_ELEM_212(_) BOOST_PP_SEQ_ELEM_211\r
-# define BOOST_PP_SEQ_ELEM_213(_) BOOST_PP_SEQ_ELEM_212\r
-# define BOOST_PP_SEQ_ELEM_214(_) BOOST_PP_SEQ_ELEM_213\r
-# define BOOST_PP_SEQ_ELEM_215(_) BOOST_PP_SEQ_ELEM_214\r
-# define BOOST_PP_SEQ_ELEM_216(_) BOOST_PP_SEQ_ELEM_215\r
-# define BOOST_PP_SEQ_ELEM_217(_) BOOST_PP_SEQ_ELEM_216\r
-# define BOOST_PP_SEQ_ELEM_218(_) BOOST_PP_SEQ_ELEM_217\r
-# define BOOST_PP_SEQ_ELEM_219(_) BOOST_PP_SEQ_ELEM_218\r
-# define BOOST_PP_SEQ_ELEM_220(_) BOOST_PP_SEQ_ELEM_219\r
-# define BOOST_PP_SEQ_ELEM_221(_) BOOST_PP_SEQ_ELEM_220\r
-# define BOOST_PP_SEQ_ELEM_222(_) BOOST_PP_SEQ_ELEM_221\r
-# define BOOST_PP_SEQ_ELEM_223(_) BOOST_PP_SEQ_ELEM_222\r
-# define BOOST_PP_SEQ_ELEM_224(_) BOOST_PP_SEQ_ELEM_223\r
-# define BOOST_PP_SEQ_ELEM_225(_) BOOST_PP_SEQ_ELEM_224\r
-# define BOOST_PP_SEQ_ELEM_226(_) BOOST_PP_SEQ_ELEM_225\r
-# define BOOST_PP_SEQ_ELEM_227(_) BOOST_PP_SEQ_ELEM_226\r
-# define BOOST_PP_SEQ_ELEM_228(_) BOOST_PP_SEQ_ELEM_227\r
-# define BOOST_PP_SEQ_ELEM_229(_) BOOST_PP_SEQ_ELEM_228\r
-# define BOOST_PP_SEQ_ELEM_230(_) BOOST_PP_SEQ_ELEM_229\r
-# define BOOST_PP_SEQ_ELEM_231(_) BOOST_PP_SEQ_ELEM_230\r
-# define BOOST_PP_SEQ_ELEM_232(_) BOOST_PP_SEQ_ELEM_231\r
-# define BOOST_PP_SEQ_ELEM_233(_) BOOST_PP_SEQ_ELEM_232\r
-# define BOOST_PP_SEQ_ELEM_234(_) BOOST_PP_SEQ_ELEM_233\r
-# define BOOST_PP_SEQ_ELEM_235(_) BOOST_PP_SEQ_ELEM_234\r
-# define BOOST_PP_SEQ_ELEM_236(_) BOOST_PP_SEQ_ELEM_235\r
-# define BOOST_PP_SEQ_ELEM_237(_) BOOST_PP_SEQ_ELEM_236\r
-# define BOOST_PP_SEQ_ELEM_238(_) BOOST_PP_SEQ_ELEM_237\r
-# define BOOST_PP_SEQ_ELEM_239(_) BOOST_PP_SEQ_ELEM_238\r
-# define BOOST_PP_SEQ_ELEM_240(_) BOOST_PP_SEQ_ELEM_239\r
-# define BOOST_PP_SEQ_ELEM_241(_) BOOST_PP_SEQ_ELEM_240\r
-# define BOOST_PP_SEQ_ELEM_242(_) BOOST_PP_SEQ_ELEM_241\r
-# define BOOST_PP_SEQ_ELEM_243(_) BOOST_PP_SEQ_ELEM_242\r
-# define BOOST_PP_SEQ_ELEM_244(_) BOOST_PP_SEQ_ELEM_243\r
-# define BOOST_PP_SEQ_ELEM_245(_) BOOST_PP_SEQ_ELEM_244\r
-# define BOOST_PP_SEQ_ELEM_246(_) BOOST_PP_SEQ_ELEM_245\r
-# define BOOST_PP_SEQ_ELEM_247(_) BOOST_PP_SEQ_ELEM_246\r
-# define BOOST_PP_SEQ_ELEM_248(_) BOOST_PP_SEQ_ELEM_247\r
-# define BOOST_PP_SEQ_ELEM_249(_) BOOST_PP_SEQ_ELEM_248\r
-# define BOOST_PP_SEQ_ELEM_250(_) BOOST_PP_SEQ_ELEM_249\r
-# define BOOST_PP_SEQ_ELEM_251(_) BOOST_PP_SEQ_ELEM_250\r
-# define BOOST_PP_SEQ_ELEM_252(_) BOOST_PP_SEQ_ELEM_251\r
-# define BOOST_PP_SEQ_ELEM_253(_) BOOST_PP_SEQ_ELEM_252\r
-# define BOOST_PP_SEQ_ELEM_254(_) BOOST_PP_SEQ_ELEM_253\r
-# define BOOST_PP_SEQ_ELEM_255(_) BOOST_PP_SEQ_ELEM_254\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_ELEM_HPP
+# define BOOST_PREPROCESSOR_SEQ_ELEM_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/facilities/empty.hpp>
+#
+# /* BOOST_PP_SEQ_ELEM */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I(i, seq)
+# else
+#    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I((i, seq))
+# endif
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+#    define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II((BOOST_PP_SEQ_ELEM_ ## i seq))
+#    define BOOST_PP_SEQ_ELEM_II(res) BOOST_PP_SEQ_ELEM_IV(BOOST_PP_SEQ_ELEM_III res)
+#    define BOOST_PP_SEQ_ELEM_III(x, _) x BOOST_PP_EMPTY()
+#    define BOOST_PP_SEQ_ELEM_IV(x) x
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_SEQ_ELEM_I(par) BOOST_PP_SEQ_ELEM_II ## par
+#    define BOOST_PP_SEQ_ELEM_II(i, seq) BOOST_PP_SEQ_ELEM_III(BOOST_PP_SEQ_ELEM_ ## i ## seq)
+#    define BOOST_PP_SEQ_ELEM_III(im) BOOST_PP_SEQ_ELEM_IV(im)
+#    define BOOST_PP_SEQ_ELEM_IV(x, _) x
+# else
+#    if defined(__IBMC__) || defined(__IBMCPP__)
+#        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_CAT(BOOST_PP_SEQ_ELEM_ ## i, seq))
+#    else
+#        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
+#    endif
+#    define BOOST_PP_SEQ_ELEM_II(im) BOOST_PP_SEQ_ELEM_III(im)
+#    define BOOST_PP_SEQ_ELEM_III(x, _) x
+# endif
+#
+# define BOOST_PP_SEQ_ELEM_0(x) x, BOOST_PP_NIL
+# define BOOST_PP_SEQ_ELEM_1(_) BOOST_PP_SEQ_ELEM_0
+# define BOOST_PP_SEQ_ELEM_2(_) BOOST_PP_SEQ_ELEM_1
+# define BOOST_PP_SEQ_ELEM_3(_) BOOST_PP_SEQ_ELEM_2
+# define BOOST_PP_SEQ_ELEM_4(_) BOOST_PP_SEQ_ELEM_3
+# define BOOST_PP_SEQ_ELEM_5(_) BOOST_PP_SEQ_ELEM_4
+# define BOOST_PP_SEQ_ELEM_6(_) BOOST_PP_SEQ_ELEM_5
+# define BOOST_PP_SEQ_ELEM_7(_) BOOST_PP_SEQ_ELEM_6
+# define BOOST_PP_SEQ_ELEM_8(_) BOOST_PP_SEQ_ELEM_7
+# define BOOST_PP_SEQ_ELEM_9(_) BOOST_PP_SEQ_ELEM_8
+# define BOOST_PP_SEQ_ELEM_10(_) BOOST_PP_SEQ_ELEM_9
+# define BOOST_PP_SEQ_ELEM_11(_) BOOST_PP_SEQ_ELEM_10
+# define BOOST_PP_SEQ_ELEM_12(_) BOOST_PP_SEQ_ELEM_11
+# define BOOST_PP_SEQ_ELEM_13(_) BOOST_PP_SEQ_ELEM_12
+# define BOOST_PP_SEQ_ELEM_14(_) BOOST_PP_SEQ_ELEM_13
+# define BOOST_PP_SEQ_ELEM_15(_) BOOST_PP_SEQ_ELEM_14
+# define BOOST_PP_SEQ_ELEM_16(_) BOOST_PP_SEQ_ELEM_15
+# define BOOST_PP_SEQ_ELEM_17(_) BOOST_PP_SEQ_ELEM_16
+# define BOOST_PP_SEQ_ELEM_18(_) BOOST_PP_SEQ_ELEM_17
+# define BOOST_PP_SEQ_ELEM_19(_) BOOST_PP_SEQ_ELEM_18
+# define BOOST_PP_SEQ_ELEM_20(_) BOOST_PP_SEQ_ELEM_19
+# define BOOST_PP_SEQ_ELEM_21(_) BOOST_PP_SEQ_ELEM_20
+# define BOOST_PP_SEQ_ELEM_22(_) BOOST_PP_SEQ_ELEM_21
+# define BOOST_PP_SEQ_ELEM_23(_) BOOST_PP_SEQ_ELEM_22
+# define BOOST_PP_SEQ_ELEM_24(_) BOOST_PP_SEQ_ELEM_23
+# define BOOST_PP_SEQ_ELEM_25(_) BOOST_PP_SEQ_ELEM_24
+# define BOOST_PP_SEQ_ELEM_26(_) BOOST_PP_SEQ_ELEM_25
+# define BOOST_PP_SEQ_ELEM_27(_) BOOST_PP_SEQ_ELEM_26
+# define BOOST_PP_SEQ_ELEM_28(_) BOOST_PP_SEQ_ELEM_27
+# define BOOST_PP_SEQ_ELEM_29(_) BOOST_PP_SEQ_ELEM_28
+# define BOOST_PP_SEQ_ELEM_30(_) BOOST_PP_SEQ_ELEM_29
+# define BOOST_PP_SEQ_ELEM_31(_) BOOST_PP_SEQ_ELEM_30
+# define BOOST_PP_SEQ_ELEM_32(_) BOOST_PP_SEQ_ELEM_31
+# define BOOST_PP_SEQ_ELEM_33(_) BOOST_PP_SEQ_ELEM_32
+# define BOOST_PP_SEQ_ELEM_34(_) BOOST_PP_SEQ_ELEM_33
+# define BOOST_PP_SEQ_ELEM_35(_) BOOST_PP_SEQ_ELEM_34
+# define BOOST_PP_SEQ_ELEM_36(_) BOOST_PP_SEQ_ELEM_35
+# define BOOST_PP_SEQ_ELEM_37(_) BOOST_PP_SEQ_ELEM_36
+# define BOOST_PP_SEQ_ELEM_38(_) BOOST_PP_SEQ_ELEM_37
+# define BOOST_PP_SEQ_ELEM_39(_) BOOST_PP_SEQ_ELEM_38
+# define BOOST_PP_SEQ_ELEM_40(_) BOOST_PP_SEQ_ELEM_39
+# define BOOST_PP_SEQ_ELEM_41(_) BOOST_PP_SEQ_ELEM_40
+# define BOOST_PP_SEQ_ELEM_42(_) BOOST_PP_SEQ_ELEM_41
+# define BOOST_PP_SEQ_ELEM_43(_) BOOST_PP_SEQ_ELEM_42
+# define BOOST_PP_SEQ_ELEM_44(_) BOOST_PP_SEQ_ELEM_43
+# define BOOST_PP_SEQ_ELEM_45(_) BOOST_PP_SEQ_ELEM_44
+# define BOOST_PP_SEQ_ELEM_46(_) BOOST_PP_SEQ_ELEM_45
+# define BOOST_PP_SEQ_ELEM_47(_) BOOST_PP_SEQ_ELEM_46
+# define BOOST_PP_SEQ_ELEM_48(_) BOOST_PP_SEQ_ELEM_47
+# define BOOST_PP_SEQ_ELEM_49(_) BOOST_PP_SEQ_ELEM_48
+# define BOOST_PP_SEQ_ELEM_50(_) BOOST_PP_SEQ_ELEM_49
+# define BOOST_PP_SEQ_ELEM_51(_) BOOST_PP_SEQ_ELEM_50
+# define BOOST_PP_SEQ_ELEM_52(_) BOOST_PP_SEQ_ELEM_51
+# define BOOST_PP_SEQ_ELEM_53(_) BOOST_PP_SEQ_ELEM_52
+# define BOOST_PP_SEQ_ELEM_54(_) BOOST_PP_SEQ_ELEM_53
+# define BOOST_PP_SEQ_ELEM_55(_) BOOST_PP_SEQ_ELEM_54
+# define BOOST_PP_SEQ_ELEM_56(_) BOOST_PP_SEQ_ELEM_55
+# define BOOST_PP_SEQ_ELEM_57(_) BOOST_PP_SEQ_ELEM_56
+# define BOOST_PP_SEQ_ELEM_58(_) BOOST_PP_SEQ_ELEM_57
+# define BOOST_PP_SEQ_ELEM_59(_) BOOST_PP_SEQ_ELEM_58
+# define BOOST_PP_SEQ_ELEM_60(_) BOOST_PP_SEQ_ELEM_59
+# define BOOST_PP_SEQ_ELEM_61(_) BOOST_PP_SEQ_ELEM_60
+# define BOOST_PP_SEQ_ELEM_62(_) BOOST_PP_SEQ_ELEM_61
+# define BOOST_PP_SEQ_ELEM_63(_) BOOST_PP_SEQ_ELEM_62
+# define BOOST_PP_SEQ_ELEM_64(_) BOOST_PP_SEQ_ELEM_63
+# define BOOST_PP_SEQ_ELEM_65(_) BOOST_PP_SEQ_ELEM_64
+# define BOOST_PP_SEQ_ELEM_66(_) BOOST_PP_SEQ_ELEM_65
+# define BOOST_PP_SEQ_ELEM_67(_) BOOST_PP_SEQ_ELEM_66
+# define BOOST_PP_SEQ_ELEM_68(_) BOOST_PP_SEQ_ELEM_67
+# define BOOST_PP_SEQ_ELEM_69(_) BOOST_PP_SEQ_ELEM_68
+# define BOOST_PP_SEQ_ELEM_70(_) BOOST_PP_SEQ_ELEM_69
+# define BOOST_PP_SEQ_ELEM_71(_) BOOST_PP_SEQ_ELEM_70
+# define BOOST_PP_SEQ_ELEM_72(_) BOOST_PP_SEQ_ELEM_71
+# define BOOST_PP_SEQ_ELEM_73(_) BOOST_PP_SEQ_ELEM_72
+# define BOOST_PP_SEQ_ELEM_74(_) BOOST_PP_SEQ_ELEM_73
+# define BOOST_PP_SEQ_ELEM_75(_) BOOST_PP_SEQ_ELEM_74
+# define BOOST_PP_SEQ_ELEM_76(_) BOOST_PP_SEQ_ELEM_75
+# define BOOST_PP_SEQ_ELEM_77(_) BOOST_PP_SEQ_ELEM_76
+# define BOOST_PP_SEQ_ELEM_78(_) BOOST_PP_SEQ_ELEM_77
+# define BOOST_PP_SEQ_ELEM_79(_) BOOST_PP_SEQ_ELEM_78
+# define BOOST_PP_SEQ_ELEM_80(_) BOOST_PP_SEQ_ELEM_79
+# define BOOST_PP_SEQ_ELEM_81(_) BOOST_PP_SEQ_ELEM_80
+# define BOOST_PP_SEQ_ELEM_82(_) BOOST_PP_SEQ_ELEM_81
+# define BOOST_PP_SEQ_ELEM_83(_) BOOST_PP_SEQ_ELEM_82
+# define BOOST_PP_SEQ_ELEM_84(_) BOOST_PP_SEQ_ELEM_83
+# define BOOST_PP_SEQ_ELEM_85(_) BOOST_PP_SEQ_ELEM_84
+# define BOOST_PP_SEQ_ELEM_86(_) BOOST_PP_SEQ_ELEM_85
+# define BOOST_PP_SEQ_ELEM_87(_) BOOST_PP_SEQ_ELEM_86
+# define BOOST_PP_SEQ_ELEM_88(_) BOOST_PP_SEQ_ELEM_87
+# define BOOST_PP_SEQ_ELEM_89(_) BOOST_PP_SEQ_ELEM_88
+# define BOOST_PP_SEQ_ELEM_90(_) BOOST_PP_SEQ_ELEM_89
+# define BOOST_PP_SEQ_ELEM_91(_) BOOST_PP_SEQ_ELEM_90
+# define BOOST_PP_SEQ_ELEM_92(_) BOOST_PP_SEQ_ELEM_91
+# define BOOST_PP_SEQ_ELEM_93(_) BOOST_PP_SEQ_ELEM_92
+# define BOOST_PP_SEQ_ELEM_94(_) BOOST_PP_SEQ_ELEM_93
+# define BOOST_PP_SEQ_ELEM_95(_) BOOST_PP_SEQ_ELEM_94
+# define BOOST_PP_SEQ_ELEM_96(_) BOOST_PP_SEQ_ELEM_95
+# define BOOST_PP_SEQ_ELEM_97(_) BOOST_PP_SEQ_ELEM_96
+# define BOOST_PP_SEQ_ELEM_98(_) BOOST_PP_SEQ_ELEM_97
+# define BOOST_PP_SEQ_ELEM_99(_) BOOST_PP_SEQ_ELEM_98
+# define BOOST_PP_SEQ_ELEM_100(_) BOOST_PP_SEQ_ELEM_99
+# define BOOST_PP_SEQ_ELEM_101(_) BOOST_PP_SEQ_ELEM_100
+# define BOOST_PP_SEQ_ELEM_102(_) BOOST_PP_SEQ_ELEM_101
+# define BOOST_PP_SEQ_ELEM_103(_) BOOST_PP_SEQ_ELEM_102
+# define BOOST_PP_SEQ_ELEM_104(_) BOOST_PP_SEQ_ELEM_103
+# define BOOST_PP_SEQ_ELEM_105(_) BOOST_PP_SEQ_ELEM_104
+# define BOOST_PP_SEQ_ELEM_106(_) BOOST_PP_SEQ_ELEM_105
+# define BOOST_PP_SEQ_ELEM_107(_) BOOST_PP_SEQ_ELEM_106
+# define BOOST_PP_SEQ_ELEM_108(_) BOOST_PP_SEQ_ELEM_107
+# define BOOST_PP_SEQ_ELEM_109(_) BOOST_PP_SEQ_ELEM_108
+# define BOOST_PP_SEQ_ELEM_110(_) BOOST_PP_SEQ_ELEM_109
+# define BOOST_PP_SEQ_ELEM_111(_) BOOST_PP_SEQ_ELEM_110
+# define BOOST_PP_SEQ_ELEM_112(_) BOOST_PP_SEQ_ELEM_111
+# define BOOST_PP_SEQ_ELEM_113(_) BOOST_PP_SEQ_ELEM_112
+# define BOOST_PP_SEQ_ELEM_114(_) BOOST_PP_SEQ_ELEM_113
+# define BOOST_PP_SEQ_ELEM_115(_) BOOST_PP_SEQ_ELEM_114
+# define BOOST_PP_SEQ_ELEM_116(_) BOOST_PP_SEQ_ELEM_115
+# define BOOST_PP_SEQ_ELEM_117(_) BOOST_PP_SEQ_ELEM_116
+# define BOOST_PP_SEQ_ELEM_118(_) BOOST_PP_SEQ_ELEM_117
+# define BOOST_PP_SEQ_ELEM_119(_) BOOST_PP_SEQ_ELEM_118
+# define BOOST_PP_SEQ_ELEM_120(_) BOOST_PP_SEQ_ELEM_119
+# define BOOST_PP_SEQ_ELEM_121(_) BOOST_PP_SEQ_ELEM_120
+# define BOOST_PP_SEQ_ELEM_122(_) BOOST_PP_SEQ_ELEM_121
+# define BOOST_PP_SEQ_ELEM_123(_) BOOST_PP_SEQ_ELEM_122
+# define BOOST_PP_SEQ_ELEM_124(_) BOOST_PP_SEQ_ELEM_123
+# define BOOST_PP_SEQ_ELEM_125(_) BOOST_PP_SEQ_ELEM_124
+# define BOOST_PP_SEQ_ELEM_126(_) BOOST_PP_SEQ_ELEM_125
+# define BOOST_PP_SEQ_ELEM_127(_) BOOST_PP_SEQ_ELEM_126
+# define BOOST_PP_SEQ_ELEM_128(_) BOOST_PP_SEQ_ELEM_127
+# define BOOST_PP_SEQ_ELEM_129(_) BOOST_PP_SEQ_ELEM_128
+# define BOOST_PP_SEQ_ELEM_130(_) BOOST_PP_SEQ_ELEM_129
+# define BOOST_PP_SEQ_ELEM_131(_) BOOST_PP_SEQ_ELEM_130
+# define BOOST_PP_SEQ_ELEM_132(_) BOOST_PP_SEQ_ELEM_131
+# define BOOST_PP_SEQ_ELEM_133(_) BOOST_PP_SEQ_ELEM_132
+# define BOOST_PP_SEQ_ELEM_134(_) BOOST_PP_SEQ_ELEM_133
+# define BOOST_PP_SEQ_ELEM_135(_) BOOST_PP_SEQ_ELEM_134
+# define BOOST_PP_SEQ_ELEM_136(_) BOOST_PP_SEQ_ELEM_135
+# define BOOST_PP_SEQ_ELEM_137(_) BOOST_PP_SEQ_ELEM_136
+# define BOOST_PP_SEQ_ELEM_138(_) BOOST_PP_SEQ_ELEM_137
+# define BOOST_PP_SEQ_ELEM_139(_) BOOST_PP_SEQ_ELEM_138
+# define BOOST_PP_SEQ_ELEM_140(_) BOOST_PP_SEQ_ELEM_139
+# define BOOST_PP_SEQ_ELEM_141(_) BOOST_PP_SEQ_ELEM_140
+# define BOOST_PP_SEQ_ELEM_142(_) BOOST_PP_SEQ_ELEM_141
+# define BOOST_PP_SEQ_ELEM_143(_) BOOST_PP_SEQ_ELEM_142
+# define BOOST_PP_SEQ_ELEM_144(_) BOOST_PP_SEQ_ELEM_143
+# define BOOST_PP_SEQ_ELEM_145(_) BOOST_PP_SEQ_ELEM_144
+# define BOOST_PP_SEQ_ELEM_146(_) BOOST_PP_SEQ_ELEM_145
+# define BOOST_PP_SEQ_ELEM_147(_) BOOST_PP_SEQ_ELEM_146
+# define BOOST_PP_SEQ_ELEM_148(_) BOOST_PP_SEQ_ELEM_147
+# define BOOST_PP_SEQ_ELEM_149(_) BOOST_PP_SEQ_ELEM_148
+# define BOOST_PP_SEQ_ELEM_150(_) BOOST_PP_SEQ_ELEM_149
+# define BOOST_PP_SEQ_ELEM_151(_) BOOST_PP_SEQ_ELEM_150
+# define BOOST_PP_SEQ_ELEM_152(_) BOOST_PP_SEQ_ELEM_151
+# define BOOST_PP_SEQ_ELEM_153(_) BOOST_PP_SEQ_ELEM_152
+# define BOOST_PP_SEQ_ELEM_154(_) BOOST_PP_SEQ_ELEM_153
+# define BOOST_PP_SEQ_ELEM_155(_) BOOST_PP_SEQ_ELEM_154
+# define BOOST_PP_SEQ_ELEM_156(_) BOOST_PP_SEQ_ELEM_155
+# define BOOST_PP_SEQ_ELEM_157(_) BOOST_PP_SEQ_ELEM_156
+# define BOOST_PP_SEQ_ELEM_158(_) BOOST_PP_SEQ_ELEM_157
+# define BOOST_PP_SEQ_ELEM_159(_) BOOST_PP_SEQ_ELEM_158
+# define BOOST_PP_SEQ_ELEM_160(_) BOOST_PP_SEQ_ELEM_159
+# define BOOST_PP_SEQ_ELEM_161(_) BOOST_PP_SEQ_ELEM_160
+# define BOOST_PP_SEQ_ELEM_162(_) BOOST_PP_SEQ_ELEM_161
+# define BOOST_PP_SEQ_ELEM_163(_) BOOST_PP_SEQ_ELEM_162
+# define BOOST_PP_SEQ_ELEM_164(_) BOOST_PP_SEQ_ELEM_163
+# define BOOST_PP_SEQ_ELEM_165(_) BOOST_PP_SEQ_ELEM_164
+# define BOOST_PP_SEQ_ELEM_166(_) BOOST_PP_SEQ_ELEM_165
+# define BOOST_PP_SEQ_ELEM_167(_) BOOST_PP_SEQ_ELEM_166
+# define BOOST_PP_SEQ_ELEM_168(_) BOOST_PP_SEQ_ELEM_167
+# define BOOST_PP_SEQ_ELEM_169(_) BOOST_PP_SEQ_ELEM_168
+# define BOOST_PP_SEQ_ELEM_170(_) BOOST_PP_SEQ_ELEM_169
+# define BOOST_PP_SEQ_ELEM_171(_) BOOST_PP_SEQ_ELEM_170
+# define BOOST_PP_SEQ_ELEM_172(_) BOOST_PP_SEQ_ELEM_171
+# define BOOST_PP_SEQ_ELEM_173(_) BOOST_PP_SEQ_ELEM_172
+# define BOOST_PP_SEQ_ELEM_174(_) BOOST_PP_SEQ_ELEM_173
+# define BOOST_PP_SEQ_ELEM_175(_) BOOST_PP_SEQ_ELEM_174
+# define BOOST_PP_SEQ_ELEM_176(_) BOOST_PP_SEQ_ELEM_175
+# define BOOST_PP_SEQ_ELEM_177(_) BOOST_PP_SEQ_ELEM_176
+# define BOOST_PP_SEQ_ELEM_178(_) BOOST_PP_SEQ_ELEM_177
+# define BOOST_PP_SEQ_ELEM_179(_) BOOST_PP_SEQ_ELEM_178
+# define BOOST_PP_SEQ_ELEM_180(_) BOOST_PP_SEQ_ELEM_179
+# define BOOST_PP_SEQ_ELEM_181(_) BOOST_PP_SEQ_ELEM_180
+# define BOOST_PP_SEQ_ELEM_182(_) BOOST_PP_SEQ_ELEM_181
+# define BOOST_PP_SEQ_ELEM_183(_) BOOST_PP_SEQ_ELEM_182
+# define BOOST_PP_SEQ_ELEM_184(_) BOOST_PP_SEQ_ELEM_183
+# define BOOST_PP_SEQ_ELEM_185(_) BOOST_PP_SEQ_ELEM_184
+# define BOOST_PP_SEQ_ELEM_186(_) BOOST_PP_SEQ_ELEM_185
+# define BOOST_PP_SEQ_ELEM_187(_) BOOST_PP_SEQ_ELEM_186
+# define BOOST_PP_SEQ_ELEM_188(_) BOOST_PP_SEQ_ELEM_187
+# define BOOST_PP_SEQ_ELEM_189(_) BOOST_PP_SEQ_ELEM_188
+# define BOOST_PP_SEQ_ELEM_190(_) BOOST_PP_SEQ_ELEM_189
+# define BOOST_PP_SEQ_ELEM_191(_) BOOST_PP_SEQ_ELEM_190
+# define BOOST_PP_SEQ_ELEM_192(_) BOOST_PP_SEQ_ELEM_191
+# define BOOST_PP_SEQ_ELEM_193(_) BOOST_PP_SEQ_ELEM_192
+# define BOOST_PP_SEQ_ELEM_194(_) BOOST_PP_SEQ_ELEM_193
+# define BOOST_PP_SEQ_ELEM_195(_) BOOST_PP_SEQ_ELEM_194
+# define BOOST_PP_SEQ_ELEM_196(_) BOOST_PP_SEQ_ELEM_195
+# define BOOST_PP_SEQ_ELEM_197(_) BOOST_PP_SEQ_ELEM_196
+# define BOOST_PP_SEQ_ELEM_198(_) BOOST_PP_SEQ_ELEM_197
+# define BOOST_PP_SEQ_ELEM_199(_) BOOST_PP_SEQ_ELEM_198
+# define BOOST_PP_SEQ_ELEM_200(_) BOOST_PP_SEQ_ELEM_199
+# define BOOST_PP_SEQ_ELEM_201(_) BOOST_PP_SEQ_ELEM_200
+# define BOOST_PP_SEQ_ELEM_202(_) BOOST_PP_SEQ_ELEM_201
+# define BOOST_PP_SEQ_ELEM_203(_) BOOST_PP_SEQ_ELEM_202
+# define BOOST_PP_SEQ_ELEM_204(_) BOOST_PP_SEQ_ELEM_203
+# define BOOST_PP_SEQ_ELEM_205(_) BOOST_PP_SEQ_ELEM_204
+# define BOOST_PP_SEQ_ELEM_206(_) BOOST_PP_SEQ_ELEM_205
+# define BOOST_PP_SEQ_ELEM_207(_) BOOST_PP_SEQ_ELEM_206
+# define BOOST_PP_SEQ_ELEM_208(_) BOOST_PP_SEQ_ELEM_207
+# define BOOST_PP_SEQ_ELEM_209(_) BOOST_PP_SEQ_ELEM_208
+# define BOOST_PP_SEQ_ELEM_210(_) BOOST_PP_SEQ_ELEM_209
+# define BOOST_PP_SEQ_ELEM_211(_) BOOST_PP_SEQ_ELEM_210
+# define BOOST_PP_SEQ_ELEM_212(_) BOOST_PP_SEQ_ELEM_211
+# define BOOST_PP_SEQ_ELEM_213(_) BOOST_PP_SEQ_ELEM_212
+# define BOOST_PP_SEQ_ELEM_214(_) BOOST_PP_SEQ_ELEM_213
+# define BOOST_PP_SEQ_ELEM_215(_) BOOST_PP_SEQ_ELEM_214
+# define BOOST_PP_SEQ_ELEM_216(_) BOOST_PP_SEQ_ELEM_215
+# define BOOST_PP_SEQ_ELEM_217(_) BOOST_PP_SEQ_ELEM_216
+# define BOOST_PP_SEQ_ELEM_218(_) BOOST_PP_SEQ_ELEM_217
+# define BOOST_PP_SEQ_ELEM_219(_) BOOST_PP_SEQ_ELEM_218
+# define BOOST_PP_SEQ_ELEM_220(_) BOOST_PP_SEQ_ELEM_219
+# define BOOST_PP_SEQ_ELEM_221(_) BOOST_PP_SEQ_ELEM_220
+# define BOOST_PP_SEQ_ELEM_222(_) BOOST_PP_SEQ_ELEM_221
+# define BOOST_PP_SEQ_ELEM_223(_) BOOST_PP_SEQ_ELEM_222
+# define BOOST_PP_SEQ_ELEM_224(_) BOOST_PP_SEQ_ELEM_223
+# define BOOST_PP_SEQ_ELEM_225(_) BOOST_PP_SEQ_ELEM_224
+# define BOOST_PP_SEQ_ELEM_226(_) BOOST_PP_SEQ_ELEM_225
+# define BOOST_PP_SEQ_ELEM_227(_) BOOST_PP_SEQ_ELEM_226
+# define BOOST_PP_SEQ_ELEM_228(_) BOOST_PP_SEQ_ELEM_227
+# define BOOST_PP_SEQ_ELEM_229(_) BOOST_PP_SEQ_ELEM_228
+# define BOOST_PP_SEQ_ELEM_230(_) BOOST_PP_SEQ_ELEM_229
+# define BOOST_PP_SEQ_ELEM_231(_) BOOST_PP_SEQ_ELEM_230
+# define BOOST_PP_SEQ_ELEM_232(_) BOOST_PP_SEQ_ELEM_231
+# define BOOST_PP_SEQ_ELEM_233(_) BOOST_PP_SEQ_ELEM_232
+# define BOOST_PP_SEQ_ELEM_234(_) BOOST_PP_SEQ_ELEM_233
+# define BOOST_PP_SEQ_ELEM_235(_) BOOST_PP_SEQ_ELEM_234
+# define BOOST_PP_SEQ_ELEM_236(_) BOOST_PP_SEQ_ELEM_235
+# define BOOST_PP_SEQ_ELEM_237(_) BOOST_PP_SEQ_ELEM_236
+# define BOOST_PP_SEQ_ELEM_238(_) BOOST_PP_SEQ_ELEM_237
+# define BOOST_PP_SEQ_ELEM_239(_) BOOST_PP_SEQ_ELEM_238
+# define BOOST_PP_SEQ_ELEM_240(_) BOOST_PP_SEQ_ELEM_239
+# define BOOST_PP_SEQ_ELEM_241(_) BOOST_PP_SEQ_ELEM_240
+# define BOOST_PP_SEQ_ELEM_242(_) BOOST_PP_SEQ_ELEM_241
+# define BOOST_PP_SEQ_ELEM_243(_) BOOST_PP_SEQ_ELEM_242
+# define BOOST_PP_SEQ_ELEM_244(_) BOOST_PP_SEQ_ELEM_243
+# define BOOST_PP_SEQ_ELEM_245(_) BOOST_PP_SEQ_ELEM_244
+# define BOOST_PP_SEQ_ELEM_246(_) BOOST_PP_SEQ_ELEM_245
+# define BOOST_PP_SEQ_ELEM_247(_) BOOST_PP_SEQ_ELEM_246
+# define BOOST_PP_SEQ_ELEM_248(_) BOOST_PP_SEQ_ELEM_247
+# define BOOST_PP_SEQ_ELEM_249(_) BOOST_PP_SEQ_ELEM_248
+# define BOOST_PP_SEQ_ELEM_250(_) BOOST_PP_SEQ_ELEM_249
+# define BOOST_PP_SEQ_ELEM_251(_) BOOST_PP_SEQ_ELEM_250
+# define BOOST_PP_SEQ_ELEM_252(_) BOOST_PP_SEQ_ELEM_251
+# define BOOST_PP_SEQ_ELEM_253(_) BOOST_PP_SEQ_ELEM_252
+# define BOOST_PP_SEQ_ELEM_254(_) BOOST_PP_SEQ_ELEM_253
+# define BOOST_PP_SEQ_ELEM_255(_) BOOST_PP_SEQ_ELEM_254
+#
+# endif
index b3a9f1e3a088d7d264f6cd0f1389283cc7a276b6..b63b2425bda26fd0db9e3b673bf78a6cbf6d97b7 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_ENUM_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_ENUM_HPP\r
-#\r
-# include <boost/preprocessor/cat.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/seq/size.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_ENUM */\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM_I(seq)\r
-#    define BOOST_PP_SEQ_ENUM_I(seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, BOOST_PP_SEQ_SIZE(seq)) seq\r
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM_I(BOOST_PP_SEQ_SIZE(seq), seq)\r
-#    define BOOST_PP_SEQ_ENUM_I(size, seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, size) seq\r
-# else\r
-#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, BOOST_PP_SEQ_SIZE(seq)) seq\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_ENUM_1(x) x\r
-# define BOOST_PP_SEQ_ENUM_2(x) x, BOOST_PP_SEQ_ENUM_1\r
-# define BOOST_PP_SEQ_ENUM_3(x) x, BOOST_PP_SEQ_ENUM_2\r
-# define BOOST_PP_SEQ_ENUM_4(x) x, BOOST_PP_SEQ_ENUM_3\r
-# define BOOST_PP_SEQ_ENUM_5(x) x, BOOST_PP_SEQ_ENUM_4\r
-# define BOOST_PP_SEQ_ENUM_6(x) x, BOOST_PP_SEQ_ENUM_5\r
-# define BOOST_PP_SEQ_ENUM_7(x) x, BOOST_PP_SEQ_ENUM_6\r
-# define BOOST_PP_SEQ_ENUM_8(x) x, BOOST_PP_SEQ_ENUM_7\r
-# define BOOST_PP_SEQ_ENUM_9(x) x, BOOST_PP_SEQ_ENUM_8\r
-# define BOOST_PP_SEQ_ENUM_10(x) x, BOOST_PP_SEQ_ENUM_9\r
-# define BOOST_PP_SEQ_ENUM_11(x) x, BOOST_PP_SEQ_ENUM_10\r
-# define BOOST_PP_SEQ_ENUM_12(x) x, BOOST_PP_SEQ_ENUM_11\r
-# define BOOST_PP_SEQ_ENUM_13(x) x, BOOST_PP_SEQ_ENUM_12\r
-# define BOOST_PP_SEQ_ENUM_14(x) x, BOOST_PP_SEQ_ENUM_13\r
-# define BOOST_PP_SEQ_ENUM_15(x) x, BOOST_PP_SEQ_ENUM_14\r
-# define BOOST_PP_SEQ_ENUM_16(x) x, BOOST_PP_SEQ_ENUM_15\r
-# define BOOST_PP_SEQ_ENUM_17(x) x, BOOST_PP_SEQ_ENUM_16\r
-# define BOOST_PP_SEQ_ENUM_18(x) x, BOOST_PP_SEQ_ENUM_17\r
-# define BOOST_PP_SEQ_ENUM_19(x) x, BOOST_PP_SEQ_ENUM_18\r
-# define BOOST_PP_SEQ_ENUM_20(x) x, BOOST_PP_SEQ_ENUM_19\r
-# define BOOST_PP_SEQ_ENUM_21(x) x, BOOST_PP_SEQ_ENUM_20\r
-# define BOOST_PP_SEQ_ENUM_22(x) x, BOOST_PP_SEQ_ENUM_21\r
-# define BOOST_PP_SEQ_ENUM_23(x) x, BOOST_PP_SEQ_ENUM_22\r
-# define BOOST_PP_SEQ_ENUM_24(x) x, BOOST_PP_SEQ_ENUM_23\r
-# define BOOST_PP_SEQ_ENUM_25(x) x, BOOST_PP_SEQ_ENUM_24\r
-# define BOOST_PP_SEQ_ENUM_26(x) x, BOOST_PP_SEQ_ENUM_25\r
-# define BOOST_PP_SEQ_ENUM_27(x) x, BOOST_PP_SEQ_ENUM_26\r
-# define BOOST_PP_SEQ_ENUM_28(x) x, BOOST_PP_SEQ_ENUM_27\r
-# define BOOST_PP_SEQ_ENUM_29(x) x, BOOST_PP_SEQ_ENUM_28\r
-# define BOOST_PP_SEQ_ENUM_30(x) x, BOOST_PP_SEQ_ENUM_29\r
-# define BOOST_PP_SEQ_ENUM_31(x) x, BOOST_PP_SEQ_ENUM_30\r
-# define BOOST_PP_SEQ_ENUM_32(x) x, BOOST_PP_SEQ_ENUM_31\r
-# define BOOST_PP_SEQ_ENUM_33(x) x, BOOST_PP_SEQ_ENUM_32\r
-# define BOOST_PP_SEQ_ENUM_34(x) x, BOOST_PP_SEQ_ENUM_33\r
-# define BOOST_PP_SEQ_ENUM_35(x) x, BOOST_PP_SEQ_ENUM_34\r
-# define BOOST_PP_SEQ_ENUM_36(x) x, BOOST_PP_SEQ_ENUM_35\r
-# define BOOST_PP_SEQ_ENUM_37(x) x, BOOST_PP_SEQ_ENUM_36\r
-# define BOOST_PP_SEQ_ENUM_38(x) x, BOOST_PP_SEQ_ENUM_37\r
-# define BOOST_PP_SEQ_ENUM_39(x) x, BOOST_PP_SEQ_ENUM_38\r
-# define BOOST_PP_SEQ_ENUM_40(x) x, BOOST_PP_SEQ_ENUM_39\r
-# define BOOST_PP_SEQ_ENUM_41(x) x, BOOST_PP_SEQ_ENUM_40\r
-# define BOOST_PP_SEQ_ENUM_42(x) x, BOOST_PP_SEQ_ENUM_41\r
-# define BOOST_PP_SEQ_ENUM_43(x) x, BOOST_PP_SEQ_ENUM_42\r
-# define BOOST_PP_SEQ_ENUM_44(x) x, BOOST_PP_SEQ_ENUM_43\r
-# define BOOST_PP_SEQ_ENUM_45(x) x, BOOST_PP_SEQ_ENUM_44\r
-# define BOOST_PP_SEQ_ENUM_46(x) x, BOOST_PP_SEQ_ENUM_45\r
-# define BOOST_PP_SEQ_ENUM_47(x) x, BOOST_PP_SEQ_ENUM_46\r
-# define BOOST_PP_SEQ_ENUM_48(x) x, BOOST_PP_SEQ_ENUM_47\r
-# define BOOST_PP_SEQ_ENUM_49(x) x, BOOST_PP_SEQ_ENUM_48\r
-# define BOOST_PP_SEQ_ENUM_50(x) x, BOOST_PP_SEQ_ENUM_49\r
-# define BOOST_PP_SEQ_ENUM_51(x) x, BOOST_PP_SEQ_ENUM_50\r
-# define BOOST_PP_SEQ_ENUM_52(x) x, BOOST_PP_SEQ_ENUM_51\r
-# define BOOST_PP_SEQ_ENUM_53(x) x, BOOST_PP_SEQ_ENUM_52\r
-# define BOOST_PP_SEQ_ENUM_54(x) x, BOOST_PP_SEQ_ENUM_53\r
-# define BOOST_PP_SEQ_ENUM_55(x) x, BOOST_PP_SEQ_ENUM_54\r
-# define BOOST_PP_SEQ_ENUM_56(x) x, BOOST_PP_SEQ_ENUM_55\r
-# define BOOST_PP_SEQ_ENUM_57(x) x, BOOST_PP_SEQ_ENUM_56\r
-# define BOOST_PP_SEQ_ENUM_58(x) x, BOOST_PP_SEQ_ENUM_57\r
-# define BOOST_PP_SEQ_ENUM_59(x) x, BOOST_PP_SEQ_ENUM_58\r
-# define BOOST_PP_SEQ_ENUM_60(x) x, BOOST_PP_SEQ_ENUM_59\r
-# define BOOST_PP_SEQ_ENUM_61(x) x, BOOST_PP_SEQ_ENUM_60\r
-# define BOOST_PP_SEQ_ENUM_62(x) x, BOOST_PP_SEQ_ENUM_61\r
-# define BOOST_PP_SEQ_ENUM_63(x) x, BOOST_PP_SEQ_ENUM_62\r
-# define BOOST_PP_SEQ_ENUM_64(x) x, BOOST_PP_SEQ_ENUM_63\r
-# define BOOST_PP_SEQ_ENUM_65(x) x, BOOST_PP_SEQ_ENUM_64\r
-# define BOOST_PP_SEQ_ENUM_66(x) x, BOOST_PP_SEQ_ENUM_65\r
-# define BOOST_PP_SEQ_ENUM_67(x) x, BOOST_PP_SEQ_ENUM_66\r
-# define BOOST_PP_SEQ_ENUM_68(x) x, BOOST_PP_SEQ_ENUM_67\r
-# define BOOST_PP_SEQ_ENUM_69(x) x, BOOST_PP_SEQ_ENUM_68\r
-# define BOOST_PP_SEQ_ENUM_70(x) x, BOOST_PP_SEQ_ENUM_69\r
-# define BOOST_PP_SEQ_ENUM_71(x) x, BOOST_PP_SEQ_ENUM_70\r
-# define BOOST_PP_SEQ_ENUM_72(x) x, BOOST_PP_SEQ_ENUM_71\r
-# define BOOST_PP_SEQ_ENUM_73(x) x, BOOST_PP_SEQ_ENUM_72\r
-# define BOOST_PP_SEQ_ENUM_74(x) x, BOOST_PP_SEQ_ENUM_73\r
-# define BOOST_PP_SEQ_ENUM_75(x) x, BOOST_PP_SEQ_ENUM_74\r
-# define BOOST_PP_SEQ_ENUM_76(x) x, BOOST_PP_SEQ_ENUM_75\r
-# define BOOST_PP_SEQ_ENUM_77(x) x, BOOST_PP_SEQ_ENUM_76\r
-# define BOOST_PP_SEQ_ENUM_78(x) x, BOOST_PP_SEQ_ENUM_77\r
-# define BOOST_PP_SEQ_ENUM_79(x) x, BOOST_PP_SEQ_ENUM_78\r
-# define BOOST_PP_SEQ_ENUM_80(x) x, BOOST_PP_SEQ_ENUM_79\r
-# define BOOST_PP_SEQ_ENUM_81(x) x, BOOST_PP_SEQ_ENUM_80\r
-# define BOOST_PP_SEQ_ENUM_82(x) x, BOOST_PP_SEQ_ENUM_81\r
-# define BOOST_PP_SEQ_ENUM_83(x) x, BOOST_PP_SEQ_ENUM_82\r
-# define BOOST_PP_SEQ_ENUM_84(x) x, BOOST_PP_SEQ_ENUM_83\r
-# define BOOST_PP_SEQ_ENUM_85(x) x, BOOST_PP_SEQ_ENUM_84\r
-# define BOOST_PP_SEQ_ENUM_86(x) x, BOOST_PP_SEQ_ENUM_85\r
-# define BOOST_PP_SEQ_ENUM_87(x) x, BOOST_PP_SEQ_ENUM_86\r
-# define BOOST_PP_SEQ_ENUM_88(x) x, BOOST_PP_SEQ_ENUM_87\r
-# define BOOST_PP_SEQ_ENUM_89(x) x, BOOST_PP_SEQ_ENUM_88\r
-# define BOOST_PP_SEQ_ENUM_90(x) x, BOOST_PP_SEQ_ENUM_89\r
-# define BOOST_PP_SEQ_ENUM_91(x) x, BOOST_PP_SEQ_ENUM_90\r
-# define BOOST_PP_SEQ_ENUM_92(x) x, BOOST_PP_SEQ_ENUM_91\r
-# define BOOST_PP_SEQ_ENUM_93(x) x, BOOST_PP_SEQ_ENUM_92\r
-# define BOOST_PP_SEQ_ENUM_94(x) x, BOOST_PP_SEQ_ENUM_93\r
-# define BOOST_PP_SEQ_ENUM_95(x) x, BOOST_PP_SEQ_ENUM_94\r
-# define BOOST_PP_SEQ_ENUM_96(x) x, BOOST_PP_SEQ_ENUM_95\r
-# define BOOST_PP_SEQ_ENUM_97(x) x, BOOST_PP_SEQ_ENUM_96\r
-# define BOOST_PP_SEQ_ENUM_98(x) x, BOOST_PP_SEQ_ENUM_97\r
-# define BOOST_PP_SEQ_ENUM_99(x) x, BOOST_PP_SEQ_ENUM_98\r
-# define BOOST_PP_SEQ_ENUM_100(x) x, BOOST_PP_SEQ_ENUM_99\r
-# define BOOST_PP_SEQ_ENUM_101(x) x, BOOST_PP_SEQ_ENUM_100\r
-# define BOOST_PP_SEQ_ENUM_102(x) x, BOOST_PP_SEQ_ENUM_101\r
-# define BOOST_PP_SEQ_ENUM_103(x) x, BOOST_PP_SEQ_ENUM_102\r
-# define BOOST_PP_SEQ_ENUM_104(x) x, BOOST_PP_SEQ_ENUM_103\r
-# define BOOST_PP_SEQ_ENUM_105(x) x, BOOST_PP_SEQ_ENUM_104\r
-# define BOOST_PP_SEQ_ENUM_106(x) x, BOOST_PP_SEQ_ENUM_105\r
-# define BOOST_PP_SEQ_ENUM_107(x) x, BOOST_PP_SEQ_ENUM_106\r
-# define BOOST_PP_SEQ_ENUM_108(x) x, BOOST_PP_SEQ_ENUM_107\r
-# define BOOST_PP_SEQ_ENUM_109(x) x, BOOST_PP_SEQ_ENUM_108\r
-# define BOOST_PP_SEQ_ENUM_110(x) x, BOOST_PP_SEQ_ENUM_109\r
-# define BOOST_PP_SEQ_ENUM_111(x) x, BOOST_PP_SEQ_ENUM_110\r
-# define BOOST_PP_SEQ_ENUM_112(x) x, BOOST_PP_SEQ_ENUM_111\r
-# define BOOST_PP_SEQ_ENUM_113(x) x, BOOST_PP_SEQ_ENUM_112\r
-# define BOOST_PP_SEQ_ENUM_114(x) x, BOOST_PP_SEQ_ENUM_113\r
-# define BOOST_PP_SEQ_ENUM_115(x) x, BOOST_PP_SEQ_ENUM_114\r
-# define BOOST_PP_SEQ_ENUM_116(x) x, BOOST_PP_SEQ_ENUM_115\r
-# define BOOST_PP_SEQ_ENUM_117(x) x, BOOST_PP_SEQ_ENUM_116\r
-# define BOOST_PP_SEQ_ENUM_118(x) x, BOOST_PP_SEQ_ENUM_117\r
-# define BOOST_PP_SEQ_ENUM_119(x) x, BOOST_PP_SEQ_ENUM_118\r
-# define BOOST_PP_SEQ_ENUM_120(x) x, BOOST_PP_SEQ_ENUM_119\r
-# define BOOST_PP_SEQ_ENUM_121(x) x, BOOST_PP_SEQ_ENUM_120\r
-# define BOOST_PP_SEQ_ENUM_122(x) x, BOOST_PP_SEQ_ENUM_121\r
-# define BOOST_PP_SEQ_ENUM_123(x) x, BOOST_PP_SEQ_ENUM_122\r
-# define BOOST_PP_SEQ_ENUM_124(x) x, BOOST_PP_SEQ_ENUM_123\r
-# define BOOST_PP_SEQ_ENUM_125(x) x, BOOST_PP_SEQ_ENUM_124\r
-# define BOOST_PP_SEQ_ENUM_126(x) x, BOOST_PP_SEQ_ENUM_125\r
-# define BOOST_PP_SEQ_ENUM_127(x) x, BOOST_PP_SEQ_ENUM_126\r
-# define BOOST_PP_SEQ_ENUM_128(x) x, BOOST_PP_SEQ_ENUM_127\r
-# define BOOST_PP_SEQ_ENUM_129(x) x, BOOST_PP_SEQ_ENUM_128\r
-# define BOOST_PP_SEQ_ENUM_130(x) x, BOOST_PP_SEQ_ENUM_129\r
-# define BOOST_PP_SEQ_ENUM_131(x) x, BOOST_PP_SEQ_ENUM_130\r
-# define BOOST_PP_SEQ_ENUM_132(x) x, BOOST_PP_SEQ_ENUM_131\r
-# define BOOST_PP_SEQ_ENUM_133(x) x, BOOST_PP_SEQ_ENUM_132\r
-# define BOOST_PP_SEQ_ENUM_134(x) x, BOOST_PP_SEQ_ENUM_133\r
-# define BOOST_PP_SEQ_ENUM_135(x) x, BOOST_PP_SEQ_ENUM_134\r
-# define BOOST_PP_SEQ_ENUM_136(x) x, BOOST_PP_SEQ_ENUM_135\r
-# define BOOST_PP_SEQ_ENUM_137(x) x, BOOST_PP_SEQ_ENUM_136\r
-# define BOOST_PP_SEQ_ENUM_138(x) x, BOOST_PP_SEQ_ENUM_137\r
-# define BOOST_PP_SEQ_ENUM_139(x) x, BOOST_PP_SEQ_ENUM_138\r
-# define BOOST_PP_SEQ_ENUM_140(x) x, BOOST_PP_SEQ_ENUM_139\r
-# define BOOST_PP_SEQ_ENUM_141(x) x, BOOST_PP_SEQ_ENUM_140\r
-# define BOOST_PP_SEQ_ENUM_142(x) x, BOOST_PP_SEQ_ENUM_141\r
-# define BOOST_PP_SEQ_ENUM_143(x) x, BOOST_PP_SEQ_ENUM_142\r
-# define BOOST_PP_SEQ_ENUM_144(x) x, BOOST_PP_SEQ_ENUM_143\r
-# define BOOST_PP_SEQ_ENUM_145(x) x, BOOST_PP_SEQ_ENUM_144\r
-# define BOOST_PP_SEQ_ENUM_146(x) x, BOOST_PP_SEQ_ENUM_145\r
-# define BOOST_PP_SEQ_ENUM_147(x) x, BOOST_PP_SEQ_ENUM_146\r
-# define BOOST_PP_SEQ_ENUM_148(x) x, BOOST_PP_SEQ_ENUM_147\r
-# define BOOST_PP_SEQ_ENUM_149(x) x, BOOST_PP_SEQ_ENUM_148\r
-# define BOOST_PP_SEQ_ENUM_150(x) x, BOOST_PP_SEQ_ENUM_149\r
-# define BOOST_PP_SEQ_ENUM_151(x) x, BOOST_PP_SEQ_ENUM_150\r
-# define BOOST_PP_SEQ_ENUM_152(x) x, BOOST_PP_SEQ_ENUM_151\r
-# define BOOST_PP_SEQ_ENUM_153(x) x, BOOST_PP_SEQ_ENUM_152\r
-# define BOOST_PP_SEQ_ENUM_154(x) x, BOOST_PP_SEQ_ENUM_153\r
-# define BOOST_PP_SEQ_ENUM_155(x) x, BOOST_PP_SEQ_ENUM_154\r
-# define BOOST_PP_SEQ_ENUM_156(x) x, BOOST_PP_SEQ_ENUM_155\r
-# define BOOST_PP_SEQ_ENUM_157(x) x, BOOST_PP_SEQ_ENUM_156\r
-# define BOOST_PP_SEQ_ENUM_158(x) x, BOOST_PP_SEQ_ENUM_157\r
-# define BOOST_PP_SEQ_ENUM_159(x) x, BOOST_PP_SEQ_ENUM_158\r
-# define BOOST_PP_SEQ_ENUM_160(x) x, BOOST_PP_SEQ_ENUM_159\r
-# define BOOST_PP_SEQ_ENUM_161(x) x, BOOST_PP_SEQ_ENUM_160\r
-# define BOOST_PP_SEQ_ENUM_162(x) x, BOOST_PP_SEQ_ENUM_161\r
-# define BOOST_PP_SEQ_ENUM_163(x) x, BOOST_PP_SEQ_ENUM_162\r
-# define BOOST_PP_SEQ_ENUM_164(x) x, BOOST_PP_SEQ_ENUM_163\r
-# define BOOST_PP_SEQ_ENUM_165(x) x, BOOST_PP_SEQ_ENUM_164\r
-# define BOOST_PP_SEQ_ENUM_166(x) x, BOOST_PP_SEQ_ENUM_165\r
-# define BOOST_PP_SEQ_ENUM_167(x) x, BOOST_PP_SEQ_ENUM_166\r
-# define BOOST_PP_SEQ_ENUM_168(x) x, BOOST_PP_SEQ_ENUM_167\r
-# define BOOST_PP_SEQ_ENUM_169(x) x, BOOST_PP_SEQ_ENUM_168\r
-# define BOOST_PP_SEQ_ENUM_170(x) x, BOOST_PP_SEQ_ENUM_169\r
-# define BOOST_PP_SEQ_ENUM_171(x) x, BOOST_PP_SEQ_ENUM_170\r
-# define BOOST_PP_SEQ_ENUM_172(x) x, BOOST_PP_SEQ_ENUM_171\r
-# define BOOST_PP_SEQ_ENUM_173(x) x, BOOST_PP_SEQ_ENUM_172\r
-# define BOOST_PP_SEQ_ENUM_174(x) x, BOOST_PP_SEQ_ENUM_173\r
-# define BOOST_PP_SEQ_ENUM_175(x) x, BOOST_PP_SEQ_ENUM_174\r
-# define BOOST_PP_SEQ_ENUM_176(x) x, BOOST_PP_SEQ_ENUM_175\r
-# define BOOST_PP_SEQ_ENUM_177(x) x, BOOST_PP_SEQ_ENUM_176\r
-# define BOOST_PP_SEQ_ENUM_178(x) x, BOOST_PP_SEQ_ENUM_177\r
-# define BOOST_PP_SEQ_ENUM_179(x) x, BOOST_PP_SEQ_ENUM_178\r
-# define BOOST_PP_SEQ_ENUM_180(x) x, BOOST_PP_SEQ_ENUM_179\r
-# define BOOST_PP_SEQ_ENUM_181(x) x, BOOST_PP_SEQ_ENUM_180\r
-# define BOOST_PP_SEQ_ENUM_182(x) x, BOOST_PP_SEQ_ENUM_181\r
-# define BOOST_PP_SEQ_ENUM_183(x) x, BOOST_PP_SEQ_ENUM_182\r
-# define BOOST_PP_SEQ_ENUM_184(x) x, BOOST_PP_SEQ_ENUM_183\r
-# define BOOST_PP_SEQ_ENUM_185(x) x, BOOST_PP_SEQ_ENUM_184\r
-# define BOOST_PP_SEQ_ENUM_186(x) x, BOOST_PP_SEQ_ENUM_185\r
-# define BOOST_PP_SEQ_ENUM_187(x) x, BOOST_PP_SEQ_ENUM_186\r
-# define BOOST_PP_SEQ_ENUM_188(x) x, BOOST_PP_SEQ_ENUM_187\r
-# define BOOST_PP_SEQ_ENUM_189(x) x, BOOST_PP_SEQ_ENUM_188\r
-# define BOOST_PP_SEQ_ENUM_190(x) x, BOOST_PP_SEQ_ENUM_189\r
-# define BOOST_PP_SEQ_ENUM_191(x) x, BOOST_PP_SEQ_ENUM_190\r
-# define BOOST_PP_SEQ_ENUM_192(x) x, BOOST_PP_SEQ_ENUM_191\r
-# define BOOST_PP_SEQ_ENUM_193(x) x, BOOST_PP_SEQ_ENUM_192\r
-# define BOOST_PP_SEQ_ENUM_194(x) x, BOOST_PP_SEQ_ENUM_193\r
-# define BOOST_PP_SEQ_ENUM_195(x) x, BOOST_PP_SEQ_ENUM_194\r
-# define BOOST_PP_SEQ_ENUM_196(x) x, BOOST_PP_SEQ_ENUM_195\r
-# define BOOST_PP_SEQ_ENUM_197(x) x, BOOST_PP_SEQ_ENUM_196\r
-# define BOOST_PP_SEQ_ENUM_198(x) x, BOOST_PP_SEQ_ENUM_197\r
-# define BOOST_PP_SEQ_ENUM_199(x) x, BOOST_PP_SEQ_ENUM_198\r
-# define BOOST_PP_SEQ_ENUM_200(x) x, BOOST_PP_SEQ_ENUM_199\r
-# define BOOST_PP_SEQ_ENUM_201(x) x, BOOST_PP_SEQ_ENUM_200\r
-# define BOOST_PP_SEQ_ENUM_202(x) x, BOOST_PP_SEQ_ENUM_201\r
-# define BOOST_PP_SEQ_ENUM_203(x) x, BOOST_PP_SEQ_ENUM_202\r
-# define BOOST_PP_SEQ_ENUM_204(x) x, BOOST_PP_SEQ_ENUM_203\r
-# define BOOST_PP_SEQ_ENUM_205(x) x, BOOST_PP_SEQ_ENUM_204\r
-# define BOOST_PP_SEQ_ENUM_206(x) x, BOOST_PP_SEQ_ENUM_205\r
-# define BOOST_PP_SEQ_ENUM_207(x) x, BOOST_PP_SEQ_ENUM_206\r
-# define BOOST_PP_SEQ_ENUM_208(x) x, BOOST_PP_SEQ_ENUM_207\r
-# define BOOST_PP_SEQ_ENUM_209(x) x, BOOST_PP_SEQ_ENUM_208\r
-# define BOOST_PP_SEQ_ENUM_210(x) x, BOOST_PP_SEQ_ENUM_209\r
-# define BOOST_PP_SEQ_ENUM_211(x) x, BOOST_PP_SEQ_ENUM_210\r
-# define BOOST_PP_SEQ_ENUM_212(x) x, BOOST_PP_SEQ_ENUM_211\r
-# define BOOST_PP_SEQ_ENUM_213(x) x, BOOST_PP_SEQ_ENUM_212\r
-# define BOOST_PP_SEQ_ENUM_214(x) x, BOOST_PP_SEQ_ENUM_213\r
-# define BOOST_PP_SEQ_ENUM_215(x) x, BOOST_PP_SEQ_ENUM_214\r
-# define BOOST_PP_SEQ_ENUM_216(x) x, BOOST_PP_SEQ_ENUM_215\r
-# define BOOST_PP_SEQ_ENUM_217(x) x, BOOST_PP_SEQ_ENUM_216\r
-# define BOOST_PP_SEQ_ENUM_218(x) x, BOOST_PP_SEQ_ENUM_217\r
-# define BOOST_PP_SEQ_ENUM_219(x) x, BOOST_PP_SEQ_ENUM_218\r
-# define BOOST_PP_SEQ_ENUM_220(x) x, BOOST_PP_SEQ_ENUM_219\r
-# define BOOST_PP_SEQ_ENUM_221(x) x, BOOST_PP_SEQ_ENUM_220\r
-# define BOOST_PP_SEQ_ENUM_222(x) x, BOOST_PP_SEQ_ENUM_221\r
-# define BOOST_PP_SEQ_ENUM_223(x) x, BOOST_PP_SEQ_ENUM_222\r
-# define BOOST_PP_SEQ_ENUM_224(x) x, BOOST_PP_SEQ_ENUM_223\r
-# define BOOST_PP_SEQ_ENUM_225(x) x, BOOST_PP_SEQ_ENUM_224\r
-# define BOOST_PP_SEQ_ENUM_226(x) x, BOOST_PP_SEQ_ENUM_225\r
-# define BOOST_PP_SEQ_ENUM_227(x) x, BOOST_PP_SEQ_ENUM_226\r
-# define BOOST_PP_SEQ_ENUM_228(x) x, BOOST_PP_SEQ_ENUM_227\r
-# define BOOST_PP_SEQ_ENUM_229(x) x, BOOST_PP_SEQ_ENUM_228\r
-# define BOOST_PP_SEQ_ENUM_230(x) x, BOOST_PP_SEQ_ENUM_229\r
-# define BOOST_PP_SEQ_ENUM_231(x) x, BOOST_PP_SEQ_ENUM_230\r
-# define BOOST_PP_SEQ_ENUM_232(x) x, BOOST_PP_SEQ_ENUM_231\r
-# define BOOST_PP_SEQ_ENUM_233(x) x, BOOST_PP_SEQ_ENUM_232\r
-# define BOOST_PP_SEQ_ENUM_234(x) x, BOOST_PP_SEQ_ENUM_233\r
-# define BOOST_PP_SEQ_ENUM_235(x) x, BOOST_PP_SEQ_ENUM_234\r
-# define BOOST_PP_SEQ_ENUM_236(x) x, BOOST_PP_SEQ_ENUM_235\r
-# define BOOST_PP_SEQ_ENUM_237(x) x, BOOST_PP_SEQ_ENUM_236\r
-# define BOOST_PP_SEQ_ENUM_238(x) x, BOOST_PP_SEQ_ENUM_237\r
-# define BOOST_PP_SEQ_ENUM_239(x) x, BOOST_PP_SEQ_ENUM_238\r
-# define BOOST_PP_SEQ_ENUM_240(x) x, BOOST_PP_SEQ_ENUM_239\r
-# define BOOST_PP_SEQ_ENUM_241(x) x, BOOST_PP_SEQ_ENUM_240\r
-# define BOOST_PP_SEQ_ENUM_242(x) x, BOOST_PP_SEQ_ENUM_241\r
-# define BOOST_PP_SEQ_ENUM_243(x) x, BOOST_PP_SEQ_ENUM_242\r
-# define BOOST_PP_SEQ_ENUM_244(x) x, BOOST_PP_SEQ_ENUM_243\r
-# define BOOST_PP_SEQ_ENUM_245(x) x, BOOST_PP_SEQ_ENUM_244\r
-# define BOOST_PP_SEQ_ENUM_246(x) x, BOOST_PP_SEQ_ENUM_245\r
-# define BOOST_PP_SEQ_ENUM_247(x) x, BOOST_PP_SEQ_ENUM_246\r
-# define BOOST_PP_SEQ_ENUM_248(x) x, BOOST_PP_SEQ_ENUM_247\r
-# define BOOST_PP_SEQ_ENUM_249(x) x, BOOST_PP_SEQ_ENUM_248\r
-# define BOOST_PP_SEQ_ENUM_250(x) x, BOOST_PP_SEQ_ENUM_249\r
-# define BOOST_PP_SEQ_ENUM_251(x) x, BOOST_PP_SEQ_ENUM_250\r
-# define BOOST_PP_SEQ_ENUM_252(x) x, BOOST_PP_SEQ_ENUM_251\r
-# define BOOST_PP_SEQ_ENUM_253(x) x, BOOST_PP_SEQ_ENUM_252\r
-# define BOOST_PP_SEQ_ENUM_254(x) x, BOOST_PP_SEQ_ENUM_253\r
-# define BOOST_PP_SEQ_ENUM_255(x) x, BOOST_PP_SEQ_ENUM_254\r
-# define BOOST_PP_SEQ_ENUM_256(x) x, BOOST_PP_SEQ_ENUM_255\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_ENUM_HPP
+# define BOOST_PREPROCESSOR_SEQ_ENUM_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/seq/size.hpp>
+#
+# /* BOOST_PP_SEQ_ENUM */
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM_I(seq)
+#    define BOOST_PP_SEQ_ENUM_I(seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, BOOST_PP_SEQ_SIZE(seq)) seq
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM_I(BOOST_PP_SEQ_SIZE(seq), seq)
+#    define BOOST_PP_SEQ_ENUM_I(size, seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, size) seq
+# else
+#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, BOOST_PP_SEQ_SIZE(seq)) seq
+# endif
+#
+# define BOOST_PP_SEQ_ENUM_1(x) x
+# define BOOST_PP_SEQ_ENUM_2(x) x, BOOST_PP_SEQ_ENUM_1
+# define BOOST_PP_SEQ_ENUM_3(x) x, BOOST_PP_SEQ_ENUM_2
+# define BOOST_PP_SEQ_ENUM_4(x) x, BOOST_PP_SEQ_ENUM_3
+# define BOOST_PP_SEQ_ENUM_5(x) x, BOOST_PP_SEQ_ENUM_4
+# define BOOST_PP_SEQ_ENUM_6(x) x, BOOST_PP_SEQ_ENUM_5
+# define BOOST_PP_SEQ_ENUM_7(x) x, BOOST_PP_SEQ_ENUM_6
+# define BOOST_PP_SEQ_ENUM_8(x) x, BOOST_PP_SEQ_ENUM_7
+# define BOOST_PP_SEQ_ENUM_9(x) x, BOOST_PP_SEQ_ENUM_8
+# define BOOST_PP_SEQ_ENUM_10(x) x, BOOST_PP_SEQ_ENUM_9
+# define BOOST_PP_SEQ_ENUM_11(x) x, BOOST_PP_SEQ_ENUM_10
+# define BOOST_PP_SEQ_ENUM_12(x) x, BOOST_PP_SEQ_ENUM_11
+# define BOOST_PP_SEQ_ENUM_13(x) x, BOOST_PP_SEQ_ENUM_12
+# define BOOST_PP_SEQ_ENUM_14(x) x, BOOST_PP_SEQ_ENUM_13
+# define BOOST_PP_SEQ_ENUM_15(x) x, BOOST_PP_SEQ_ENUM_14
+# define BOOST_PP_SEQ_ENUM_16(x) x, BOOST_PP_SEQ_ENUM_15
+# define BOOST_PP_SEQ_ENUM_17(x) x, BOOST_PP_SEQ_ENUM_16
+# define BOOST_PP_SEQ_ENUM_18(x) x, BOOST_PP_SEQ_ENUM_17
+# define BOOST_PP_SEQ_ENUM_19(x) x, BOOST_PP_SEQ_ENUM_18
+# define BOOST_PP_SEQ_ENUM_20(x) x, BOOST_PP_SEQ_ENUM_19
+# define BOOST_PP_SEQ_ENUM_21(x) x, BOOST_PP_SEQ_ENUM_20
+# define BOOST_PP_SEQ_ENUM_22(x) x, BOOST_PP_SEQ_ENUM_21
+# define BOOST_PP_SEQ_ENUM_23(x) x, BOOST_PP_SEQ_ENUM_22
+# define BOOST_PP_SEQ_ENUM_24(x) x, BOOST_PP_SEQ_ENUM_23
+# define BOOST_PP_SEQ_ENUM_25(x) x, BOOST_PP_SEQ_ENUM_24
+# define BOOST_PP_SEQ_ENUM_26(x) x, BOOST_PP_SEQ_ENUM_25
+# define BOOST_PP_SEQ_ENUM_27(x) x, BOOST_PP_SEQ_ENUM_26
+# define BOOST_PP_SEQ_ENUM_28(x) x, BOOST_PP_SEQ_ENUM_27
+# define BOOST_PP_SEQ_ENUM_29(x) x, BOOST_PP_SEQ_ENUM_28
+# define BOOST_PP_SEQ_ENUM_30(x) x, BOOST_PP_SEQ_ENUM_29
+# define BOOST_PP_SEQ_ENUM_31(x) x, BOOST_PP_SEQ_ENUM_30
+# define BOOST_PP_SEQ_ENUM_32(x) x, BOOST_PP_SEQ_ENUM_31
+# define BOOST_PP_SEQ_ENUM_33(x) x, BOOST_PP_SEQ_ENUM_32
+# define BOOST_PP_SEQ_ENUM_34(x) x, BOOST_PP_SEQ_ENUM_33
+# define BOOST_PP_SEQ_ENUM_35(x) x, BOOST_PP_SEQ_ENUM_34
+# define BOOST_PP_SEQ_ENUM_36(x) x, BOOST_PP_SEQ_ENUM_35
+# define BOOST_PP_SEQ_ENUM_37(x) x, BOOST_PP_SEQ_ENUM_36
+# define BOOST_PP_SEQ_ENUM_38(x) x, BOOST_PP_SEQ_ENUM_37
+# define BOOST_PP_SEQ_ENUM_39(x) x, BOOST_PP_SEQ_ENUM_38
+# define BOOST_PP_SEQ_ENUM_40(x) x, BOOST_PP_SEQ_ENUM_39
+# define BOOST_PP_SEQ_ENUM_41(x) x, BOOST_PP_SEQ_ENUM_40
+# define BOOST_PP_SEQ_ENUM_42(x) x, BOOST_PP_SEQ_ENUM_41
+# define BOOST_PP_SEQ_ENUM_43(x) x, BOOST_PP_SEQ_ENUM_42
+# define BOOST_PP_SEQ_ENUM_44(x) x, BOOST_PP_SEQ_ENUM_43
+# define BOOST_PP_SEQ_ENUM_45(x) x, BOOST_PP_SEQ_ENUM_44
+# define BOOST_PP_SEQ_ENUM_46(x) x, BOOST_PP_SEQ_ENUM_45
+# define BOOST_PP_SEQ_ENUM_47(x) x, BOOST_PP_SEQ_ENUM_46
+# define BOOST_PP_SEQ_ENUM_48(x) x, BOOST_PP_SEQ_ENUM_47
+# define BOOST_PP_SEQ_ENUM_49(x) x, BOOST_PP_SEQ_ENUM_48
+# define BOOST_PP_SEQ_ENUM_50(x) x, BOOST_PP_SEQ_ENUM_49
+# define BOOST_PP_SEQ_ENUM_51(x) x, BOOST_PP_SEQ_ENUM_50
+# define BOOST_PP_SEQ_ENUM_52(x) x, BOOST_PP_SEQ_ENUM_51
+# define BOOST_PP_SEQ_ENUM_53(x) x, BOOST_PP_SEQ_ENUM_52
+# define BOOST_PP_SEQ_ENUM_54(x) x, BOOST_PP_SEQ_ENUM_53
+# define BOOST_PP_SEQ_ENUM_55(x) x, BOOST_PP_SEQ_ENUM_54
+# define BOOST_PP_SEQ_ENUM_56(x) x, BOOST_PP_SEQ_ENUM_55
+# define BOOST_PP_SEQ_ENUM_57(x) x, BOOST_PP_SEQ_ENUM_56
+# define BOOST_PP_SEQ_ENUM_58(x) x, BOOST_PP_SEQ_ENUM_57
+# define BOOST_PP_SEQ_ENUM_59(x) x, BOOST_PP_SEQ_ENUM_58
+# define BOOST_PP_SEQ_ENUM_60(x) x, BOOST_PP_SEQ_ENUM_59
+# define BOOST_PP_SEQ_ENUM_61(x) x, BOOST_PP_SEQ_ENUM_60
+# define BOOST_PP_SEQ_ENUM_62(x) x, BOOST_PP_SEQ_ENUM_61
+# define BOOST_PP_SEQ_ENUM_63(x) x, BOOST_PP_SEQ_ENUM_62
+# define BOOST_PP_SEQ_ENUM_64(x) x, BOOST_PP_SEQ_ENUM_63
+# define BOOST_PP_SEQ_ENUM_65(x) x, BOOST_PP_SEQ_ENUM_64
+# define BOOST_PP_SEQ_ENUM_66(x) x, BOOST_PP_SEQ_ENUM_65
+# define BOOST_PP_SEQ_ENUM_67(x) x, BOOST_PP_SEQ_ENUM_66
+# define BOOST_PP_SEQ_ENUM_68(x) x, BOOST_PP_SEQ_ENUM_67
+# define BOOST_PP_SEQ_ENUM_69(x) x, BOOST_PP_SEQ_ENUM_68
+# define BOOST_PP_SEQ_ENUM_70(x) x, BOOST_PP_SEQ_ENUM_69
+# define BOOST_PP_SEQ_ENUM_71(x) x, BOOST_PP_SEQ_ENUM_70
+# define BOOST_PP_SEQ_ENUM_72(x) x, BOOST_PP_SEQ_ENUM_71
+# define BOOST_PP_SEQ_ENUM_73(x) x, BOOST_PP_SEQ_ENUM_72
+# define BOOST_PP_SEQ_ENUM_74(x) x, BOOST_PP_SEQ_ENUM_73
+# define BOOST_PP_SEQ_ENUM_75(x) x, BOOST_PP_SEQ_ENUM_74
+# define BOOST_PP_SEQ_ENUM_76(x) x, BOOST_PP_SEQ_ENUM_75
+# define BOOST_PP_SEQ_ENUM_77(x) x, BOOST_PP_SEQ_ENUM_76
+# define BOOST_PP_SEQ_ENUM_78(x) x, BOOST_PP_SEQ_ENUM_77
+# define BOOST_PP_SEQ_ENUM_79(x) x, BOOST_PP_SEQ_ENUM_78
+# define BOOST_PP_SEQ_ENUM_80(x) x, BOOST_PP_SEQ_ENUM_79
+# define BOOST_PP_SEQ_ENUM_81(x) x, BOOST_PP_SEQ_ENUM_80
+# define BOOST_PP_SEQ_ENUM_82(x) x, BOOST_PP_SEQ_ENUM_81
+# define BOOST_PP_SEQ_ENUM_83(x) x, BOOST_PP_SEQ_ENUM_82
+# define BOOST_PP_SEQ_ENUM_84(x) x, BOOST_PP_SEQ_ENUM_83
+# define BOOST_PP_SEQ_ENUM_85(x) x, BOOST_PP_SEQ_ENUM_84
+# define BOOST_PP_SEQ_ENUM_86(x) x, BOOST_PP_SEQ_ENUM_85
+# define BOOST_PP_SEQ_ENUM_87(x) x, BOOST_PP_SEQ_ENUM_86
+# define BOOST_PP_SEQ_ENUM_88(x) x, BOOST_PP_SEQ_ENUM_87
+# define BOOST_PP_SEQ_ENUM_89(x) x, BOOST_PP_SEQ_ENUM_88
+# define BOOST_PP_SEQ_ENUM_90(x) x, BOOST_PP_SEQ_ENUM_89
+# define BOOST_PP_SEQ_ENUM_91(x) x, BOOST_PP_SEQ_ENUM_90
+# define BOOST_PP_SEQ_ENUM_92(x) x, BOOST_PP_SEQ_ENUM_91
+# define BOOST_PP_SEQ_ENUM_93(x) x, BOOST_PP_SEQ_ENUM_92
+# define BOOST_PP_SEQ_ENUM_94(x) x, BOOST_PP_SEQ_ENUM_93
+# define BOOST_PP_SEQ_ENUM_95(x) x, BOOST_PP_SEQ_ENUM_94
+# define BOOST_PP_SEQ_ENUM_96(x) x, BOOST_PP_SEQ_ENUM_95
+# define BOOST_PP_SEQ_ENUM_97(x) x, BOOST_PP_SEQ_ENUM_96
+# define BOOST_PP_SEQ_ENUM_98(x) x, BOOST_PP_SEQ_ENUM_97
+# define BOOST_PP_SEQ_ENUM_99(x) x, BOOST_PP_SEQ_ENUM_98
+# define BOOST_PP_SEQ_ENUM_100(x) x, BOOST_PP_SEQ_ENUM_99
+# define BOOST_PP_SEQ_ENUM_101(x) x, BOOST_PP_SEQ_ENUM_100
+# define BOOST_PP_SEQ_ENUM_102(x) x, BOOST_PP_SEQ_ENUM_101
+# define BOOST_PP_SEQ_ENUM_103(x) x, BOOST_PP_SEQ_ENUM_102
+# define BOOST_PP_SEQ_ENUM_104(x) x, BOOST_PP_SEQ_ENUM_103
+# define BOOST_PP_SEQ_ENUM_105(x) x, BOOST_PP_SEQ_ENUM_104
+# define BOOST_PP_SEQ_ENUM_106(x) x, BOOST_PP_SEQ_ENUM_105
+# define BOOST_PP_SEQ_ENUM_107(x) x, BOOST_PP_SEQ_ENUM_106
+# define BOOST_PP_SEQ_ENUM_108(x) x, BOOST_PP_SEQ_ENUM_107
+# define BOOST_PP_SEQ_ENUM_109(x) x, BOOST_PP_SEQ_ENUM_108
+# define BOOST_PP_SEQ_ENUM_110(x) x, BOOST_PP_SEQ_ENUM_109
+# define BOOST_PP_SEQ_ENUM_111(x) x, BOOST_PP_SEQ_ENUM_110
+# define BOOST_PP_SEQ_ENUM_112(x) x, BOOST_PP_SEQ_ENUM_111
+# define BOOST_PP_SEQ_ENUM_113(x) x, BOOST_PP_SEQ_ENUM_112
+# define BOOST_PP_SEQ_ENUM_114(x) x, BOOST_PP_SEQ_ENUM_113
+# define BOOST_PP_SEQ_ENUM_115(x) x, BOOST_PP_SEQ_ENUM_114
+# define BOOST_PP_SEQ_ENUM_116(x) x, BOOST_PP_SEQ_ENUM_115
+# define BOOST_PP_SEQ_ENUM_117(x) x, BOOST_PP_SEQ_ENUM_116
+# define BOOST_PP_SEQ_ENUM_118(x) x, BOOST_PP_SEQ_ENUM_117
+# define BOOST_PP_SEQ_ENUM_119(x) x, BOOST_PP_SEQ_ENUM_118
+# define BOOST_PP_SEQ_ENUM_120(x) x, BOOST_PP_SEQ_ENUM_119
+# define BOOST_PP_SEQ_ENUM_121(x) x, BOOST_PP_SEQ_ENUM_120
+# define BOOST_PP_SEQ_ENUM_122(x) x, BOOST_PP_SEQ_ENUM_121
+# define BOOST_PP_SEQ_ENUM_123(x) x, BOOST_PP_SEQ_ENUM_122
+# define BOOST_PP_SEQ_ENUM_124(x) x, BOOST_PP_SEQ_ENUM_123
+# define BOOST_PP_SEQ_ENUM_125(x) x, BOOST_PP_SEQ_ENUM_124
+# define BOOST_PP_SEQ_ENUM_126(x) x, BOOST_PP_SEQ_ENUM_125
+# define BOOST_PP_SEQ_ENUM_127(x) x, BOOST_PP_SEQ_ENUM_126
+# define BOOST_PP_SEQ_ENUM_128(x) x, BOOST_PP_SEQ_ENUM_127
+# define BOOST_PP_SEQ_ENUM_129(x) x, BOOST_PP_SEQ_ENUM_128
+# define BOOST_PP_SEQ_ENUM_130(x) x, BOOST_PP_SEQ_ENUM_129
+# define BOOST_PP_SEQ_ENUM_131(x) x, BOOST_PP_SEQ_ENUM_130
+# define BOOST_PP_SEQ_ENUM_132(x) x, BOOST_PP_SEQ_ENUM_131
+# define BOOST_PP_SEQ_ENUM_133(x) x, BOOST_PP_SEQ_ENUM_132
+# define BOOST_PP_SEQ_ENUM_134(x) x, BOOST_PP_SEQ_ENUM_133
+# define BOOST_PP_SEQ_ENUM_135(x) x, BOOST_PP_SEQ_ENUM_134
+# define BOOST_PP_SEQ_ENUM_136(x) x, BOOST_PP_SEQ_ENUM_135
+# define BOOST_PP_SEQ_ENUM_137(x) x, BOOST_PP_SEQ_ENUM_136
+# define BOOST_PP_SEQ_ENUM_138(x) x, BOOST_PP_SEQ_ENUM_137
+# define BOOST_PP_SEQ_ENUM_139(x) x, BOOST_PP_SEQ_ENUM_138
+# define BOOST_PP_SEQ_ENUM_140(x) x, BOOST_PP_SEQ_ENUM_139
+# define BOOST_PP_SEQ_ENUM_141(x) x, BOOST_PP_SEQ_ENUM_140
+# define BOOST_PP_SEQ_ENUM_142(x) x, BOOST_PP_SEQ_ENUM_141
+# define BOOST_PP_SEQ_ENUM_143(x) x, BOOST_PP_SEQ_ENUM_142
+# define BOOST_PP_SEQ_ENUM_144(x) x, BOOST_PP_SEQ_ENUM_143
+# define BOOST_PP_SEQ_ENUM_145(x) x, BOOST_PP_SEQ_ENUM_144
+# define BOOST_PP_SEQ_ENUM_146(x) x, BOOST_PP_SEQ_ENUM_145
+# define BOOST_PP_SEQ_ENUM_147(x) x, BOOST_PP_SEQ_ENUM_146
+# define BOOST_PP_SEQ_ENUM_148(x) x, BOOST_PP_SEQ_ENUM_147
+# define BOOST_PP_SEQ_ENUM_149(x) x, BOOST_PP_SEQ_ENUM_148
+# define BOOST_PP_SEQ_ENUM_150(x) x, BOOST_PP_SEQ_ENUM_149
+# define BOOST_PP_SEQ_ENUM_151(x) x, BOOST_PP_SEQ_ENUM_150
+# define BOOST_PP_SEQ_ENUM_152(x) x, BOOST_PP_SEQ_ENUM_151
+# define BOOST_PP_SEQ_ENUM_153(x) x, BOOST_PP_SEQ_ENUM_152
+# define BOOST_PP_SEQ_ENUM_154(x) x, BOOST_PP_SEQ_ENUM_153
+# define BOOST_PP_SEQ_ENUM_155(x) x, BOOST_PP_SEQ_ENUM_154
+# define BOOST_PP_SEQ_ENUM_156(x) x, BOOST_PP_SEQ_ENUM_155
+# define BOOST_PP_SEQ_ENUM_157(x) x, BOOST_PP_SEQ_ENUM_156
+# define BOOST_PP_SEQ_ENUM_158(x) x, BOOST_PP_SEQ_ENUM_157
+# define BOOST_PP_SEQ_ENUM_159(x) x, BOOST_PP_SEQ_ENUM_158
+# define BOOST_PP_SEQ_ENUM_160(x) x, BOOST_PP_SEQ_ENUM_159
+# define BOOST_PP_SEQ_ENUM_161(x) x, BOOST_PP_SEQ_ENUM_160
+# define BOOST_PP_SEQ_ENUM_162(x) x, BOOST_PP_SEQ_ENUM_161
+# define BOOST_PP_SEQ_ENUM_163(x) x, BOOST_PP_SEQ_ENUM_162
+# define BOOST_PP_SEQ_ENUM_164(x) x, BOOST_PP_SEQ_ENUM_163
+# define BOOST_PP_SEQ_ENUM_165(x) x, BOOST_PP_SEQ_ENUM_164
+# define BOOST_PP_SEQ_ENUM_166(x) x, BOOST_PP_SEQ_ENUM_165
+# define BOOST_PP_SEQ_ENUM_167(x) x, BOOST_PP_SEQ_ENUM_166
+# define BOOST_PP_SEQ_ENUM_168(x) x, BOOST_PP_SEQ_ENUM_167
+# define BOOST_PP_SEQ_ENUM_169(x) x, BOOST_PP_SEQ_ENUM_168
+# define BOOST_PP_SEQ_ENUM_170(x) x, BOOST_PP_SEQ_ENUM_169
+# define BOOST_PP_SEQ_ENUM_171(x) x, BOOST_PP_SEQ_ENUM_170
+# define BOOST_PP_SEQ_ENUM_172(x) x, BOOST_PP_SEQ_ENUM_171
+# define BOOST_PP_SEQ_ENUM_173(x) x, BOOST_PP_SEQ_ENUM_172
+# define BOOST_PP_SEQ_ENUM_174(x) x, BOOST_PP_SEQ_ENUM_173
+# define BOOST_PP_SEQ_ENUM_175(x) x, BOOST_PP_SEQ_ENUM_174
+# define BOOST_PP_SEQ_ENUM_176(x) x, BOOST_PP_SEQ_ENUM_175
+# define BOOST_PP_SEQ_ENUM_177(x) x, BOOST_PP_SEQ_ENUM_176
+# define BOOST_PP_SEQ_ENUM_178(x) x, BOOST_PP_SEQ_ENUM_177
+# define BOOST_PP_SEQ_ENUM_179(x) x, BOOST_PP_SEQ_ENUM_178
+# define BOOST_PP_SEQ_ENUM_180(x) x, BOOST_PP_SEQ_ENUM_179
+# define BOOST_PP_SEQ_ENUM_181(x) x, BOOST_PP_SEQ_ENUM_180
+# define BOOST_PP_SEQ_ENUM_182(x) x, BOOST_PP_SEQ_ENUM_181
+# define BOOST_PP_SEQ_ENUM_183(x) x, BOOST_PP_SEQ_ENUM_182
+# define BOOST_PP_SEQ_ENUM_184(x) x, BOOST_PP_SEQ_ENUM_183
+# define BOOST_PP_SEQ_ENUM_185(x) x, BOOST_PP_SEQ_ENUM_184
+# define BOOST_PP_SEQ_ENUM_186(x) x, BOOST_PP_SEQ_ENUM_185
+# define BOOST_PP_SEQ_ENUM_187(x) x, BOOST_PP_SEQ_ENUM_186
+# define BOOST_PP_SEQ_ENUM_188(x) x, BOOST_PP_SEQ_ENUM_187
+# define BOOST_PP_SEQ_ENUM_189(x) x, BOOST_PP_SEQ_ENUM_188
+# define BOOST_PP_SEQ_ENUM_190(x) x, BOOST_PP_SEQ_ENUM_189
+# define BOOST_PP_SEQ_ENUM_191(x) x, BOOST_PP_SEQ_ENUM_190
+# define BOOST_PP_SEQ_ENUM_192(x) x, BOOST_PP_SEQ_ENUM_191
+# define BOOST_PP_SEQ_ENUM_193(x) x, BOOST_PP_SEQ_ENUM_192
+# define BOOST_PP_SEQ_ENUM_194(x) x, BOOST_PP_SEQ_ENUM_193
+# define BOOST_PP_SEQ_ENUM_195(x) x, BOOST_PP_SEQ_ENUM_194
+# define BOOST_PP_SEQ_ENUM_196(x) x, BOOST_PP_SEQ_ENUM_195
+# define BOOST_PP_SEQ_ENUM_197(x) x, BOOST_PP_SEQ_ENUM_196
+# define BOOST_PP_SEQ_ENUM_198(x) x, BOOST_PP_SEQ_ENUM_197
+# define BOOST_PP_SEQ_ENUM_199(x) x, BOOST_PP_SEQ_ENUM_198
+# define BOOST_PP_SEQ_ENUM_200(x) x, BOOST_PP_SEQ_ENUM_199
+# define BOOST_PP_SEQ_ENUM_201(x) x, BOOST_PP_SEQ_ENUM_200
+# define BOOST_PP_SEQ_ENUM_202(x) x, BOOST_PP_SEQ_ENUM_201
+# define BOOST_PP_SEQ_ENUM_203(x) x, BOOST_PP_SEQ_ENUM_202
+# define BOOST_PP_SEQ_ENUM_204(x) x, BOOST_PP_SEQ_ENUM_203
+# define BOOST_PP_SEQ_ENUM_205(x) x, BOOST_PP_SEQ_ENUM_204
+# define BOOST_PP_SEQ_ENUM_206(x) x, BOOST_PP_SEQ_ENUM_205
+# define BOOST_PP_SEQ_ENUM_207(x) x, BOOST_PP_SEQ_ENUM_206
+# define BOOST_PP_SEQ_ENUM_208(x) x, BOOST_PP_SEQ_ENUM_207
+# define BOOST_PP_SEQ_ENUM_209(x) x, BOOST_PP_SEQ_ENUM_208
+# define BOOST_PP_SEQ_ENUM_210(x) x, BOOST_PP_SEQ_ENUM_209
+# define BOOST_PP_SEQ_ENUM_211(x) x, BOOST_PP_SEQ_ENUM_210
+# define BOOST_PP_SEQ_ENUM_212(x) x, BOOST_PP_SEQ_ENUM_211
+# define BOOST_PP_SEQ_ENUM_213(x) x, BOOST_PP_SEQ_ENUM_212
+# define BOOST_PP_SEQ_ENUM_214(x) x, BOOST_PP_SEQ_ENUM_213
+# define BOOST_PP_SEQ_ENUM_215(x) x, BOOST_PP_SEQ_ENUM_214
+# define BOOST_PP_SEQ_ENUM_216(x) x, BOOST_PP_SEQ_ENUM_215
+# define BOOST_PP_SEQ_ENUM_217(x) x, BOOST_PP_SEQ_ENUM_216
+# define BOOST_PP_SEQ_ENUM_218(x) x, BOOST_PP_SEQ_ENUM_217
+# define BOOST_PP_SEQ_ENUM_219(x) x, BOOST_PP_SEQ_ENUM_218
+# define BOOST_PP_SEQ_ENUM_220(x) x, BOOST_PP_SEQ_ENUM_219
+# define BOOST_PP_SEQ_ENUM_221(x) x, BOOST_PP_SEQ_ENUM_220
+# define BOOST_PP_SEQ_ENUM_222(x) x, BOOST_PP_SEQ_ENUM_221
+# define BOOST_PP_SEQ_ENUM_223(x) x, BOOST_PP_SEQ_ENUM_222
+# define BOOST_PP_SEQ_ENUM_224(x) x, BOOST_PP_SEQ_ENUM_223
+# define BOOST_PP_SEQ_ENUM_225(x) x, BOOST_PP_SEQ_ENUM_224
+# define BOOST_PP_SEQ_ENUM_226(x) x, BOOST_PP_SEQ_ENUM_225
+# define BOOST_PP_SEQ_ENUM_227(x) x, BOOST_PP_SEQ_ENUM_226
+# define BOOST_PP_SEQ_ENUM_228(x) x, BOOST_PP_SEQ_ENUM_227
+# define BOOST_PP_SEQ_ENUM_229(x) x, BOOST_PP_SEQ_ENUM_228
+# define BOOST_PP_SEQ_ENUM_230(x) x, BOOST_PP_SEQ_ENUM_229
+# define BOOST_PP_SEQ_ENUM_231(x) x, BOOST_PP_SEQ_ENUM_230
+# define BOOST_PP_SEQ_ENUM_232(x) x, BOOST_PP_SEQ_ENUM_231
+# define BOOST_PP_SEQ_ENUM_233(x) x, BOOST_PP_SEQ_ENUM_232
+# define BOOST_PP_SEQ_ENUM_234(x) x, BOOST_PP_SEQ_ENUM_233
+# define BOOST_PP_SEQ_ENUM_235(x) x, BOOST_PP_SEQ_ENUM_234
+# define BOOST_PP_SEQ_ENUM_236(x) x, BOOST_PP_SEQ_ENUM_235
+# define BOOST_PP_SEQ_ENUM_237(x) x, BOOST_PP_SEQ_ENUM_236
+# define BOOST_PP_SEQ_ENUM_238(x) x, BOOST_PP_SEQ_ENUM_237
+# define BOOST_PP_SEQ_ENUM_239(x) x, BOOST_PP_SEQ_ENUM_238
+# define BOOST_PP_SEQ_ENUM_240(x) x, BOOST_PP_SEQ_ENUM_239
+# define BOOST_PP_SEQ_ENUM_241(x) x, BOOST_PP_SEQ_ENUM_240
+# define BOOST_PP_SEQ_ENUM_242(x) x, BOOST_PP_SEQ_ENUM_241
+# define BOOST_PP_SEQ_ENUM_243(x) x, BOOST_PP_SEQ_ENUM_242
+# define BOOST_PP_SEQ_ENUM_244(x) x, BOOST_PP_SEQ_ENUM_243
+# define BOOST_PP_SEQ_ENUM_245(x) x, BOOST_PP_SEQ_ENUM_244
+# define BOOST_PP_SEQ_ENUM_246(x) x, BOOST_PP_SEQ_ENUM_245
+# define BOOST_PP_SEQ_ENUM_247(x) x, BOOST_PP_SEQ_ENUM_246
+# define BOOST_PP_SEQ_ENUM_248(x) x, BOOST_PP_SEQ_ENUM_247
+# define BOOST_PP_SEQ_ENUM_249(x) x, BOOST_PP_SEQ_ENUM_248
+# define BOOST_PP_SEQ_ENUM_250(x) x, BOOST_PP_SEQ_ENUM_249
+# define BOOST_PP_SEQ_ENUM_251(x) x, BOOST_PP_SEQ_ENUM_250
+# define BOOST_PP_SEQ_ENUM_252(x) x, BOOST_PP_SEQ_ENUM_251
+# define BOOST_PP_SEQ_ENUM_253(x) x, BOOST_PP_SEQ_ENUM_252
+# define BOOST_PP_SEQ_ENUM_254(x) x, BOOST_PP_SEQ_ENUM_253
+# define BOOST_PP_SEQ_ENUM_255(x) x, BOOST_PP_SEQ_ENUM_254
+# define BOOST_PP_SEQ_ENUM_256(x) x, BOOST_PP_SEQ_ENUM_255
+#
+# endif
index 896ae95a570e5dd3ffec49f02f3fcea587ec0011..4596bfe59b4603fc755b2fb1e2e7438ce7907812 100644 (file)
@@ -1,54 +1,54 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_FILTER_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_FILTER_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/control/expr_if.hpp>\r
-# include <boost/preprocessor/facilities/empty.hpp>\r
-# include <boost/preprocessor/seq/fold_left.hpp>\r
-# include <boost/preprocessor/seq/seq.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-# include <boost/preprocessor/tuple/rem.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_FILTER */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_FILTER(pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))\r
-# else\r
-#    define BOOST_PP_SEQ_FILTER(pred, data, seq) BOOST_PP_SEQ_FILTER_I(pred, data, seq)\r
-#    define BOOST_PP_SEQ_FILTER_I(pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))\r
-# endif\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_SEQ_FILTER_O(s, st, elem) BOOST_PP_SEQ_FILTER_O_IM(s, BOOST_PP_TUPLE_REM_3 st, elem)\r
-#    define BOOST_PP_SEQ_FILTER_O_IM(s, im, elem) BOOST_PP_SEQ_FILTER_O_I(s, im, elem)\r
-# else\r
-#    define BOOST_PP_SEQ_FILTER_O(s, st, elem) BOOST_PP_SEQ_FILTER_O_I(s, BOOST_PP_TUPLE_ELEM(3, 0, st), BOOST_PP_TUPLE_ELEM(3, 1, st), BOOST_PP_TUPLE_ELEM(3, 2, st), elem)\r
-# endif\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()\r
-#   define BOOST_PP_SEQ_FILTER_O_I(s, pred, data, res, elem) (pred, data, res BOOST_PP_EXPR_IF(pred(s, data, elem), (elem)))\r
-# else\r
-#   define BOOST_PP_SEQ_FILTER_O_I(s, pred, data, res, elem) (pred, data, res BOOST_PP_EXPR_IF(pred##(s, data, elem), (elem)))\r
-# endif\r
-#\r
-# /* BOOST_PP_SEQ_FILTER_S */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_FILTER_S(s, pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))\r
-# else\r
-#    define BOOST_PP_SEQ_FILTER_S(s, pred, data, seq) BOOST_PP_SEQ_FILTER_S_I(s, pred, data, seq)\r
-#    define BOOST_PP_SEQ_FILTER_S_I(s, pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_FILTER_HPP
+# define BOOST_PREPROCESSOR_SEQ_FILTER_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/control/expr_if.hpp>
+# include <boost/preprocessor/facilities/empty.hpp>
+# include <boost/preprocessor/seq/fold_left.hpp>
+# include <boost/preprocessor/seq/seq.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_SEQ_FILTER */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_FILTER(pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))
+# else
+#    define BOOST_PP_SEQ_FILTER(pred, data, seq) BOOST_PP_SEQ_FILTER_I(pred, data, seq)
+#    define BOOST_PP_SEQ_FILTER_I(pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))
+# endif
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_SEQ_FILTER_O(s, st, elem) BOOST_PP_SEQ_FILTER_O_IM(s, BOOST_PP_TUPLE_REM_3 st, elem)
+#    define BOOST_PP_SEQ_FILTER_O_IM(s, im, elem) BOOST_PP_SEQ_FILTER_O_I(s, im, elem)
+# else
+#    define BOOST_PP_SEQ_FILTER_O(s, st, elem) BOOST_PP_SEQ_FILTER_O_I(s, BOOST_PP_TUPLE_ELEM(3, 0, st), BOOST_PP_TUPLE_ELEM(3, 1, st), BOOST_PP_TUPLE_ELEM(3, 2, st), elem)
+# endif
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
+#   define BOOST_PP_SEQ_FILTER_O_I(s, pred, data, res, elem) (pred, data, res BOOST_PP_EXPR_IF(pred(s, data, elem), (elem)))
+# else
+#   define BOOST_PP_SEQ_FILTER_O_I(s, pred, data, res, elem) (pred, data, res BOOST_PP_EXPR_IF(pred##(s, data, elem), (elem)))
+# endif
+#
+# /* BOOST_PP_SEQ_FILTER_S */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_FILTER_S(s, pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))
+# else
+#    define BOOST_PP_SEQ_FILTER_S(s, pred, data, seq) BOOST_PP_SEQ_FILTER_S_I(s, pred, data, seq)
+#    define BOOST_PP_SEQ_FILTER_S_I(s, pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))
+# endif
+#
+# endif
index 5f88281fddce61195d27e07a4d2d383348b44fa6..c3c0716ee7912cbca00de86cd969b904a3ba0ebb 100644 (file)
@@ -1,30 +1,30 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_FIRST_N_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_FIRST_N_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/control/if.hpp>\r
-# include <boost/preprocessor/seq/detail/split.hpp>\r
-# include <boost/preprocessor/tuple/eat.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_FIRST_N */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_FIRST_N(n, seq) BOOST_PP_IF(n, BOOST_PP_TUPLE_ELEM, BOOST_PP_TUPLE_EAT_3)(2, 0, BOOST_PP_SEQ_SPLIT(n, seq (nil)))\r
-# else\r
-#    define BOOST_PP_SEQ_FIRST_N(n, seq) BOOST_PP_SEQ_FIRST_N_I(n, seq)\r
-#    define BOOST_PP_SEQ_FIRST_N_I(n, seq) BOOST_PP_IF(n, BOOST_PP_TUPLE_ELEM, BOOST_PP_TUPLE_EAT_3)(2, 0, BOOST_PP_SEQ_SPLIT(n, seq (nil)))\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_FIRST_N_HPP
+# define BOOST_PREPROCESSOR_SEQ_FIRST_N_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/control/if.hpp>
+# include <boost/preprocessor/seq/detail/split.hpp>
+# include <boost/preprocessor/tuple/eat.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+#
+# /* BOOST_PP_SEQ_FIRST_N */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_FIRST_N(n, seq) BOOST_PP_IF(n, BOOST_PP_TUPLE_ELEM, BOOST_PP_TUPLE_EAT_3)(2, 0, BOOST_PP_SEQ_SPLIT(n, seq (nil)))
+# else
+#    define BOOST_PP_SEQ_FIRST_N(n, seq) BOOST_PP_SEQ_FIRST_N_I(n, seq)
+#    define BOOST_PP_SEQ_FIRST_N_I(n, seq) BOOST_PP_IF(n, BOOST_PP_TUPLE_ELEM, BOOST_PP_TUPLE_EAT_3)(2, 0, BOOST_PP_SEQ_SPLIT(n, seq (nil)))
+# endif
+#
+# endif
index ea05882b9864ac73a2926f77ded70893109a6f6c..ab051b69d9b6aa2c2ddf7597070b46412f42a31c 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_FOLD_LEFT_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_FOLD_LEFT_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/dec.hpp>\r
-# include <boost/preprocessor/cat.hpp>\r
-# include <boost/preprocessor/control/if.hpp>\r
-# include <boost/preprocessor/debug/error.hpp>\r
-# include <boost/preprocessor/detail/auto_rec.hpp>\r
-# include <boost/preprocessor/seq/seq.hpp>\r
-# include <boost/preprocessor/seq/size.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_FOLD_LEFT */\r
-#\r
-# if 0\r
-#    define BOOST_PP_SEQ_FOLD_LEFT(op, state, seq) ...\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_FOLD_LEFT BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_LEFT_, BOOST_PP_AUTO_REC(BOOST_PP_SEQ_FOLD_LEFT_P, 256))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_P(n) BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_LEFT_CHECK_, BOOST_PP_SEQ_FOLD_LEFT_I_ ## n(BOOST_PP_SEQ_FOLD_LEFT_O, BOOST_PP_NIL, (nil), 1))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_O(s, st, _) st\r
-#\r
-# define BOOST_PP_SEQ_FOLD_LEFT_257(op, st, ss) BOOST_PP_ERROR(0x0005)\r
-# define BOOST_PP_SEQ_FOLD_LEFT_I_257(op, st, ss, sz) BOOST_PP_ERROR(0x0005)\r
-#\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_NIL 1\r
-#\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) 0\r
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) 0\r
-#\r
-# define BOOST_PP_SEQ_FOLD_LEFT_F(op, st, ss, sz) st\r
-#\r
-# define BOOST_PP_SEQ_FOLD_LEFT_1(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_2(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_3(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_4(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_5(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_6(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_7(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_8(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_9(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_10(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_11(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_12(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_13(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_14(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_15(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_16(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_17(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_18(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_19(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_20(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_21(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_22(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_23(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_24(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_25(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_26(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_27(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_28(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_29(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_30(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_31(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_32(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_33(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_34(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_35(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_36(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_37(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_38(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_39(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_40(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_41(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_42(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_43(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_44(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_45(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_46(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_47(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_48(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_49(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_50(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_51(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_52(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_53(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_54(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_55(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_56(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_57(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_58(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_59(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_60(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_61(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_62(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_63(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_64(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_65(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_66(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_67(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_68(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_69(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_70(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_71(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_72(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_73(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_74(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_75(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_76(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_77(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_78(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_79(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_80(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_81(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_82(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_83(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_84(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_85(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_86(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_87(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_88(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_89(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_90(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_91(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_92(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_93(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_94(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_95(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_96(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_97(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_98(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_99(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_100(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_101(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_102(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_103(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_104(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_105(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_106(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_107(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_108(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_109(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_110(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_111(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_112(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_113(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_114(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_115(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_116(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_117(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_118(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_119(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_120(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_121(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_122(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_123(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_124(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_125(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_126(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_127(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_128(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_129(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_130(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_131(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_132(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_133(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_134(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_135(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_136(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_137(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_138(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_139(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_140(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_141(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_142(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_143(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_144(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_145(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_146(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_147(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_148(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_149(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_150(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_151(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_152(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_153(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_154(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_155(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_156(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_157(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_158(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_159(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_160(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_161(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_162(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_163(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_164(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_165(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_166(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_167(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_168(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_169(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_170(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_171(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_172(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_173(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_174(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_175(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_176(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_177(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_178(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_179(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_180(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_181(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_182(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_183(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_184(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_185(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_186(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_187(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_188(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_189(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_190(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_191(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_192(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_193(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_194(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_195(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_196(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_197(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_198(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_199(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_200(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_201(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_202(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_203(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_204(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_205(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_206(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_207(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_208(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_209(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_210(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_211(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_212(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_213(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_214(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_215(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_216(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_217(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_218(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_219(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_220(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_221(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_222(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_223(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_224(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_225(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_226(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_227(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_228(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_229(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_230(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_231(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_232(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_233(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_234(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_235(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_236(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_237(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_238(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_239(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_240(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_241(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_242(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_243(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_244(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_245(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_246(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_247(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_248(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_249(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_250(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_251(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_252(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_253(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_254(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_255(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_LEFT_256(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_2, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(2, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_3, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(3, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_4, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(4, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_5, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(5, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_6, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(6, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_7, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(7, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_8, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(8, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_9, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(9, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_10, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(10, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_11, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(11, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_12, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(12, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_13, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(13, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_14, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(14, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_15, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(15, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_16, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(16, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_17, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(17, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_18, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(18, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_19, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(19, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_20, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(20, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_21, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(21, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_22, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(22, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_23, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(23, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_24, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(24, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_25, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(25, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_26, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(26, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_27, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(27, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_28, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(28, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_29, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(29, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_30, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(30, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_31, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(31, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_32, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(32, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_33, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(33, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_34, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(34, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_35, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(35, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_36, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(36, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_37, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(37, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_38, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(38, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_39, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(39, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_40, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(40, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_41, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(41, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_42, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(42, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_43, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(43, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_44, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(44, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_45, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(45, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_46, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(46, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_47, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(47, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_48, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(48, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_49, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(49, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_50, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(50, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_51, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(51, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_52, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(52, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_53, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(53, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_54, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(54, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_55, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(55, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_56, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(56, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_57, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(57, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_58, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(58, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_59, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(59, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_60, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(60, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_61, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(61, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_62, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(62, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_63, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(63, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_64, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(64, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_65, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(65, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_66, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(66, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_67, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(67, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_68, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(68, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_69, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(69, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_70, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(70, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_71, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(71, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_72, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(72, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_73, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(73, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_74, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(74, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_75, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(75, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_76, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(76, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_77, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(77, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_78, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(78, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_79, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(79, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_80, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(80, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_81, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(81, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_82, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(82, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_83, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(83, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_84, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(84, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_85, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(85, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_86, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(86, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_87, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(87, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_88, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(88, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_89, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(89, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_90, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(90, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_91, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(91, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_92, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(92, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_93, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(93, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_94, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(94, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_95, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(95, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_96, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(96, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_97, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(97, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_98, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(98, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_99, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(99, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_100, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(100, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_101, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(101, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_102, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(102, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_103, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(103, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_104, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(104, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_105, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(105, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_106, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(106, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_107, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(107, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_108, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(108, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_109, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(109, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_110, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(110, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_111, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(111, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_112, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(112, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_113, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(113, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_114, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(114, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_115, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(115, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_116, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(116, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_117, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(117, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_118, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(118, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_119, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(119, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_120, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(120, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_121, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(121, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_122, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(122, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_123, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(123, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_124, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(124, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_125, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(125, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_126, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(126, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_127, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(127, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_128, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(128, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_129, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(129, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_130, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(130, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_131, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(131, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_132, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(132, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_133, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(133, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_134, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(134, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_135, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(135, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_136, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(136, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_137, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(137, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_138, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(138, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_139, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(139, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_140, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(140, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_141, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(141, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_142, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(142, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_143, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(143, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_144, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(144, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_145, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(145, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_146, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(146, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_147, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(147, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_148, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(148, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_149, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(149, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_150, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(150, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_151, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(151, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_152, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(152, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_153, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(153, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_154, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(154, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_155, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(155, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_156, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(156, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_157, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(157, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_158, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(158, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_159, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(159, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_160, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(160, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_161, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(161, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_162, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(162, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_163, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(163, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_164, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(164, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_165, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(165, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_166, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(166, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_167, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(167, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_168, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(168, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_169, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(169, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_170, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(170, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_171, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(171, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_172, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(172, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_173, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(173, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_174, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(174, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_175, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(175, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_176, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(176, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_177, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(177, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_178, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(178, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_179, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(179, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_180, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(180, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_181, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(181, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_182, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(182, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_183, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(183, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_184, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(184, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_185, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(185, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_186, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(186, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_187, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(187, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_188, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(188, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_189, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(189, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_190, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(190, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_191, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(191, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_192, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(192, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_193, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(193, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_194, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(194, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_195, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(195, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_196, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(196, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_197, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(197, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_198, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(198, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_199, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(199, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_200, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(200, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_201, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(201, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_202, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(202, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_203, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(203, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_204, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(204, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_205, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(205, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_206, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(206, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_207, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(207, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_208, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(208, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_209, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(209, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_210, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(210, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_211, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(211, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_212, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(212, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_213, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(213, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_214, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(214, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_215, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(215, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_216, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(216, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_217, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(217, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_218, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(218, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_219, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(219, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_220, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(220, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_221, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(221, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_222, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(222, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_223, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(223, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_224, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(224, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_225, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(225, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_226, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(226, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_227, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(227, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_228, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(228, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_229, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(229, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_230, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(230, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_231, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(231, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_232, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(232, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_233, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(233, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_234, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(234, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_235, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(235, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_236, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(236, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_237, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(237, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_238, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(238, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_239, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(239, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_240, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(240, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_241, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(241, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_242, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(242, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_243, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(243, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_244, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(244, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_245, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(245, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_246, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(246, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_247, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(247, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_248, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(248, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_249, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(249, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_250, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(250, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_251, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(251, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_252, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(252, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_253, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(253, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_254, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(254, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_255, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(255, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_256, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(256, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_257, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(257, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-# else\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_2, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(2, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_3, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(3, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_4, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(4, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_5, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(5, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_6, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(6, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_7, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(7, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_8, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(8, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_9, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(9, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_10, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(10, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_11, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(11, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_12, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(12, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_13, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(13, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_14, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(14, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_15, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(15, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_16, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(16, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_17, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(17, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_18, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(18, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_19, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(19, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_20, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(20, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_21, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(21, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_22, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(22, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_23, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(23, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_24, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(24, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_25, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(25, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_26, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(26, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_27, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(27, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_28, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(28, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_29, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(29, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_30, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(30, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_31, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(31, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_32, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(32, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_33, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(33, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_34, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(34, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_35, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(35, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_36, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(36, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_37, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(37, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_38, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(38, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_39, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(39, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_40, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(40, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_41, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(41, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_42, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(42, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_43, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(43, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_44, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(44, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_45, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(45, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_46, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(46, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_47, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(47, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_48, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(48, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_49, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(49, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_50, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(50, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_51, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(51, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_52, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(52, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_53, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(53, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_54, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(54, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_55, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(55, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_56, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(56, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_57, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(57, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_58, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(58, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_59, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(59, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_60, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(60, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_61, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(61, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_62, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(62, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_63, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(63, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_64, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(64, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_65, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(65, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_66, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(66, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_67, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(67, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_68, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(68, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_69, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(69, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_70, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(70, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_71, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(71, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_72, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(72, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_73, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(73, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_74, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(74, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_75, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(75, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_76, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(76, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_77, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(77, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_78, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(78, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_79, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(79, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_80, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(80, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_81, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(81, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_82, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(82, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_83, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(83, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_84, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(84, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_85, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(85, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_86, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(86, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_87, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(87, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_88, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(88, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_89, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(89, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_90, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(90, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_91, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(91, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_92, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(92, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_93, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(93, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_94, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(94, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_95, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(95, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_96, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(96, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_97, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(97, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_98, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(98, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_99, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(99, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_100, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(100, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_101, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(101, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_102, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(102, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_103, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(103, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_104, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(104, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_105, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(105, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_106, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(106, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_107, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(107, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_108, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(108, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_109, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(109, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_110, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(110, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_111, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(111, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_112, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(112, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_113, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(113, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_114, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(114, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_115, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(115, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_116, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(116, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_117, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(117, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_118, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(118, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_119, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(119, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_120, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(120, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_121, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(121, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_122, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(122, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_123, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(123, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_124, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(124, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_125, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(125, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_126, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(126, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_127, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(127, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_128, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(128, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_129, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(129, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_130, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(130, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_131, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(131, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_132, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(132, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_133, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(133, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_134, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(134, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_135, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(135, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_136, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(136, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_137, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(137, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_138, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(138, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_139, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(139, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_140, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(140, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_141, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(141, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_142, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(142, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_143, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(143, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_144, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(144, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_145, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(145, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_146, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(146, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_147, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(147, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_148, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(148, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_149, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(149, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_150, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(150, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_151, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(151, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_152, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(152, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_153, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(153, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_154, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(154, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_155, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(155, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_156, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(156, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_157, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(157, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_158, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(158, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_159, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(159, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_160, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(160, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_161, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(161, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_162, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(162, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_163, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(163, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_164, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(164, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_165, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(165, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_166, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(166, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_167, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(167, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_168, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(168, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_169, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(169, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_170, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(170, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_171, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(171, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_172, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(172, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_173, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(173, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_174, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(174, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_175, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(175, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_176, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(176, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_177, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(177, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_178, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(178, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_179, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(179, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_180, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(180, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_181, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(181, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_182, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(182, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_183, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(183, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_184, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(184, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_185, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(185, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_186, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(186, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_187, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(187, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_188, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(188, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_189, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(189, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_190, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(190, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_191, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(191, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_192, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(192, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_193, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(193, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_194, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(194, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_195, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(195, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_196, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(196, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_197, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(197, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_198, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(198, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_199, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(199, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_200, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(200, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_201, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(201, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_202, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(202, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_203, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(203, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_204, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(204, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_205, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(205, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_206, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(206, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_207, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(207, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_208, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(208, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_209, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(209, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_210, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(210, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_211, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(211, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_212, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(212, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_213, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(213, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_214, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(214, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_215, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(215, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_216, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(216, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_217, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(217, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_218, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(218, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_219, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(219, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_220, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(220, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_221, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(221, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_222, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(222, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_223, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(223, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_224, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(224, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_225, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(225, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_226, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(226, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_227, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(227, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_228, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(228, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_229, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(229, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_230, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(230, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_231, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(231, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_232, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(232, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_233, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(233, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_234, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(234, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_235, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(235, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_236, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(236, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_237, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(237, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_238, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(238, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_239, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(239, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_240, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(240, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_241, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(241, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_242, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(242, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_243, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(243, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_244, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(244, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_245, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(245, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_246, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(246, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_247, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(247, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_248, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(248, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_249, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(249, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_250, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(250, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_251, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(251, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_252, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(252, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_253, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(253, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_254, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(254, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_255, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(255, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_256, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(256, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_257, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(257, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_FOLD_LEFT_HPP
+# define BOOST_PREPROCESSOR_SEQ_FOLD_LEFT_HPP
+#
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/control/if.hpp>
+# include <boost/preprocessor/debug/error.hpp>
+# include <boost/preprocessor/detail/auto_rec.hpp>
+# include <boost/preprocessor/seq/seq.hpp>
+# include <boost/preprocessor/seq/size.hpp>
+#
+# /* BOOST_PP_SEQ_FOLD_LEFT */
+#
+# if 0
+#    define BOOST_PP_SEQ_FOLD_LEFT(op, state, seq) ...
+# endif
+#
+# define BOOST_PP_SEQ_FOLD_LEFT BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_LEFT_, BOOST_PP_AUTO_REC(BOOST_PP_SEQ_FOLD_LEFT_P, 256))
+# define BOOST_PP_SEQ_FOLD_LEFT_P(n) BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_LEFT_CHECK_, BOOST_PP_SEQ_FOLD_LEFT_I_ ## n(BOOST_PP_SEQ_FOLD_LEFT_O, BOOST_PP_NIL, (nil), 1))
+# define BOOST_PP_SEQ_FOLD_LEFT_O(s, st, _) st
+#
+# define BOOST_PP_SEQ_FOLD_LEFT_257(op, st, ss) BOOST_PP_ERROR(0x0005)
+# define BOOST_PP_SEQ_FOLD_LEFT_I_257(op, st, ss, sz) BOOST_PP_ERROR(0x0005)
+#
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_NIL 1
+#
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) 0
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) 0
+#
+# define BOOST_PP_SEQ_FOLD_LEFT_F(op, st, ss, sz) st
+#
+# define BOOST_PP_SEQ_FOLD_LEFT_1(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_2(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_3(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_4(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_5(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_6(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_7(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_8(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_9(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_10(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_11(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_12(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_13(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_14(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_15(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_16(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_17(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_18(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_19(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_20(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_21(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_22(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_23(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_24(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_25(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_26(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_27(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_28(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_29(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_30(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_31(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_32(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_33(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_34(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_35(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_36(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_37(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_38(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_39(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_40(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_41(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_42(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_43(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_44(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_45(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_46(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_47(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_48(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_49(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_50(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_51(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_52(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_53(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_54(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_55(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_56(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_57(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_58(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_59(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_60(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_61(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_62(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_63(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_64(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_65(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_66(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_67(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_68(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_69(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_70(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_71(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_72(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_73(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_74(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_75(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_76(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_77(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_78(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_79(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_80(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_81(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_82(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_83(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_84(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_85(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_86(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_87(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_88(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_89(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_90(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_91(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_92(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_93(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_94(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_95(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_96(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_97(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_98(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_99(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_100(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_101(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_102(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_103(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_104(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_105(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_106(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_107(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_108(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_109(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_110(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_111(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_112(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_113(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_114(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_115(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_116(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_117(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_118(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_119(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_120(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_121(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_122(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_123(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_124(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_125(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_126(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_127(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_128(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_129(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_130(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_131(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_132(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_133(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_134(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_135(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_136(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_137(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_138(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_139(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_140(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_141(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_142(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_143(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_144(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_145(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_146(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_147(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_148(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_149(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_150(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_151(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_152(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_153(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_154(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_155(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_156(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_157(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_158(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_159(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_160(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_161(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_162(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_163(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_164(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_165(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_166(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_167(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_168(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_169(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_170(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_171(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_172(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_173(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_174(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_175(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_176(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_177(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_178(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_179(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_180(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_181(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_182(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_183(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_184(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_185(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_186(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_187(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_188(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_189(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_190(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_191(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_192(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_193(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_194(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_195(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_196(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_197(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_198(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_199(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_200(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_201(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_202(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_203(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_204(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_205(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_206(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_207(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_208(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_209(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_210(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_211(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_212(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_213(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_214(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_215(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_216(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_217(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_218(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_219(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_220(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_221(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_222(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_223(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_224(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_225(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_226(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_227(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_228(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_229(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_230(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_231(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_232(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_233(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_234(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_235(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_236(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_237(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_238(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_239(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_240(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_241(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_242(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_243(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_244(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_245(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_246(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_247(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_248(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_249(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_250(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_251(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_252(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_253(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_254(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_255(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_LEFT_256(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_2, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(2, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_3, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(3, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_4, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(4, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_5, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(5, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_6, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(6, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_7, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(7, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_8, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(8, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_9, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(9, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_10, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(10, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_11, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(11, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_12, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(12, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_13, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(13, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_14, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(14, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_15, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(15, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_16, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(16, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_17, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(17, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_18, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(18, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_19, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(19, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_20, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(20, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_21, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(21, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_22, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(22, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_23, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(23, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_24, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(24, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_25, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(25, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_26, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(26, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_27, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(27, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_28, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(28, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_29, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(29, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_30, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(30, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_31, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(31, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_32, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(32, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_33, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(33, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_34, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(34, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_35, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(35, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_36, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(36, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_37, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(37, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_38, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(38, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_39, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(39, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_40, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(40, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_41, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(41, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_42, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(42, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_43, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(43, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_44, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(44, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_45, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(45, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_46, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(46, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_47, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(47, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_48, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(48, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_49, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(49, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_50, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(50, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_51, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(51, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_52, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(52, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_53, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(53, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_54, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(54, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_55, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(55, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_56, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(56, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_57, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(57, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_58, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(58, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_59, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(59, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_60, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(60, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_61, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(61, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_62, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(62, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_63, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(63, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_64, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(64, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_65, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(65, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_66, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(66, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_67, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(67, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_68, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(68, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_69, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(69, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_70, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(70, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_71, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(71, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_72, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(72, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_73, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(73, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_74, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(74, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_75, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(75, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_76, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(76, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_77, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(77, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_78, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(78, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_79, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(79, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_80, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(80, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_81, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(81, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_82, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(82, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_83, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(83, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_84, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(84, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_85, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(85, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_86, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(86, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_87, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(87, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_88, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(88, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_89, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(89, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_90, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(90, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_91, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(91, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_92, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(92, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_93, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(93, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_94, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(94, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_95, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(95, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_96, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(96, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_97, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(97, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_98, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(98, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_99, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(99, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_100, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(100, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_101, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(101, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_102, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(102, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_103, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(103, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_104, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(104, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_105, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(105, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_106, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(106, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_107, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(107, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_108, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(108, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_109, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(109, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_110, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(110, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_111, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(111, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_112, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(112, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_113, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(113, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_114, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(114, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_115, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(115, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_116, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(116, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_117, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(117, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_118, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(118, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_119, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(119, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_120, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(120, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_121, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(121, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_122, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(122, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_123, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(123, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_124, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(124, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_125, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(125, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_126, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(126, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_127, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(127, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_128, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(128, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_129, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(129, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_130, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(130, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_131, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(131, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_132, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(132, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_133, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(133, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_134, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(134, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_135, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(135, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_136, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(136, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_137, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(137, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_138, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(138, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_139, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(139, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_140, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(140, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_141, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(141, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_142, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(142, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_143, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(143, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_144, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(144, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_145, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(145, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_146, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(146, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_147, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(147, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_148, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(148, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_149, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(149, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_150, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(150, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_151, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(151, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_152, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(152, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_153, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(153, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_154, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(154, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_155, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(155, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_156, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(156, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_157, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(157, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_158, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(158, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_159, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(159, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_160, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(160, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_161, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(161, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_162, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(162, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_163, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(163, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_164, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(164, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_165, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(165, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_166, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(166, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_167, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(167, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_168, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(168, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_169, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(169, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_170, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(170, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_171, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(171, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_172, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(172, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_173, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(173, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_174, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(174, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_175, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(175, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_176, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(176, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_177, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(177, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_178, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(178, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_179, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(179, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_180, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(180, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_181, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(181, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_182, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(182, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_183, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(183, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_184, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(184, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_185, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(185, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_186, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(186, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_187, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(187, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_188, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(188, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_189, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(189, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_190, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(190, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_191, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(191, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_192, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(192, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_193, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(193, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_194, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(194, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_195, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(195, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_196, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(196, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_197, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(197, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_198, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(198, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_199, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(199, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_200, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(200, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_201, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(201, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_202, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(202, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_203, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(203, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_204, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(204, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_205, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(205, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_206, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(206, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_207, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(207, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_208, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(208, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_209, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(209, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_210, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(210, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_211, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(211, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_212, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(212, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_213, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(213, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_214, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(214, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_215, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(215, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_216, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(216, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_217, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(217, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_218, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(218, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_219, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(219, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_220, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(220, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_221, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(221, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_222, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(222, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_223, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(223, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_224, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(224, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_225, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(225, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_226, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(226, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_227, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(227, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_228, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(228, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_229, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(229, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_230, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(230, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_231, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(231, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_232, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(232, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_233, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(233, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_234, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(234, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_235, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(235, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_236, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(236, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_237, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(237, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_238, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(238, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_239, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(239, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_240, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(240, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_241, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(241, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_242, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(242, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_243, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(243, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_244, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(244, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_245, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(245, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_246, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(246, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_247, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(247, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_248, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(248, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_249, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(249, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_250, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(250, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_251, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(251, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_252, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(252, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_253, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(253, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_254, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(254, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_255, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(255, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_256, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(256, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_257, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(257, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+# else
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_2, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(2, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_3, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(3, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_4, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(4, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_5, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(5, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_6, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(6, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_7, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(7, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_8, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(8, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_9, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(9, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_10, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(10, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_11, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(11, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_12, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(12, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_13, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(13, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_14, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(14, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_15, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(15, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_16, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(16, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_17, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(17, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_18, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(18, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_19, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(19, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_20, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(20, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_21, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(21, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_22, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(22, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_23, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(23, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_24, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(24, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_25, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(25, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_26, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(26, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_27, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(27, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_28, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(28, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_29, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(29, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_30, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(30, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_31, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(31, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_32, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(32, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_33, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(33, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_34, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(34, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_35, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(35, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_36, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(36, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_37, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(37, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_38, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(38, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_39, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(39, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_40, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(40, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_41, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(41, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_42, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(42, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_43, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(43, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_44, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(44, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_45, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(45, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_46, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(46, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_47, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(47, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_48, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(48, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_49, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(49, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_50, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(50, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_51, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(51, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_52, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(52, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_53, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(53, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_54, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(54, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_55, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(55, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_56, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(56, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_57, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(57, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_58, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(58, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_59, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(59, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_60, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(60, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_61, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(61, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_62, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(62, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_63, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(63, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_64, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(64, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_65, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(65, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_66, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(66, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_67, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(67, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_68, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(68, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_69, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(69, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_70, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(70, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_71, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(71, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_72, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(72, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_73, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(73, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_74, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(74, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_75, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(75, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_76, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(76, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_77, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(77, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_78, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(78, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_79, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(79, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_80, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(80, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_81, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(81, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_82, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(82, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_83, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(83, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_84, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(84, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_85, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(85, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_86, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(86, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_87, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(87, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_88, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(88, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_89, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(89, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_90, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(90, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_91, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(91, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_92, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(92, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_93, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(93, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_94, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(94, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_95, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(95, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_96, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(96, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_97, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(97, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_98, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(98, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_99, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(99, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_100, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(100, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_101, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(101, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_102, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(102, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_103, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(103, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_104, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(104, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_105, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(105, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_106, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(106, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_107, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(107, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_108, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(108, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_109, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(109, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_110, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(110, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_111, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(111, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_112, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(112, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_113, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(113, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_114, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(114, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_115, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(115, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_116, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(116, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_117, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(117, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_118, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(118, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_119, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(119, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_120, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(120, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_121, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(121, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_122, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(122, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_123, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(123, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_124, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(124, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_125, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(125, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_126, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(126, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_127, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(127, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_128, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(128, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_129, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(129, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_130, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(130, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_131, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(131, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_132, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(132, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_133, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(133, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_134, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(134, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_135, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(135, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_136, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(136, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_137, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(137, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_138, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(138, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_139, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(139, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_140, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(140, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_141, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(141, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_142, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(142, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_143, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(143, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_144, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(144, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_145, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(145, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_146, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(146, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_147, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(147, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_148, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(148, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_149, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(149, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_150, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(150, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_151, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(151, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_152, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(152, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_153, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(153, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_154, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(154, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_155, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(155, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_156, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(156, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_157, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(157, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_158, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(158, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_159, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(159, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_160, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(160, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_161, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(161, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_162, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(162, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_163, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(163, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_164, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(164, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_165, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(165, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_166, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(166, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_167, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(167, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_168, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(168, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_169, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(169, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_170, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(170, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_171, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(171, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_172, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(172, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_173, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(173, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_174, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(174, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_175, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(175, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_176, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(176, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_177, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(177, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_178, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(178, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_179, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(179, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_180, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(180, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_181, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(181, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_182, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(182, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_183, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(183, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_184, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(184, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_185, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(185, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_186, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(186, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_187, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(187, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_188, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(188, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_189, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(189, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_190, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(190, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_191, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(191, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_192, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(192, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_193, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(193, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_194, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(194, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_195, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(195, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_196, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(196, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_197, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(197, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_198, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(198, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_199, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(199, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_200, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(200, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_201, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(201, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_202, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(202, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_203, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(203, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_204, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(204, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_205, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(205, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_206, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(206, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_207, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(207, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_208, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(208, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_209, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(209, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_210, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(210, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_211, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(211, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_212, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(212, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_213, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(213, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_214, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(214, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_215, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(215, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_216, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(216, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_217, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(217, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_218, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(218, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_219, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(219, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_220, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(220, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_221, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(221, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_222, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(222, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_223, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(223, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_224, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(224, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_225, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(225, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_226, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(226, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_227, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(227, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_228, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(228, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_229, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(229, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_230, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(230, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_231, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(231, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_232, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(232, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_233, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(233, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_234, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(234, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_235, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(235, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_236, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(236, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_237, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(237, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_238, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(238, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_239, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(239, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_240, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(240, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_241, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(241, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_242, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(242, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_243, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(243, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_244, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(244, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_245, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(245, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_246, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(246, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_247, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(247, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_248, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(248, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_249, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(249, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_250, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(250, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_251, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(251, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_252, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(252, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_253, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(253, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_254, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(254, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_255, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(255, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_256, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(256, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_257, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(257, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
+# endif
+#
+# endif
index 180e97c793fc292179747a5be03777517725c01f..c2c365b29ad70b9650d832ba5d7f28ba3c064654 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_FOLD_RIGHT_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_FOLD_RIGHT_HPP\r
-#\r
-# include <boost/preprocessor/cat.hpp>\r
-# include <boost/preprocessor/detail/auto_rec.hpp>\r
-# include <boost/preprocessor/seq/fold_left.hpp>\r
-# include <boost/preprocessor/seq/reverse.hpp>\r
-# include <boost/preprocessor/seq/seq.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_FOLD_RIGHT */\r
-#\r
-# if 0\r
-#    define BOOST_PP_SEQ_FOLD_RIGHT(op, state, seq) ...\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_FOLD_RIGHT BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_RIGHT_, BOOST_PP_AUTO_REC(BOOST_PP_SEQ_FOLD_LEFT_P, 256))\r
-#\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_257(op, st, ss) BOOST_PP_ERROR(0x0005)\r
-#\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_1(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, BOOST_PP_SEQ_REVERSE_S(2, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_2(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, BOOST_PP_SEQ_REVERSE_S(3, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_3(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, BOOST_PP_SEQ_REVERSE_S(4, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_4(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, BOOST_PP_SEQ_REVERSE_S(5, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_5(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, BOOST_PP_SEQ_REVERSE_S(6, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_6(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, BOOST_PP_SEQ_REVERSE_S(7, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_7(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, BOOST_PP_SEQ_REVERSE_S(8, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_8(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, BOOST_PP_SEQ_REVERSE_S(9, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_9(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, BOOST_PP_SEQ_REVERSE_S(10, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_10(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, BOOST_PP_SEQ_REVERSE_S(11, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_11(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, BOOST_PP_SEQ_REVERSE_S(12, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_12(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, BOOST_PP_SEQ_REVERSE_S(13, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_13(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, BOOST_PP_SEQ_REVERSE_S(14, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_14(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, BOOST_PP_SEQ_REVERSE_S(15, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_15(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, BOOST_PP_SEQ_REVERSE_S(16, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_16(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, BOOST_PP_SEQ_REVERSE_S(17, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_17(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, BOOST_PP_SEQ_REVERSE_S(18, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_18(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, BOOST_PP_SEQ_REVERSE_S(19, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_19(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, BOOST_PP_SEQ_REVERSE_S(20, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_20(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, BOOST_PP_SEQ_REVERSE_S(21, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_21(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, BOOST_PP_SEQ_REVERSE_S(22, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_22(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, BOOST_PP_SEQ_REVERSE_S(23, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_23(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, BOOST_PP_SEQ_REVERSE_S(24, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_24(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, BOOST_PP_SEQ_REVERSE_S(25, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_25(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, BOOST_PP_SEQ_REVERSE_S(26, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_26(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, BOOST_PP_SEQ_REVERSE_S(27, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_27(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, BOOST_PP_SEQ_REVERSE_S(28, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_28(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, BOOST_PP_SEQ_REVERSE_S(29, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_29(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, BOOST_PP_SEQ_REVERSE_S(30, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_30(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, BOOST_PP_SEQ_REVERSE_S(31, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_31(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, BOOST_PP_SEQ_REVERSE_S(32, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_32(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, BOOST_PP_SEQ_REVERSE_S(33, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_33(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, BOOST_PP_SEQ_REVERSE_S(34, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_34(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, BOOST_PP_SEQ_REVERSE_S(35, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_35(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, BOOST_PP_SEQ_REVERSE_S(36, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_36(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, BOOST_PP_SEQ_REVERSE_S(37, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_37(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, BOOST_PP_SEQ_REVERSE_S(38, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_38(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, BOOST_PP_SEQ_REVERSE_S(39, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_39(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, BOOST_PP_SEQ_REVERSE_S(40, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_40(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, BOOST_PP_SEQ_REVERSE_S(41, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_41(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, BOOST_PP_SEQ_REVERSE_S(42, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_42(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, BOOST_PP_SEQ_REVERSE_S(43, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_43(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, BOOST_PP_SEQ_REVERSE_S(44, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_44(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, BOOST_PP_SEQ_REVERSE_S(45, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_45(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, BOOST_PP_SEQ_REVERSE_S(46, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_46(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, BOOST_PP_SEQ_REVERSE_S(47, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_47(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, BOOST_PP_SEQ_REVERSE_S(48, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_48(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, BOOST_PP_SEQ_REVERSE_S(49, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_49(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, BOOST_PP_SEQ_REVERSE_S(50, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_50(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, BOOST_PP_SEQ_REVERSE_S(51, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_51(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, BOOST_PP_SEQ_REVERSE_S(52, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_52(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, BOOST_PP_SEQ_REVERSE_S(53, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_53(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, BOOST_PP_SEQ_REVERSE_S(54, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_54(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, BOOST_PP_SEQ_REVERSE_S(55, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_55(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, BOOST_PP_SEQ_REVERSE_S(56, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_56(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, BOOST_PP_SEQ_REVERSE_S(57, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_57(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, BOOST_PP_SEQ_REVERSE_S(58, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_58(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, BOOST_PP_SEQ_REVERSE_S(59, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_59(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, BOOST_PP_SEQ_REVERSE_S(60, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_60(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, BOOST_PP_SEQ_REVERSE_S(61, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_61(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, BOOST_PP_SEQ_REVERSE_S(62, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_62(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, BOOST_PP_SEQ_REVERSE_S(63, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_63(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, BOOST_PP_SEQ_REVERSE_S(64, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_64(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, BOOST_PP_SEQ_REVERSE_S(65, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_65(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, BOOST_PP_SEQ_REVERSE_S(66, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_66(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, BOOST_PP_SEQ_REVERSE_S(67, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_67(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, BOOST_PP_SEQ_REVERSE_S(68, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_68(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, BOOST_PP_SEQ_REVERSE_S(69, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_69(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, BOOST_PP_SEQ_REVERSE_S(70, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_70(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, BOOST_PP_SEQ_REVERSE_S(71, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_71(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, BOOST_PP_SEQ_REVERSE_S(72, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_72(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, BOOST_PP_SEQ_REVERSE_S(73, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_73(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, BOOST_PP_SEQ_REVERSE_S(74, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_74(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, BOOST_PP_SEQ_REVERSE_S(75, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_75(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, BOOST_PP_SEQ_REVERSE_S(76, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_76(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, BOOST_PP_SEQ_REVERSE_S(77, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_77(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, BOOST_PP_SEQ_REVERSE_S(78, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_78(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, BOOST_PP_SEQ_REVERSE_S(79, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_79(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, BOOST_PP_SEQ_REVERSE_S(80, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_80(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, BOOST_PP_SEQ_REVERSE_S(81, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_81(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, BOOST_PP_SEQ_REVERSE_S(82, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_82(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, BOOST_PP_SEQ_REVERSE_S(83, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_83(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, BOOST_PP_SEQ_REVERSE_S(84, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_84(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, BOOST_PP_SEQ_REVERSE_S(85, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_85(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, BOOST_PP_SEQ_REVERSE_S(86, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_86(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, BOOST_PP_SEQ_REVERSE_S(87, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_87(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, BOOST_PP_SEQ_REVERSE_S(88, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_88(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, BOOST_PP_SEQ_REVERSE_S(89, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_89(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, BOOST_PP_SEQ_REVERSE_S(90, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_90(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, BOOST_PP_SEQ_REVERSE_S(91, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_91(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, BOOST_PP_SEQ_REVERSE_S(92, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_92(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, BOOST_PP_SEQ_REVERSE_S(93, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_93(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, BOOST_PP_SEQ_REVERSE_S(94, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_94(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, BOOST_PP_SEQ_REVERSE_S(95, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_95(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, BOOST_PP_SEQ_REVERSE_S(96, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_96(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, BOOST_PP_SEQ_REVERSE_S(97, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_97(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, BOOST_PP_SEQ_REVERSE_S(98, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_98(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, BOOST_PP_SEQ_REVERSE_S(99, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_99(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, BOOST_PP_SEQ_REVERSE_S(100, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_100(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, BOOST_PP_SEQ_REVERSE_S(101, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_101(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, BOOST_PP_SEQ_REVERSE_S(102, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_102(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, BOOST_PP_SEQ_REVERSE_S(103, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_103(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, BOOST_PP_SEQ_REVERSE_S(104, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_104(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, BOOST_PP_SEQ_REVERSE_S(105, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_105(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, BOOST_PP_SEQ_REVERSE_S(106, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_106(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, BOOST_PP_SEQ_REVERSE_S(107, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_107(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, BOOST_PP_SEQ_REVERSE_S(108, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_108(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, BOOST_PP_SEQ_REVERSE_S(109, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_109(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, BOOST_PP_SEQ_REVERSE_S(110, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_110(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, BOOST_PP_SEQ_REVERSE_S(111, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_111(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, BOOST_PP_SEQ_REVERSE_S(112, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_112(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, BOOST_PP_SEQ_REVERSE_S(113, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_113(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, BOOST_PP_SEQ_REVERSE_S(114, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_114(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, BOOST_PP_SEQ_REVERSE_S(115, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_115(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, BOOST_PP_SEQ_REVERSE_S(116, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_116(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, BOOST_PP_SEQ_REVERSE_S(117, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_117(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, BOOST_PP_SEQ_REVERSE_S(118, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_118(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, BOOST_PP_SEQ_REVERSE_S(119, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_119(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, BOOST_PP_SEQ_REVERSE_S(120, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_120(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, BOOST_PP_SEQ_REVERSE_S(121, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_121(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, BOOST_PP_SEQ_REVERSE_S(122, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_122(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, BOOST_PP_SEQ_REVERSE_S(123, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_123(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, BOOST_PP_SEQ_REVERSE_S(124, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_124(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, BOOST_PP_SEQ_REVERSE_S(125, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_125(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, BOOST_PP_SEQ_REVERSE_S(126, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_126(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, BOOST_PP_SEQ_REVERSE_S(127, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_127(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, BOOST_PP_SEQ_REVERSE_S(128, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_128(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, BOOST_PP_SEQ_REVERSE_S(129, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_129(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, BOOST_PP_SEQ_REVERSE_S(130, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_130(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, BOOST_PP_SEQ_REVERSE_S(131, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_131(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, BOOST_PP_SEQ_REVERSE_S(132, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_132(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, BOOST_PP_SEQ_REVERSE_S(133, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_133(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, BOOST_PP_SEQ_REVERSE_S(134, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_134(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, BOOST_PP_SEQ_REVERSE_S(135, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_135(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, BOOST_PP_SEQ_REVERSE_S(136, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_136(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, BOOST_PP_SEQ_REVERSE_S(137, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_137(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, BOOST_PP_SEQ_REVERSE_S(138, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_138(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, BOOST_PP_SEQ_REVERSE_S(139, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_139(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, BOOST_PP_SEQ_REVERSE_S(140, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_140(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, BOOST_PP_SEQ_REVERSE_S(141, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_141(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, BOOST_PP_SEQ_REVERSE_S(142, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_142(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, BOOST_PP_SEQ_REVERSE_S(143, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_143(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, BOOST_PP_SEQ_REVERSE_S(144, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_144(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, BOOST_PP_SEQ_REVERSE_S(145, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_145(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, BOOST_PP_SEQ_REVERSE_S(146, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_146(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, BOOST_PP_SEQ_REVERSE_S(147, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_147(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, BOOST_PP_SEQ_REVERSE_S(148, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_148(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, BOOST_PP_SEQ_REVERSE_S(149, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_149(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, BOOST_PP_SEQ_REVERSE_S(150, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_150(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, BOOST_PP_SEQ_REVERSE_S(151, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_151(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, BOOST_PP_SEQ_REVERSE_S(152, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_152(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, BOOST_PP_SEQ_REVERSE_S(153, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_153(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, BOOST_PP_SEQ_REVERSE_S(154, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_154(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, BOOST_PP_SEQ_REVERSE_S(155, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_155(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, BOOST_PP_SEQ_REVERSE_S(156, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_156(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, BOOST_PP_SEQ_REVERSE_S(157, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_157(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, BOOST_PP_SEQ_REVERSE_S(158, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_158(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, BOOST_PP_SEQ_REVERSE_S(159, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_159(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, BOOST_PP_SEQ_REVERSE_S(160, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_160(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, BOOST_PP_SEQ_REVERSE_S(161, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_161(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, BOOST_PP_SEQ_REVERSE_S(162, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_162(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, BOOST_PP_SEQ_REVERSE_S(163, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_163(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, BOOST_PP_SEQ_REVERSE_S(164, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_164(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, BOOST_PP_SEQ_REVERSE_S(165, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_165(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, BOOST_PP_SEQ_REVERSE_S(166, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_166(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, BOOST_PP_SEQ_REVERSE_S(167, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_167(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, BOOST_PP_SEQ_REVERSE_S(168, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_168(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, BOOST_PP_SEQ_REVERSE_S(169, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_169(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, BOOST_PP_SEQ_REVERSE_S(170, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_170(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, BOOST_PP_SEQ_REVERSE_S(171, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_171(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, BOOST_PP_SEQ_REVERSE_S(172, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_172(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, BOOST_PP_SEQ_REVERSE_S(173, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_173(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, BOOST_PP_SEQ_REVERSE_S(174, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_174(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, BOOST_PP_SEQ_REVERSE_S(175, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_175(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, BOOST_PP_SEQ_REVERSE_S(176, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_176(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, BOOST_PP_SEQ_REVERSE_S(177, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_177(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, BOOST_PP_SEQ_REVERSE_S(178, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_178(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, BOOST_PP_SEQ_REVERSE_S(179, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_179(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, BOOST_PP_SEQ_REVERSE_S(180, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_180(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, BOOST_PP_SEQ_REVERSE_S(181, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_181(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, BOOST_PP_SEQ_REVERSE_S(182, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_182(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, BOOST_PP_SEQ_REVERSE_S(183, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_183(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, BOOST_PP_SEQ_REVERSE_S(184, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_184(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, BOOST_PP_SEQ_REVERSE_S(185, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_185(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, BOOST_PP_SEQ_REVERSE_S(186, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_186(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, BOOST_PP_SEQ_REVERSE_S(187, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_187(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, BOOST_PP_SEQ_REVERSE_S(188, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_188(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, BOOST_PP_SEQ_REVERSE_S(189, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_189(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, BOOST_PP_SEQ_REVERSE_S(190, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_190(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, BOOST_PP_SEQ_REVERSE_S(191, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_191(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, BOOST_PP_SEQ_REVERSE_S(192, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_192(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, BOOST_PP_SEQ_REVERSE_S(193, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_193(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, BOOST_PP_SEQ_REVERSE_S(194, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_194(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, BOOST_PP_SEQ_REVERSE_S(195, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_195(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, BOOST_PP_SEQ_REVERSE_S(196, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_196(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, BOOST_PP_SEQ_REVERSE_S(197, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_197(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, BOOST_PP_SEQ_REVERSE_S(198, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_198(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, BOOST_PP_SEQ_REVERSE_S(199, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_199(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, BOOST_PP_SEQ_REVERSE_S(200, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_200(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, BOOST_PP_SEQ_REVERSE_S(201, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_201(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, BOOST_PP_SEQ_REVERSE_S(202, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_202(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, BOOST_PP_SEQ_REVERSE_S(203, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_203(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, BOOST_PP_SEQ_REVERSE_S(204, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_204(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, BOOST_PP_SEQ_REVERSE_S(205, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_205(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, BOOST_PP_SEQ_REVERSE_S(206, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_206(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, BOOST_PP_SEQ_REVERSE_S(207, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_207(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, BOOST_PP_SEQ_REVERSE_S(208, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_208(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, BOOST_PP_SEQ_REVERSE_S(209, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_209(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, BOOST_PP_SEQ_REVERSE_S(210, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_210(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, BOOST_PP_SEQ_REVERSE_S(211, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_211(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, BOOST_PP_SEQ_REVERSE_S(212, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_212(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, BOOST_PP_SEQ_REVERSE_S(213, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_213(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, BOOST_PP_SEQ_REVERSE_S(214, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_214(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, BOOST_PP_SEQ_REVERSE_S(215, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_215(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, BOOST_PP_SEQ_REVERSE_S(216, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_216(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, BOOST_PP_SEQ_REVERSE_S(217, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_217(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, BOOST_PP_SEQ_REVERSE_S(218, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_218(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, BOOST_PP_SEQ_REVERSE_S(219, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_219(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, BOOST_PP_SEQ_REVERSE_S(220, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_220(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, BOOST_PP_SEQ_REVERSE_S(221, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_221(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, BOOST_PP_SEQ_REVERSE_S(222, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_222(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, BOOST_PP_SEQ_REVERSE_S(223, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_223(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, BOOST_PP_SEQ_REVERSE_S(224, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_224(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, BOOST_PP_SEQ_REVERSE_S(225, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_225(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, BOOST_PP_SEQ_REVERSE_S(226, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_226(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, BOOST_PP_SEQ_REVERSE_S(227, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_227(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, BOOST_PP_SEQ_REVERSE_S(228, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_228(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, BOOST_PP_SEQ_REVERSE_S(229, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_229(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, BOOST_PP_SEQ_REVERSE_S(230, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_230(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, BOOST_PP_SEQ_REVERSE_S(231, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_231(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, BOOST_PP_SEQ_REVERSE_S(232, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_232(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, BOOST_PP_SEQ_REVERSE_S(233, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_233(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, BOOST_PP_SEQ_REVERSE_S(234, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_234(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, BOOST_PP_SEQ_REVERSE_S(235, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_235(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, BOOST_PP_SEQ_REVERSE_S(236, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_236(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, BOOST_PP_SEQ_REVERSE_S(237, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_237(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, BOOST_PP_SEQ_REVERSE_S(238, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_238(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, BOOST_PP_SEQ_REVERSE_S(239, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_239(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, BOOST_PP_SEQ_REVERSE_S(240, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_240(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, BOOST_PP_SEQ_REVERSE_S(241, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_241(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, BOOST_PP_SEQ_REVERSE_S(242, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_242(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, BOOST_PP_SEQ_REVERSE_S(243, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_243(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, BOOST_PP_SEQ_REVERSE_S(244, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_244(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, BOOST_PP_SEQ_REVERSE_S(245, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_245(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, BOOST_PP_SEQ_REVERSE_S(246, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_246(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, BOOST_PP_SEQ_REVERSE_S(247, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_247(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, BOOST_PP_SEQ_REVERSE_S(248, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_248(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, BOOST_PP_SEQ_REVERSE_S(249, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_249(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, BOOST_PP_SEQ_REVERSE_S(250, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_250(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, BOOST_PP_SEQ_REVERSE_S(251, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_251(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, BOOST_PP_SEQ_REVERSE_S(252, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_252(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, BOOST_PP_SEQ_REVERSE_S(253, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_253(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, BOOST_PP_SEQ_REVERSE_S(254, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_254(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, BOOST_PP_SEQ_REVERSE_S(255, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_255(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, BOOST_PP_SEQ_REVERSE_S(256, ss), BOOST_PP_SEQ_SIZE(ss))\r
-# define BOOST_PP_SEQ_FOLD_RIGHT_256(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, BOOST_PP_SEQ_REVERSE_S(257, ss), BOOST_PP_SEQ_SIZE(ss))\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_FOLD_RIGHT_HPP
+# define BOOST_PREPROCESSOR_SEQ_FOLD_RIGHT_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/detail/auto_rec.hpp>
+# include <boost/preprocessor/seq/fold_left.hpp>
+# include <boost/preprocessor/seq/reverse.hpp>
+# include <boost/preprocessor/seq/seq.hpp>
+#
+# /* BOOST_PP_SEQ_FOLD_RIGHT */
+#
+# if 0
+#    define BOOST_PP_SEQ_FOLD_RIGHT(op, state, seq) ...
+# endif
+#
+# define BOOST_PP_SEQ_FOLD_RIGHT BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_RIGHT_, BOOST_PP_AUTO_REC(BOOST_PP_SEQ_FOLD_LEFT_P, 256))
+#
+# define BOOST_PP_SEQ_FOLD_RIGHT_257(op, st, ss) BOOST_PP_ERROR(0x0005)
+#
+# define BOOST_PP_SEQ_FOLD_RIGHT_1(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, BOOST_PP_SEQ_REVERSE_S(2, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_2(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, BOOST_PP_SEQ_REVERSE_S(3, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_3(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, BOOST_PP_SEQ_REVERSE_S(4, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_4(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, BOOST_PP_SEQ_REVERSE_S(5, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_5(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, BOOST_PP_SEQ_REVERSE_S(6, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_6(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, BOOST_PP_SEQ_REVERSE_S(7, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_7(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, BOOST_PP_SEQ_REVERSE_S(8, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_8(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, BOOST_PP_SEQ_REVERSE_S(9, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_9(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, BOOST_PP_SEQ_REVERSE_S(10, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_10(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, BOOST_PP_SEQ_REVERSE_S(11, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_11(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, BOOST_PP_SEQ_REVERSE_S(12, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_12(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, BOOST_PP_SEQ_REVERSE_S(13, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_13(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, BOOST_PP_SEQ_REVERSE_S(14, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_14(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, BOOST_PP_SEQ_REVERSE_S(15, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_15(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, BOOST_PP_SEQ_REVERSE_S(16, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_16(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, BOOST_PP_SEQ_REVERSE_S(17, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_17(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, BOOST_PP_SEQ_REVERSE_S(18, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_18(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, BOOST_PP_SEQ_REVERSE_S(19, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_19(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, BOOST_PP_SEQ_REVERSE_S(20, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_20(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, BOOST_PP_SEQ_REVERSE_S(21, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_21(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, BOOST_PP_SEQ_REVERSE_S(22, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_22(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, BOOST_PP_SEQ_REVERSE_S(23, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_23(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, BOOST_PP_SEQ_REVERSE_S(24, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_24(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, BOOST_PP_SEQ_REVERSE_S(25, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_25(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, BOOST_PP_SEQ_REVERSE_S(26, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_26(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, BOOST_PP_SEQ_REVERSE_S(27, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_27(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, BOOST_PP_SEQ_REVERSE_S(28, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_28(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, BOOST_PP_SEQ_REVERSE_S(29, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_29(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, BOOST_PP_SEQ_REVERSE_S(30, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_30(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, BOOST_PP_SEQ_REVERSE_S(31, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_31(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, BOOST_PP_SEQ_REVERSE_S(32, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_32(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, BOOST_PP_SEQ_REVERSE_S(33, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_33(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, BOOST_PP_SEQ_REVERSE_S(34, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_34(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, BOOST_PP_SEQ_REVERSE_S(35, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_35(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, BOOST_PP_SEQ_REVERSE_S(36, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_36(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, BOOST_PP_SEQ_REVERSE_S(37, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_37(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, BOOST_PP_SEQ_REVERSE_S(38, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_38(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, BOOST_PP_SEQ_REVERSE_S(39, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_39(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, BOOST_PP_SEQ_REVERSE_S(40, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_40(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, BOOST_PP_SEQ_REVERSE_S(41, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_41(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, BOOST_PP_SEQ_REVERSE_S(42, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_42(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, BOOST_PP_SEQ_REVERSE_S(43, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_43(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, BOOST_PP_SEQ_REVERSE_S(44, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_44(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, BOOST_PP_SEQ_REVERSE_S(45, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_45(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, BOOST_PP_SEQ_REVERSE_S(46, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_46(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, BOOST_PP_SEQ_REVERSE_S(47, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_47(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, BOOST_PP_SEQ_REVERSE_S(48, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_48(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, BOOST_PP_SEQ_REVERSE_S(49, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_49(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, BOOST_PP_SEQ_REVERSE_S(50, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_50(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, BOOST_PP_SEQ_REVERSE_S(51, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_51(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, BOOST_PP_SEQ_REVERSE_S(52, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_52(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, BOOST_PP_SEQ_REVERSE_S(53, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_53(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, BOOST_PP_SEQ_REVERSE_S(54, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_54(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, BOOST_PP_SEQ_REVERSE_S(55, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_55(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, BOOST_PP_SEQ_REVERSE_S(56, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_56(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, BOOST_PP_SEQ_REVERSE_S(57, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_57(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, BOOST_PP_SEQ_REVERSE_S(58, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_58(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, BOOST_PP_SEQ_REVERSE_S(59, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_59(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, BOOST_PP_SEQ_REVERSE_S(60, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_60(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, BOOST_PP_SEQ_REVERSE_S(61, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_61(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, BOOST_PP_SEQ_REVERSE_S(62, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_62(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, BOOST_PP_SEQ_REVERSE_S(63, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_63(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, BOOST_PP_SEQ_REVERSE_S(64, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_64(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, BOOST_PP_SEQ_REVERSE_S(65, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_65(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, BOOST_PP_SEQ_REVERSE_S(66, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_66(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, BOOST_PP_SEQ_REVERSE_S(67, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_67(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, BOOST_PP_SEQ_REVERSE_S(68, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_68(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, BOOST_PP_SEQ_REVERSE_S(69, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_69(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, BOOST_PP_SEQ_REVERSE_S(70, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_70(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, BOOST_PP_SEQ_REVERSE_S(71, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_71(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, BOOST_PP_SEQ_REVERSE_S(72, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_72(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, BOOST_PP_SEQ_REVERSE_S(73, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_73(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, BOOST_PP_SEQ_REVERSE_S(74, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_74(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, BOOST_PP_SEQ_REVERSE_S(75, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_75(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, BOOST_PP_SEQ_REVERSE_S(76, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_76(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, BOOST_PP_SEQ_REVERSE_S(77, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_77(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, BOOST_PP_SEQ_REVERSE_S(78, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_78(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, BOOST_PP_SEQ_REVERSE_S(79, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_79(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, BOOST_PP_SEQ_REVERSE_S(80, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_80(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, BOOST_PP_SEQ_REVERSE_S(81, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_81(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, BOOST_PP_SEQ_REVERSE_S(82, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_82(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, BOOST_PP_SEQ_REVERSE_S(83, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_83(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, BOOST_PP_SEQ_REVERSE_S(84, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_84(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, BOOST_PP_SEQ_REVERSE_S(85, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_85(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, BOOST_PP_SEQ_REVERSE_S(86, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_86(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, BOOST_PP_SEQ_REVERSE_S(87, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_87(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, BOOST_PP_SEQ_REVERSE_S(88, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_88(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, BOOST_PP_SEQ_REVERSE_S(89, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_89(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, BOOST_PP_SEQ_REVERSE_S(90, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_90(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, BOOST_PP_SEQ_REVERSE_S(91, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_91(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, BOOST_PP_SEQ_REVERSE_S(92, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_92(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, BOOST_PP_SEQ_REVERSE_S(93, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_93(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, BOOST_PP_SEQ_REVERSE_S(94, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_94(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, BOOST_PP_SEQ_REVERSE_S(95, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_95(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, BOOST_PP_SEQ_REVERSE_S(96, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_96(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, BOOST_PP_SEQ_REVERSE_S(97, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_97(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, BOOST_PP_SEQ_REVERSE_S(98, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_98(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, BOOST_PP_SEQ_REVERSE_S(99, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_99(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, BOOST_PP_SEQ_REVERSE_S(100, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_100(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, BOOST_PP_SEQ_REVERSE_S(101, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_101(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, BOOST_PP_SEQ_REVERSE_S(102, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_102(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, BOOST_PP_SEQ_REVERSE_S(103, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_103(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, BOOST_PP_SEQ_REVERSE_S(104, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_104(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, BOOST_PP_SEQ_REVERSE_S(105, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_105(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, BOOST_PP_SEQ_REVERSE_S(106, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_106(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, BOOST_PP_SEQ_REVERSE_S(107, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_107(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, BOOST_PP_SEQ_REVERSE_S(108, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_108(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, BOOST_PP_SEQ_REVERSE_S(109, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_109(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, BOOST_PP_SEQ_REVERSE_S(110, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_110(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, BOOST_PP_SEQ_REVERSE_S(111, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_111(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, BOOST_PP_SEQ_REVERSE_S(112, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_112(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, BOOST_PP_SEQ_REVERSE_S(113, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_113(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, BOOST_PP_SEQ_REVERSE_S(114, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_114(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, BOOST_PP_SEQ_REVERSE_S(115, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_115(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, BOOST_PP_SEQ_REVERSE_S(116, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_116(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, BOOST_PP_SEQ_REVERSE_S(117, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_117(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, BOOST_PP_SEQ_REVERSE_S(118, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_118(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, BOOST_PP_SEQ_REVERSE_S(119, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_119(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, BOOST_PP_SEQ_REVERSE_S(120, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_120(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, BOOST_PP_SEQ_REVERSE_S(121, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_121(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, BOOST_PP_SEQ_REVERSE_S(122, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_122(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, BOOST_PP_SEQ_REVERSE_S(123, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_123(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, BOOST_PP_SEQ_REVERSE_S(124, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_124(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, BOOST_PP_SEQ_REVERSE_S(125, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_125(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, BOOST_PP_SEQ_REVERSE_S(126, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_126(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, BOOST_PP_SEQ_REVERSE_S(127, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_127(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, BOOST_PP_SEQ_REVERSE_S(128, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_128(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, BOOST_PP_SEQ_REVERSE_S(129, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_129(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, BOOST_PP_SEQ_REVERSE_S(130, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_130(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, BOOST_PP_SEQ_REVERSE_S(131, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_131(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, BOOST_PP_SEQ_REVERSE_S(132, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_132(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, BOOST_PP_SEQ_REVERSE_S(133, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_133(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, BOOST_PP_SEQ_REVERSE_S(134, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_134(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, BOOST_PP_SEQ_REVERSE_S(135, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_135(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, BOOST_PP_SEQ_REVERSE_S(136, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_136(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, BOOST_PP_SEQ_REVERSE_S(137, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_137(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, BOOST_PP_SEQ_REVERSE_S(138, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_138(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, BOOST_PP_SEQ_REVERSE_S(139, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_139(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, BOOST_PP_SEQ_REVERSE_S(140, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_140(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, BOOST_PP_SEQ_REVERSE_S(141, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_141(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, BOOST_PP_SEQ_REVERSE_S(142, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_142(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, BOOST_PP_SEQ_REVERSE_S(143, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_143(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, BOOST_PP_SEQ_REVERSE_S(144, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_144(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, BOOST_PP_SEQ_REVERSE_S(145, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_145(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, BOOST_PP_SEQ_REVERSE_S(146, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_146(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, BOOST_PP_SEQ_REVERSE_S(147, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_147(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, BOOST_PP_SEQ_REVERSE_S(148, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_148(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, BOOST_PP_SEQ_REVERSE_S(149, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_149(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, BOOST_PP_SEQ_REVERSE_S(150, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_150(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, BOOST_PP_SEQ_REVERSE_S(151, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_151(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, BOOST_PP_SEQ_REVERSE_S(152, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_152(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, BOOST_PP_SEQ_REVERSE_S(153, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_153(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, BOOST_PP_SEQ_REVERSE_S(154, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_154(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, BOOST_PP_SEQ_REVERSE_S(155, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_155(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, BOOST_PP_SEQ_REVERSE_S(156, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_156(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, BOOST_PP_SEQ_REVERSE_S(157, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_157(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, BOOST_PP_SEQ_REVERSE_S(158, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_158(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, BOOST_PP_SEQ_REVERSE_S(159, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_159(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, BOOST_PP_SEQ_REVERSE_S(160, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_160(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, BOOST_PP_SEQ_REVERSE_S(161, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_161(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, BOOST_PP_SEQ_REVERSE_S(162, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_162(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, BOOST_PP_SEQ_REVERSE_S(163, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_163(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, BOOST_PP_SEQ_REVERSE_S(164, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_164(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, BOOST_PP_SEQ_REVERSE_S(165, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_165(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, BOOST_PP_SEQ_REVERSE_S(166, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_166(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, BOOST_PP_SEQ_REVERSE_S(167, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_167(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, BOOST_PP_SEQ_REVERSE_S(168, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_168(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, BOOST_PP_SEQ_REVERSE_S(169, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_169(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, BOOST_PP_SEQ_REVERSE_S(170, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_170(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, BOOST_PP_SEQ_REVERSE_S(171, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_171(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, BOOST_PP_SEQ_REVERSE_S(172, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_172(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, BOOST_PP_SEQ_REVERSE_S(173, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_173(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, BOOST_PP_SEQ_REVERSE_S(174, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_174(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, BOOST_PP_SEQ_REVERSE_S(175, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_175(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, BOOST_PP_SEQ_REVERSE_S(176, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_176(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, BOOST_PP_SEQ_REVERSE_S(177, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_177(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, BOOST_PP_SEQ_REVERSE_S(178, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_178(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, BOOST_PP_SEQ_REVERSE_S(179, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_179(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, BOOST_PP_SEQ_REVERSE_S(180, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_180(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, BOOST_PP_SEQ_REVERSE_S(181, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_181(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, BOOST_PP_SEQ_REVERSE_S(182, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_182(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, BOOST_PP_SEQ_REVERSE_S(183, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_183(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, BOOST_PP_SEQ_REVERSE_S(184, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_184(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, BOOST_PP_SEQ_REVERSE_S(185, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_185(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, BOOST_PP_SEQ_REVERSE_S(186, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_186(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, BOOST_PP_SEQ_REVERSE_S(187, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_187(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, BOOST_PP_SEQ_REVERSE_S(188, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_188(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, BOOST_PP_SEQ_REVERSE_S(189, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_189(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, BOOST_PP_SEQ_REVERSE_S(190, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_190(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, BOOST_PP_SEQ_REVERSE_S(191, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_191(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, BOOST_PP_SEQ_REVERSE_S(192, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_192(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, BOOST_PP_SEQ_REVERSE_S(193, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_193(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, BOOST_PP_SEQ_REVERSE_S(194, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_194(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, BOOST_PP_SEQ_REVERSE_S(195, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_195(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, BOOST_PP_SEQ_REVERSE_S(196, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_196(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, BOOST_PP_SEQ_REVERSE_S(197, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_197(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, BOOST_PP_SEQ_REVERSE_S(198, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_198(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, BOOST_PP_SEQ_REVERSE_S(199, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_199(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, BOOST_PP_SEQ_REVERSE_S(200, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_200(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, BOOST_PP_SEQ_REVERSE_S(201, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_201(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, BOOST_PP_SEQ_REVERSE_S(202, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_202(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, BOOST_PP_SEQ_REVERSE_S(203, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_203(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, BOOST_PP_SEQ_REVERSE_S(204, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_204(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, BOOST_PP_SEQ_REVERSE_S(205, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_205(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, BOOST_PP_SEQ_REVERSE_S(206, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_206(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, BOOST_PP_SEQ_REVERSE_S(207, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_207(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, BOOST_PP_SEQ_REVERSE_S(208, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_208(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, BOOST_PP_SEQ_REVERSE_S(209, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_209(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, BOOST_PP_SEQ_REVERSE_S(210, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_210(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, BOOST_PP_SEQ_REVERSE_S(211, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_211(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, BOOST_PP_SEQ_REVERSE_S(212, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_212(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, BOOST_PP_SEQ_REVERSE_S(213, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_213(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, BOOST_PP_SEQ_REVERSE_S(214, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_214(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, BOOST_PP_SEQ_REVERSE_S(215, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_215(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, BOOST_PP_SEQ_REVERSE_S(216, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_216(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, BOOST_PP_SEQ_REVERSE_S(217, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_217(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, BOOST_PP_SEQ_REVERSE_S(218, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_218(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, BOOST_PP_SEQ_REVERSE_S(219, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_219(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, BOOST_PP_SEQ_REVERSE_S(220, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_220(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, BOOST_PP_SEQ_REVERSE_S(221, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_221(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, BOOST_PP_SEQ_REVERSE_S(222, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_222(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, BOOST_PP_SEQ_REVERSE_S(223, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_223(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, BOOST_PP_SEQ_REVERSE_S(224, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_224(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, BOOST_PP_SEQ_REVERSE_S(225, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_225(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, BOOST_PP_SEQ_REVERSE_S(226, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_226(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, BOOST_PP_SEQ_REVERSE_S(227, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_227(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, BOOST_PP_SEQ_REVERSE_S(228, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_228(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, BOOST_PP_SEQ_REVERSE_S(229, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_229(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, BOOST_PP_SEQ_REVERSE_S(230, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_230(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, BOOST_PP_SEQ_REVERSE_S(231, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_231(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, BOOST_PP_SEQ_REVERSE_S(232, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_232(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, BOOST_PP_SEQ_REVERSE_S(233, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_233(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, BOOST_PP_SEQ_REVERSE_S(234, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_234(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, BOOST_PP_SEQ_REVERSE_S(235, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_235(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, BOOST_PP_SEQ_REVERSE_S(236, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_236(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, BOOST_PP_SEQ_REVERSE_S(237, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_237(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, BOOST_PP_SEQ_REVERSE_S(238, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_238(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, BOOST_PP_SEQ_REVERSE_S(239, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_239(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, BOOST_PP_SEQ_REVERSE_S(240, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_240(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, BOOST_PP_SEQ_REVERSE_S(241, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_241(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, BOOST_PP_SEQ_REVERSE_S(242, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_242(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, BOOST_PP_SEQ_REVERSE_S(243, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_243(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, BOOST_PP_SEQ_REVERSE_S(244, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_244(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, BOOST_PP_SEQ_REVERSE_S(245, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_245(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, BOOST_PP_SEQ_REVERSE_S(246, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_246(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, BOOST_PP_SEQ_REVERSE_S(247, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_247(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, BOOST_PP_SEQ_REVERSE_S(248, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_248(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, BOOST_PP_SEQ_REVERSE_S(249, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_249(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, BOOST_PP_SEQ_REVERSE_S(250, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_250(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, BOOST_PP_SEQ_REVERSE_S(251, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_251(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, BOOST_PP_SEQ_REVERSE_S(252, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_252(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, BOOST_PP_SEQ_REVERSE_S(253, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_253(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, BOOST_PP_SEQ_REVERSE_S(254, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_254(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, BOOST_PP_SEQ_REVERSE_S(255, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_255(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, BOOST_PP_SEQ_REVERSE_S(256, ss), BOOST_PP_SEQ_SIZE(ss))
+# define BOOST_PP_SEQ_FOLD_RIGHT_256(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, BOOST_PP_SEQ_REVERSE_S(257, ss), BOOST_PP_SEQ_SIZE(ss))
+#
+# endif
index 3cb74749dd34cbe17d90e1dd4b87a47a46874ca5..e997a9a852d68f9f4c35111b3bba97ea2b2d810d 100644 (file)
@@ -1,60 +1,60 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/dec.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/repetition/for.hpp>\r
-# include <boost/preprocessor/seq/seq.hpp>\r
-# include <boost/preprocessor/seq/size.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-# include <boost/preprocessor/tuple/rem.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_FOR_EACH */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)\r
-# else\r
-#    define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_D(macro, data, seq)\r
-#    define BOOST_PP_SEQ_FOR_EACH_D(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_FOR_EACH_P(r, x) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(3, 2, x)))\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I x\r
-# else\r
-#    define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I(BOOST_PP_TUPLE_ELEM(3, 0, x), BOOST_PP_TUPLE_ELEM(3, 1, x), BOOST_PP_TUPLE_ELEM(3, 2, x))\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_FOR_EACH_O_I(macro, data, seq) (macro, data, BOOST_PP_SEQ_TAIL(seq))\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_IM(r, BOOST_PP_TUPLE_REM_3 x)\r
-#    define BOOST_PP_SEQ_FOR_EACH_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_M_I(r, im)\r
-# else\r
-#    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_I(r, BOOST_PP_TUPLE_ELEM(3, 0, x), BOOST_PP_TUPLE_ELEM(3, 1, x), BOOST_PP_TUPLE_ELEM(3, 2, x))\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq) macro(r, data, BOOST_PP_SEQ_HEAD(seq))\r
-#\r
-# /* BOOST_PP_SEQ_FOR_EACH_R */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_FOR_EACH_R(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)\r
-# else\r
-#    define BOOST_PP_SEQ_FOR_EACH_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq)\r
-#    define BOOST_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_HPP
+# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_HPP
+#
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/repetition/for.hpp>
+# include <boost/preprocessor/seq/seq.hpp>
+# include <boost/preprocessor/seq/size.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_SEQ_FOR_EACH */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)
+# else
+#    define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_D(macro, data, seq)
+#    define BOOST_PP_SEQ_FOR_EACH_D(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)
+# endif
+#
+# define BOOST_PP_SEQ_FOR_EACH_P(r, x) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(3, 2, x)))
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I x
+# else
+#    define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I(BOOST_PP_TUPLE_ELEM(3, 0, x), BOOST_PP_TUPLE_ELEM(3, 1, x), BOOST_PP_TUPLE_ELEM(3, 2, x))
+# endif
+#
+# define BOOST_PP_SEQ_FOR_EACH_O_I(macro, data, seq) (macro, data, BOOST_PP_SEQ_TAIL(seq))
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_IM(r, BOOST_PP_TUPLE_REM_3 x)
+#    define BOOST_PP_SEQ_FOR_EACH_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_M_I(r, im)
+# else
+#    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_I(r, BOOST_PP_TUPLE_ELEM(3, 0, x), BOOST_PP_TUPLE_ELEM(3, 1, x), BOOST_PP_TUPLE_ELEM(3, 2, x))
+# endif
+#
+# define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq) macro(r, data, BOOST_PP_SEQ_HEAD(seq))
+#
+# /* BOOST_PP_SEQ_FOR_EACH_R */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_FOR_EACH_R(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)
+# else
+#    define BOOST_PP_SEQ_FOR_EACH_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq)
+#    define BOOST_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)
+# endif
+#
+# endif
index 023645fa31ada4fc126d306c025e752a4563f5da..c8edf5af4475fa5860081dc3f7ca45fceca80f66 100644 (file)
@@ -1,61 +1,61 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_I_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_I_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/dec.hpp>\r
-# include <boost/preprocessor/arithmetic/inc.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/repetition/for.hpp>\r
-# include <boost/preprocessor/seq/seq.hpp>\r
-# include <boost/preprocessor/seq/size.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-# include <boost/preprocessor/tuple/rem.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_FOR_EACH_I */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_FOR_EACH_I(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)\r
-# else\r
-#    define BOOST_PP_SEQ_FOR_EACH_I(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_I(macro, data, seq)\r
-#    define BOOST_PP_SEQ_FOR_EACH_I_I(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_FOR_EACH_I_P(r, x) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(4, 2, x)))\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I x\r
-# else\r
-#    define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I(BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x))\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_FOR_EACH_I_O_I(macro, data, seq, i) (macro, data, BOOST_PP_SEQ_TAIL(seq), BOOST_PP_INC(i))\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_4 x)\r
-#    define BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, im)\r
-# else\r
-#    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x))\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i) macro(r, data, i, BOOST_PP_SEQ_HEAD(seq))\r
-#\r
-# /* BOOST_PP_SEQ_FOR_EACH_I_R */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)\r
-# else\r
-#    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq)\r
-#    define BOOST_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_I_HPP
+# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_I_HPP
+#
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/repetition/for.hpp>
+# include <boost/preprocessor/seq/seq.hpp>
+# include <boost/preprocessor/seq/size.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_SEQ_FOR_EACH_I */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_FOR_EACH_I(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
+# else
+#    define BOOST_PP_SEQ_FOR_EACH_I(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_I(macro, data, seq)
+#    define BOOST_PP_SEQ_FOR_EACH_I_I(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
+# endif
+#
+# define BOOST_PP_SEQ_FOR_EACH_I_P(r, x) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(4, 2, x)))
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I x
+# else
+#    define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I(BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x))
+# endif
+#
+# define BOOST_PP_SEQ_FOR_EACH_I_O_I(macro, data, seq, i) (macro, data, BOOST_PP_SEQ_TAIL(seq), BOOST_PP_INC(i))
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_4 x)
+#    define BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, im)
+# else
+#    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x))
+# endif
+#
+# define BOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i) macro(r, data, i, BOOST_PP_SEQ_HEAD(seq))
+#
+# /* BOOST_PP_SEQ_FOR_EACH_I_R */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
+# else
+#    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq)
+#    define BOOST_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
+# endif
+#
+# endif
index 95f741593b80ec4927329833c9ad9750e6ad4d61..baf22df4809475979aafa1401e69a3bbf8254f43 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_PRODUCT_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_PRODUCT_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/dec.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/control/if.hpp>\r
-# include <boost/preprocessor/repetition/for.hpp>\r
-# include <boost/preprocessor/seq/seq.hpp>\r
-# include <boost/preprocessor/seq/size.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-# include <boost/preprocessor/tuple/rem.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_FOR_EACH_PRODUCT */\r
-#\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT(macro, sets) BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(BOOST_PP_FOR, macro, sets)\r
-#\r
-# /* BOOST_PP_SEQ_FOR_EACH_PRODUCT_R */\r
-#\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_R(r, macro, sets) BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(BOOST_PP_FOR_ ## r, macro, sets)\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(impl, macro, sets) impl((BOOST_PP_SEQ_HEAD(sets)(nil), BOOST_PP_SEQ_TAIL(sets)(nil), (nil), macro), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_0)\r
-# else\r
-#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(impl, macro, sets) BOOST_PP_SEQ_FOR_EACH_PRODUCT_E_I(impl, macro, sets)\r
-#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_E_I(impl, macro, sets) impl((BOOST_PP_SEQ_HEAD(sets)(nil), BOOST_PP_SEQ_TAIL(sets)(nil), (nil), macro), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_0)\r
-# endif\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_P(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_P_I data\r
-#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_P_I(cset, rset, res, macro) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(cset))\r
-# else\r
-#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_P(r, data) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(4, 0, data)))\r
-# endif\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_O(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_O_I data\r
-#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_O_I(cset, rset, res, macro) (BOOST_PP_SEQ_TAIL(cset), rset, res, macro)\r
-# else\r
-#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_O(r, data) (BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(4, 0, data)), BOOST_PP_TUPLE_ELEM(4, 1, data), BOOST_PP_TUPLE_ELEM(4, 2, data), BOOST_PP_TUPLE_ELEM(4, 3, data))\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, i) BOOST_PP_IF(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(4, 1, data))), BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_ ## i, BOOST_PP_SEQ_FOR_EACH_PRODUCT_I)\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, BOOST_PP_TUPLE_ELEM(4, 0, data), BOOST_PP_TUPLE_ELEM(4, 1, data), BOOST_PP_TUPLE_ELEM(4, 2, data), BOOST_PP_TUPLE_ELEM(4, 3, data))\r
-# else\r
-#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_IM(r, BOOST_PP_TUPLE_REM_4 data)\r
-#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_IM(r, im) BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, im)\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, cset, rset, res, macro) macro(r, BOOST_PP_SEQ_TAIL(res (BOOST_PP_SEQ_HEAD(cset))))\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_H_I data\r
-# else\r
-#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_H_I(BOOST_PP_TUPLE_ELEM(4, 0, data), BOOST_PP_TUPLE_ELEM(4, 1, data), BOOST_PP_TUPLE_ELEM(4, 2, data), BOOST_PP_TUPLE_ELEM(4, 3, data))\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_H_I(cset, rset, res, macro) (BOOST_PP_SEQ_HEAD(rset)(nil), BOOST_PP_SEQ_TAIL(rset), res (BOOST_PP_SEQ_HEAD(cset)), macro)\r
-#\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_0(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 0)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_1(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 1)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_2(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 2)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_3(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 3)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_4(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 4)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_5(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 5)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_6(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 6)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_7(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 7)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_8(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 8)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_9(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 9)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_10(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 10)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_11(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 11)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_12(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 12)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_13(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 13)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_14(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 14)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_15(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 15)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_16(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 16)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_17(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 17)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_18(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 18)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_19(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 19)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_20(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 20)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_21(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 21)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_22(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 22)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_23(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 23)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_24(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 24)(r, data)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_25(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 25)(r, data)\r
-#\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_0(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_1)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_1(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_2)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_2(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_3)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_3(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_4)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_4(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_5)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_5(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_6)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_6(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_7)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_7(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_8)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_8(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_9)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_9(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_10)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_10(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_11)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_11(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_12)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_12(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_13)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_13(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_14)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_14(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_15)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_15(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_16)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_16(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_17)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_17(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_18)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_18(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_19)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_19(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_20)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_20(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_21)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_21(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_22)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_22(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_23)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_23(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_24)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_24(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_25)\r
-# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_25(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_26)\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_PRODUCT_HPP
+# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_PRODUCT_HPP
+#
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/control/if.hpp>
+# include <boost/preprocessor/repetition/for.hpp>
+# include <boost/preprocessor/seq/seq.hpp>
+# include <boost/preprocessor/seq/size.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_SEQ_FOR_EACH_PRODUCT */
+#
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT(macro, sets) BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(BOOST_PP_FOR, macro, sets)
+#
+# /* BOOST_PP_SEQ_FOR_EACH_PRODUCT_R */
+#
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_R(r, macro, sets) BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(BOOST_PP_FOR_ ## r, macro, sets)
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(impl, macro, sets) impl((BOOST_PP_SEQ_HEAD(sets)(nil), BOOST_PP_SEQ_TAIL(sets)(nil), (nil), macro), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_0)
+# else
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(impl, macro, sets) BOOST_PP_SEQ_FOR_EACH_PRODUCT_E_I(impl, macro, sets)
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_E_I(impl, macro, sets) impl((BOOST_PP_SEQ_HEAD(sets)(nil), BOOST_PP_SEQ_TAIL(sets)(nil), (nil), macro), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_0)
+# endif
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_P(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_P_I data
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_P_I(cset, rset, res, macro) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(cset))
+# else
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_P(r, data) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(4, 0, data)))
+# endif
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_O(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_O_I data
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_O_I(cset, rset, res, macro) (BOOST_PP_SEQ_TAIL(cset), rset, res, macro)
+# else
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_O(r, data) (BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(4, 0, data)), BOOST_PP_TUPLE_ELEM(4, 1, data), BOOST_PP_TUPLE_ELEM(4, 2, data), BOOST_PP_TUPLE_ELEM(4, 3, data))
+# endif
+#
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, i) BOOST_PP_IF(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(4, 1, data))), BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_ ## i, BOOST_PP_SEQ_FOR_EACH_PRODUCT_I)
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, BOOST_PP_TUPLE_ELEM(4, 0, data), BOOST_PP_TUPLE_ELEM(4, 1, data), BOOST_PP_TUPLE_ELEM(4, 2, data), BOOST_PP_TUPLE_ELEM(4, 3, data))
+# else
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_IM(r, BOOST_PP_TUPLE_REM_4 data)
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_IM(r, im) BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, im)
+# endif
+#
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, cset, rset, res, macro) macro(r, BOOST_PP_SEQ_TAIL(res (BOOST_PP_SEQ_HEAD(cset))))
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_H_I data
+# else
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_H_I(BOOST_PP_TUPLE_ELEM(4, 0, data), BOOST_PP_TUPLE_ELEM(4, 1, data), BOOST_PP_TUPLE_ELEM(4, 2, data), BOOST_PP_TUPLE_ELEM(4, 3, data))
+# endif
+#
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_H_I(cset, rset, res, macro) (BOOST_PP_SEQ_HEAD(rset)(nil), BOOST_PP_SEQ_TAIL(rset), res (BOOST_PP_SEQ_HEAD(cset)), macro)
+#
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_0(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 0)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_1(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 1)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_2(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 2)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_3(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 3)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_4(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 4)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_5(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 5)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_6(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 6)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_7(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 7)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_8(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 8)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_9(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 9)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_10(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 10)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_11(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 11)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_12(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 12)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_13(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 13)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_14(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 14)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_15(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 15)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_16(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 16)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_17(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 17)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_18(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 18)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_19(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 19)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_20(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 20)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_21(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 21)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_22(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 22)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_23(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 23)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_24(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 24)(r, data)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_25(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 25)(r, data)
+#
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_0(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_1)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_1(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_2)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_2(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_3)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_3(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_4)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_4(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_5)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_5(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_6)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_6(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_7)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_7(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_8)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_8(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_9)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_9(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_10)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_10(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_11)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_11(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_12)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_12(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_13)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_13(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_14)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_14(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_15)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_15(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_16)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_16(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_17)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_17(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_18)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_18(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_19)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_19(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_20)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_20(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_21)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_21(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_22)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_22(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_23)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_23(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_24)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_24(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_25)
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_25(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_26)
+#
+# endif
index 2889a15ea724164b2230bc3a02a9679a88c84e35..59ce2f4d1866873bdc61e3f7966a53344b96b62b 100644 (file)
@@ -1,28 +1,28 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_INSERT_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_INSERT_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/seq/first_n.hpp>\r
-# include <boost/preprocessor/seq/rest_n.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_INSERT */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_INSERT(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REST_N(i, seq)\r
-# else\r
-#    define BOOST_PP_SEQ_INSERT(seq, i, elem) BOOST_PP_SEQ_INSERT_I(seq, i, elem)\r
-#    define BOOST_PP_SEQ_INSERT_I(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REST_N(i, seq)\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_INSERT_HPP
+# define BOOST_PREPROCESSOR_SEQ_INSERT_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/seq/first_n.hpp>
+# include <boost/preprocessor/seq/rest_n.hpp>
+#
+# /* BOOST_PP_SEQ_INSERT */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_INSERT(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REST_N(i, seq)
+# else
+#    define BOOST_PP_SEQ_INSERT(seq, i, elem) BOOST_PP_SEQ_INSERT_I(seq, i, elem)
+#    define BOOST_PP_SEQ_INSERT_I(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REST_N(i, seq)
+# endif
+#
+# endif
index 2014ea57f7ef2ee182b664702665f50acd2b16d1..54200d61858668c67f78cd66dd0d890e7a8f0caf 100644 (file)
@@ -1,29 +1,29 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_POP_BACK_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_POP_BACK_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/dec.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/seq/first_n.hpp>\r
-# include <boost/preprocessor/seq/size.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_POP_BACK */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_POP_BACK(seq) BOOST_PP_SEQ_FIRST_N(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), seq)\r
-# else\r
-#    define BOOST_PP_SEQ_POP_BACK(seq) BOOST_PP_SEQ_POP_BACK_I(seq)\r
-#    define BOOST_PP_SEQ_POP_BACK_I(seq) BOOST_PP_SEQ_FIRST_N(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), seq)\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_POP_BACK_HPP
+# define BOOST_PREPROCESSOR_SEQ_POP_BACK_HPP
+#
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/seq/first_n.hpp>
+# include <boost/preprocessor/seq/size.hpp>
+#
+# /* BOOST_PP_SEQ_POP_BACK */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_POP_BACK(seq) BOOST_PP_SEQ_FIRST_N(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), seq)
+# else
+#    define BOOST_PP_SEQ_POP_BACK(seq) BOOST_PP_SEQ_POP_BACK_I(seq)
+#    define BOOST_PP_SEQ_POP_BACK_I(seq) BOOST_PP_SEQ_FIRST_N(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), seq)
+# endif
+#
+# endif
index f2ab4d9bdd78fa371fdd81ea25b2586977f9cf94..7d94eea916103083e111d2dbd2fc4ca041b27495 100644 (file)
@@ -1,27 +1,27 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_POP_FRONT_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_POP_FRONT_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/seq/seq.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_POP_FRONT */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_POP_FRONT(seq) BOOST_PP_SEQ_TAIL(seq)\r
-# else\r
-#    define BOOST_PP_SEQ_POP_FRONT(seq) BOOST_PP_SEQ_POP_FRONT_I(seq)\r
-#    define BOOST_PP_SEQ_POP_FRONT_I(seq) BOOST_PP_SEQ_TAIL(seq)\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_POP_FRONT_HPP
+# define BOOST_PREPROCESSOR_SEQ_POP_FRONT_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/seq/seq.hpp>
+#
+# /* BOOST_PP_SEQ_POP_FRONT */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_POP_FRONT(seq) BOOST_PP_SEQ_TAIL(seq)
+# else
+#    define BOOST_PP_SEQ_POP_FRONT(seq) BOOST_PP_SEQ_POP_FRONT_I(seq)
+#    define BOOST_PP_SEQ_POP_FRONT_I(seq) BOOST_PP_SEQ_TAIL(seq)
+# endif
+#
+# endif
index 28f1e42571dea372e6086e63de2891df45aaef77..1938d0be6443436f3083b20af1998fd7e39a5dfb 100644 (file)
@@ -1,19 +1,19 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_PUSH_BACK_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_PUSH_BACK_HPP\r
-#\r
-# /* BOOST_PP_SEQ_PUSH_BACK */\r
-#\r
-# define BOOST_PP_SEQ_PUSH_BACK(seq, elem) seq(elem)\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_PUSH_BACK_HPP
+# define BOOST_PREPROCESSOR_SEQ_PUSH_BACK_HPP
+#
+# /* BOOST_PP_SEQ_PUSH_BACK */
+#
+# define BOOST_PP_SEQ_PUSH_BACK(seq, elem) seq(elem)
+#
+# endif
index d5ee99496b08049593be43d21f51ea6c8b397b1b..2ce73ad1a3f1179ef73d82b46384f4ea1129c0d6 100644 (file)
@@ -1,19 +1,19 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_PUSH_FRONT_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_PUSH_FRONT_HPP\r
-#\r
-# /* BOOST_PP_SEQ_PUSH_FRONT */\r
-#\r
-# define BOOST_PP_SEQ_PUSH_FRONT(seq, elem) (elem)seq\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_PUSH_FRONT_HPP
+# define BOOST_PREPROCESSOR_SEQ_PUSH_FRONT_HPP
+#
+# /* BOOST_PP_SEQ_PUSH_FRONT */
+#
+# define BOOST_PP_SEQ_PUSH_FRONT(seq, elem) (elem)seq
+#
+# endif
index 64fabe08a3dd62d0f1fe3a2aa0d56a2f25af62f7..d2f77b0c61b38edb6d6efafd87c23a7698a6aef8 100644 (file)
@@ -1,29 +1,29 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_REMOVE_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_REMOVE_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/inc.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/seq/first_n.hpp>\r
-# include <boost/preprocessor/seq/rest_n.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_REMOVE */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_REMOVE(seq, i) BOOST_PP_SEQ_FIRST_N(i, seq) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq)\r
-# else\r
-#    define BOOST_PP_SEQ_REMOVE(seq, i) BOOST_PP_SEQ_REMOVE_I(seq, i)\r
-#    define BOOST_PP_SEQ_REMOVE_I(seq, i) BOOST_PP_SEQ_FIRST_N(i, seq) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq)\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_REMOVE_HPP
+# define BOOST_PREPROCESSOR_SEQ_REMOVE_HPP
+#
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/seq/first_n.hpp>
+# include <boost/preprocessor/seq/rest_n.hpp>
+#
+# /* BOOST_PP_SEQ_REMOVE */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_REMOVE(seq, i) BOOST_PP_SEQ_FIRST_N(i, seq) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq)
+# else
+#    define BOOST_PP_SEQ_REMOVE(seq, i) BOOST_PP_SEQ_REMOVE_I(seq, i)
+#    define BOOST_PP_SEQ_REMOVE_I(seq, i) BOOST_PP_SEQ_FIRST_N(i, seq) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq)
+# endif
+#
+# endif
index 70f484f5bcdc646be4a343713333b6fac52a9d1b..d6107a762685efac023a9613f7b3861dc2fde833 100644 (file)
@@ -1,29 +1,29 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_REPLACE_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_REPLACE_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/inc.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/seq/first_n.hpp>\r
-# include <boost/preprocessor/seq/rest_n.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_REPLACE */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_REPLACE(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq)\r
-# else\r
-#    define BOOST_PP_SEQ_REPLACE(seq, i, elem) BOOST_PP_SEQ_REPLACE_I(seq, i, elem)\r
-#    define BOOST_PP_SEQ_REPLACE_I(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq)\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_REPLACE_HPP
+# define BOOST_PREPROCESSOR_SEQ_REPLACE_HPP
+#
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/seq/first_n.hpp>
+# include <boost/preprocessor/seq/rest_n.hpp>
+#
+# /* BOOST_PP_SEQ_REPLACE */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_REPLACE(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq)
+# else
+#    define BOOST_PP_SEQ_REPLACE(seq, i, elem) BOOST_PP_SEQ_REPLACE_I(seq, i, elem)
+#    define BOOST_PP_SEQ_REPLACE_I(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq)
+# endif
+#
+# endif
index 291749a6d0e6444f5b875aede95f9cc874170609..7e589cce5a3fe89b23db574be6835e388e1913f9 100644 (file)
@@ -1,30 +1,30 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_REST_N_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_REST_N_HPP\r
-#\r
-# include <boost/preprocessor/arithmetic/inc.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/facilities/empty.hpp>\r
-# include <boost/preprocessor/seq/detail/split.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_REST_N */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_REST_N(n, seq) BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_SEQ_SPLIT(BOOST_PP_INC(n), (nil) seq BOOST_PP_EMPTY))()\r
-# else\r
-#    define BOOST_PP_SEQ_REST_N(n, seq) BOOST_PP_SEQ_REST_N_I(n, seq)\r
-#    define BOOST_PP_SEQ_REST_N_I(n, seq) BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_SEQ_SPLIT(BOOST_PP_INC(n), (nil) seq BOOST_PP_EMPTY))()\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_REST_N_HPP
+# define BOOST_PREPROCESSOR_SEQ_REST_N_HPP
+#
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/facilities/empty.hpp>
+# include <boost/preprocessor/seq/detail/split.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+#
+# /* BOOST_PP_SEQ_REST_N */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_REST_N(n, seq) BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_SEQ_SPLIT(BOOST_PP_INC(n), (nil) seq BOOST_PP_EMPTY))()
+# else
+#    define BOOST_PP_SEQ_REST_N(n, seq) BOOST_PP_SEQ_REST_N_I(n, seq)
+#    define BOOST_PP_SEQ_REST_N_I(n, seq) BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_SEQ_SPLIT(BOOST_PP_INC(n), (nil) seq BOOST_PP_EMPTY))()
+# endif
+#
+# endif
index 48cada0393c8ff3a95b799308e96af705d57f902..338d777d77babb64789045ae43dc65356d0d8edc 100644 (file)
@@ -1,39 +1,39 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_REVERSE_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_REVERSE_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/facilities/empty.hpp>\r
-# include <boost/preprocessor/seq/fold_left.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_REVERSE */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_REVERSE(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)()\r
-# else\r
-#    define BOOST_PP_SEQ_REVERSE(seq) BOOST_PP_SEQ_REVERSE_I(seq)\r
-#    define BOOST_PP_SEQ_REVERSE_I(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)()\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_REVERSE_O(s, state, elem) (elem) state\r
-#\r
-# /* BOOST_PP_SEQ_REVERSE_S */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_REVERSE_S(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)()\r
-# else\r
-#    define BOOST_PP_SEQ_REVERSE_S(s, seq) BOOST_PP_SEQ_REVERSE_S_I(s, seq)\r
-#    define BOOST_PP_SEQ_REVERSE_S_I(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)()\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_REVERSE_HPP
+# define BOOST_PREPROCESSOR_SEQ_REVERSE_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/facilities/empty.hpp>
+# include <boost/preprocessor/seq/fold_left.hpp>
+#
+# /* BOOST_PP_SEQ_REVERSE */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_REVERSE(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)()
+# else
+#    define BOOST_PP_SEQ_REVERSE(seq) BOOST_PP_SEQ_REVERSE_I(seq)
+#    define BOOST_PP_SEQ_REVERSE_I(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)()
+# endif
+#
+# define BOOST_PP_SEQ_REVERSE_O(s, state, elem) (elem) state
+#
+# /* BOOST_PP_SEQ_REVERSE_S */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_REVERSE_S(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)()
+# else
+#    define BOOST_PP_SEQ_REVERSE_S(s, seq) BOOST_PP_SEQ_REVERSE_S_I(s, seq)
+#    define BOOST_PP_SEQ_REVERSE_S_I(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)()
+# endif
+#
+# endif
index 1ae331dff0c3c16906735b75ebdb0757f7a00193..f5ca84c6f394716283546931ac4377ab79981c51 100644 (file)
@@ -1,44 +1,44 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_SEQ_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_SEQ_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/seq/elem.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_HEAD */\r
-#\r
-# define BOOST_PP_SEQ_HEAD(seq) BOOST_PP_SEQ_ELEM(0, seq)\r
-#\r
-# /* BOOST_PP_SEQ_TAIL */\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_1((seq))\r
-#    define BOOST_PP_SEQ_TAIL_1(par) BOOST_PP_SEQ_TAIL_2 ## par\r
-#    define BOOST_PP_SEQ_TAIL_2(seq) BOOST_PP_SEQ_TAIL_I ## seq\r
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
-#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_ID(BOOST_PP_SEQ_TAIL_I seq)\r
-#    define BOOST_PP_SEQ_TAIL_ID(id) id\r
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_D(seq)\r
-#    define BOOST_PP_SEQ_TAIL_D(seq) BOOST_PP_SEQ_TAIL_I seq\r
-# else\r
-#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_I seq\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_TAIL_I(x)\r
-#\r
-# /* BOOST_PP_SEQ_NIL */\r
-#\r
-# define BOOST_PP_SEQ_NIL(x) (x)\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_SEQ_HPP
+# define BOOST_PREPROCESSOR_SEQ_SEQ_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/seq/elem.hpp>
+#
+# /* BOOST_PP_SEQ_HEAD */
+#
+# define BOOST_PP_SEQ_HEAD(seq) BOOST_PP_SEQ_ELEM(0, seq)
+#
+# /* BOOST_PP_SEQ_TAIL */
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_1((seq))
+#    define BOOST_PP_SEQ_TAIL_1(par) BOOST_PP_SEQ_TAIL_2 ## par
+#    define BOOST_PP_SEQ_TAIL_2(seq) BOOST_PP_SEQ_TAIL_I ## seq
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_ID(BOOST_PP_SEQ_TAIL_I seq)
+#    define BOOST_PP_SEQ_TAIL_ID(id) id
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_D(seq)
+#    define BOOST_PP_SEQ_TAIL_D(seq) BOOST_PP_SEQ_TAIL_I seq
+# else
+#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_I seq
+# endif
+#
+# define BOOST_PP_SEQ_TAIL_I(x)
+#
+# /* BOOST_PP_SEQ_NIL */
+#
+# define BOOST_PP_SEQ_NIL(x) (x)
+#
+# endif
index f2141af2ae7e0567c9dea9b09064c08d1af86368..2f7b70ea51f27f668c6ddcfb3d9f84bfb5c87f46 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_SIZE_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_SIZE_HPP\r
-#\r
-# include <boost/preprocessor/cat.hpp>\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/tuple/eat.hpp>\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_SEQ_SIZE_I((seq))\r
-#    define BOOST_PP_SEQ_SIZE_I(par) BOOST_PP_SEQ_SIZE_II ## par\r
-#    define BOOST_PP_SEQ_SIZE_II(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 ## seq)\r
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() || BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
-#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_SEQ_SIZE_I(seq)\r
-#    define BOOST_PP_SEQ_SIZE_I(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 seq)\r
-# elif defined(__IBMC__) || defined(__IBMCPP__)\r
-#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_0, seq))\r
-# else\r
-#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 seq)\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_SIZE_0(_) BOOST_PP_SEQ_SIZE_1\r
-# define BOOST_PP_SEQ_SIZE_1(_) BOOST_PP_SEQ_SIZE_2\r
-# define BOOST_PP_SEQ_SIZE_2(_) BOOST_PP_SEQ_SIZE_3\r
-# define BOOST_PP_SEQ_SIZE_3(_) BOOST_PP_SEQ_SIZE_4\r
-# define BOOST_PP_SEQ_SIZE_4(_) BOOST_PP_SEQ_SIZE_5\r
-# define BOOST_PP_SEQ_SIZE_5(_) BOOST_PP_SEQ_SIZE_6\r
-# define BOOST_PP_SEQ_SIZE_6(_) BOOST_PP_SEQ_SIZE_7\r
-# define BOOST_PP_SEQ_SIZE_7(_) BOOST_PP_SEQ_SIZE_8\r
-# define BOOST_PP_SEQ_SIZE_8(_) BOOST_PP_SEQ_SIZE_9\r
-# define BOOST_PP_SEQ_SIZE_9(_) BOOST_PP_SEQ_SIZE_10\r
-# define BOOST_PP_SEQ_SIZE_10(_) BOOST_PP_SEQ_SIZE_11\r
-# define BOOST_PP_SEQ_SIZE_11(_) BOOST_PP_SEQ_SIZE_12\r
-# define BOOST_PP_SEQ_SIZE_12(_) BOOST_PP_SEQ_SIZE_13\r
-# define BOOST_PP_SEQ_SIZE_13(_) BOOST_PP_SEQ_SIZE_14\r
-# define BOOST_PP_SEQ_SIZE_14(_) BOOST_PP_SEQ_SIZE_15\r
-# define BOOST_PP_SEQ_SIZE_15(_) BOOST_PP_SEQ_SIZE_16\r
-# define BOOST_PP_SEQ_SIZE_16(_) BOOST_PP_SEQ_SIZE_17\r
-# define BOOST_PP_SEQ_SIZE_17(_) BOOST_PP_SEQ_SIZE_18\r
-# define BOOST_PP_SEQ_SIZE_18(_) BOOST_PP_SEQ_SIZE_19\r
-# define BOOST_PP_SEQ_SIZE_19(_) BOOST_PP_SEQ_SIZE_20\r
-# define BOOST_PP_SEQ_SIZE_20(_) BOOST_PP_SEQ_SIZE_21\r
-# define BOOST_PP_SEQ_SIZE_21(_) BOOST_PP_SEQ_SIZE_22\r
-# define BOOST_PP_SEQ_SIZE_22(_) BOOST_PP_SEQ_SIZE_23\r
-# define BOOST_PP_SEQ_SIZE_23(_) BOOST_PP_SEQ_SIZE_24\r
-# define BOOST_PP_SEQ_SIZE_24(_) BOOST_PP_SEQ_SIZE_25\r
-# define BOOST_PP_SEQ_SIZE_25(_) BOOST_PP_SEQ_SIZE_26\r
-# define BOOST_PP_SEQ_SIZE_26(_) BOOST_PP_SEQ_SIZE_27\r
-# define BOOST_PP_SEQ_SIZE_27(_) BOOST_PP_SEQ_SIZE_28\r
-# define BOOST_PP_SEQ_SIZE_28(_) BOOST_PP_SEQ_SIZE_29\r
-# define BOOST_PP_SEQ_SIZE_29(_) BOOST_PP_SEQ_SIZE_30\r
-# define BOOST_PP_SEQ_SIZE_30(_) BOOST_PP_SEQ_SIZE_31\r
-# define BOOST_PP_SEQ_SIZE_31(_) BOOST_PP_SEQ_SIZE_32\r
-# define BOOST_PP_SEQ_SIZE_32(_) BOOST_PP_SEQ_SIZE_33\r
-# define BOOST_PP_SEQ_SIZE_33(_) BOOST_PP_SEQ_SIZE_34\r
-# define BOOST_PP_SEQ_SIZE_34(_) BOOST_PP_SEQ_SIZE_35\r
-# define BOOST_PP_SEQ_SIZE_35(_) BOOST_PP_SEQ_SIZE_36\r
-# define BOOST_PP_SEQ_SIZE_36(_) BOOST_PP_SEQ_SIZE_37\r
-# define BOOST_PP_SEQ_SIZE_37(_) BOOST_PP_SEQ_SIZE_38\r
-# define BOOST_PP_SEQ_SIZE_38(_) BOOST_PP_SEQ_SIZE_39\r
-# define BOOST_PP_SEQ_SIZE_39(_) BOOST_PP_SEQ_SIZE_40\r
-# define BOOST_PP_SEQ_SIZE_40(_) BOOST_PP_SEQ_SIZE_41\r
-# define BOOST_PP_SEQ_SIZE_41(_) BOOST_PP_SEQ_SIZE_42\r
-# define BOOST_PP_SEQ_SIZE_42(_) BOOST_PP_SEQ_SIZE_43\r
-# define BOOST_PP_SEQ_SIZE_43(_) BOOST_PP_SEQ_SIZE_44\r
-# define BOOST_PP_SEQ_SIZE_44(_) BOOST_PP_SEQ_SIZE_45\r
-# define BOOST_PP_SEQ_SIZE_45(_) BOOST_PP_SEQ_SIZE_46\r
-# define BOOST_PP_SEQ_SIZE_46(_) BOOST_PP_SEQ_SIZE_47\r
-# define BOOST_PP_SEQ_SIZE_47(_) BOOST_PP_SEQ_SIZE_48\r
-# define BOOST_PP_SEQ_SIZE_48(_) BOOST_PP_SEQ_SIZE_49\r
-# define BOOST_PP_SEQ_SIZE_49(_) BOOST_PP_SEQ_SIZE_50\r
-# define BOOST_PP_SEQ_SIZE_50(_) BOOST_PP_SEQ_SIZE_51\r
-# define BOOST_PP_SEQ_SIZE_51(_) BOOST_PP_SEQ_SIZE_52\r
-# define BOOST_PP_SEQ_SIZE_52(_) BOOST_PP_SEQ_SIZE_53\r
-# define BOOST_PP_SEQ_SIZE_53(_) BOOST_PP_SEQ_SIZE_54\r
-# define BOOST_PP_SEQ_SIZE_54(_) BOOST_PP_SEQ_SIZE_55\r
-# define BOOST_PP_SEQ_SIZE_55(_) BOOST_PP_SEQ_SIZE_56\r
-# define BOOST_PP_SEQ_SIZE_56(_) BOOST_PP_SEQ_SIZE_57\r
-# define BOOST_PP_SEQ_SIZE_57(_) BOOST_PP_SEQ_SIZE_58\r
-# define BOOST_PP_SEQ_SIZE_58(_) BOOST_PP_SEQ_SIZE_59\r
-# define BOOST_PP_SEQ_SIZE_59(_) BOOST_PP_SEQ_SIZE_60\r
-# define BOOST_PP_SEQ_SIZE_60(_) BOOST_PP_SEQ_SIZE_61\r
-# define BOOST_PP_SEQ_SIZE_61(_) BOOST_PP_SEQ_SIZE_62\r
-# define BOOST_PP_SEQ_SIZE_62(_) BOOST_PP_SEQ_SIZE_63\r
-# define BOOST_PP_SEQ_SIZE_63(_) BOOST_PP_SEQ_SIZE_64\r
-# define BOOST_PP_SEQ_SIZE_64(_) BOOST_PP_SEQ_SIZE_65\r
-# define BOOST_PP_SEQ_SIZE_65(_) BOOST_PP_SEQ_SIZE_66\r
-# define BOOST_PP_SEQ_SIZE_66(_) BOOST_PP_SEQ_SIZE_67\r
-# define BOOST_PP_SEQ_SIZE_67(_) BOOST_PP_SEQ_SIZE_68\r
-# define BOOST_PP_SEQ_SIZE_68(_) BOOST_PP_SEQ_SIZE_69\r
-# define BOOST_PP_SEQ_SIZE_69(_) BOOST_PP_SEQ_SIZE_70\r
-# define BOOST_PP_SEQ_SIZE_70(_) BOOST_PP_SEQ_SIZE_71\r
-# define BOOST_PP_SEQ_SIZE_71(_) BOOST_PP_SEQ_SIZE_72\r
-# define BOOST_PP_SEQ_SIZE_72(_) BOOST_PP_SEQ_SIZE_73\r
-# define BOOST_PP_SEQ_SIZE_73(_) BOOST_PP_SEQ_SIZE_74\r
-# define BOOST_PP_SEQ_SIZE_74(_) BOOST_PP_SEQ_SIZE_75\r
-# define BOOST_PP_SEQ_SIZE_75(_) BOOST_PP_SEQ_SIZE_76\r
-# define BOOST_PP_SEQ_SIZE_76(_) BOOST_PP_SEQ_SIZE_77\r
-# define BOOST_PP_SEQ_SIZE_77(_) BOOST_PP_SEQ_SIZE_78\r
-# define BOOST_PP_SEQ_SIZE_78(_) BOOST_PP_SEQ_SIZE_79\r
-# define BOOST_PP_SEQ_SIZE_79(_) BOOST_PP_SEQ_SIZE_80\r
-# define BOOST_PP_SEQ_SIZE_80(_) BOOST_PP_SEQ_SIZE_81\r
-# define BOOST_PP_SEQ_SIZE_81(_) BOOST_PP_SEQ_SIZE_82\r
-# define BOOST_PP_SEQ_SIZE_82(_) BOOST_PP_SEQ_SIZE_83\r
-# define BOOST_PP_SEQ_SIZE_83(_) BOOST_PP_SEQ_SIZE_84\r
-# define BOOST_PP_SEQ_SIZE_84(_) BOOST_PP_SEQ_SIZE_85\r
-# define BOOST_PP_SEQ_SIZE_85(_) BOOST_PP_SEQ_SIZE_86\r
-# define BOOST_PP_SEQ_SIZE_86(_) BOOST_PP_SEQ_SIZE_87\r
-# define BOOST_PP_SEQ_SIZE_87(_) BOOST_PP_SEQ_SIZE_88\r
-# define BOOST_PP_SEQ_SIZE_88(_) BOOST_PP_SEQ_SIZE_89\r
-# define BOOST_PP_SEQ_SIZE_89(_) BOOST_PP_SEQ_SIZE_90\r
-# define BOOST_PP_SEQ_SIZE_90(_) BOOST_PP_SEQ_SIZE_91\r
-# define BOOST_PP_SEQ_SIZE_91(_) BOOST_PP_SEQ_SIZE_92\r
-# define BOOST_PP_SEQ_SIZE_92(_) BOOST_PP_SEQ_SIZE_93\r
-# define BOOST_PP_SEQ_SIZE_93(_) BOOST_PP_SEQ_SIZE_94\r
-# define BOOST_PP_SEQ_SIZE_94(_) BOOST_PP_SEQ_SIZE_95\r
-# define BOOST_PP_SEQ_SIZE_95(_) BOOST_PP_SEQ_SIZE_96\r
-# define BOOST_PP_SEQ_SIZE_96(_) BOOST_PP_SEQ_SIZE_97\r
-# define BOOST_PP_SEQ_SIZE_97(_) BOOST_PP_SEQ_SIZE_98\r
-# define BOOST_PP_SEQ_SIZE_98(_) BOOST_PP_SEQ_SIZE_99\r
-# define BOOST_PP_SEQ_SIZE_99(_) BOOST_PP_SEQ_SIZE_100\r
-# define BOOST_PP_SEQ_SIZE_100(_) BOOST_PP_SEQ_SIZE_101\r
-# define BOOST_PP_SEQ_SIZE_101(_) BOOST_PP_SEQ_SIZE_102\r
-# define BOOST_PP_SEQ_SIZE_102(_) BOOST_PP_SEQ_SIZE_103\r
-# define BOOST_PP_SEQ_SIZE_103(_) BOOST_PP_SEQ_SIZE_104\r
-# define BOOST_PP_SEQ_SIZE_104(_) BOOST_PP_SEQ_SIZE_105\r
-# define BOOST_PP_SEQ_SIZE_105(_) BOOST_PP_SEQ_SIZE_106\r
-# define BOOST_PP_SEQ_SIZE_106(_) BOOST_PP_SEQ_SIZE_107\r
-# define BOOST_PP_SEQ_SIZE_107(_) BOOST_PP_SEQ_SIZE_108\r
-# define BOOST_PP_SEQ_SIZE_108(_) BOOST_PP_SEQ_SIZE_109\r
-# define BOOST_PP_SEQ_SIZE_109(_) BOOST_PP_SEQ_SIZE_110\r
-# define BOOST_PP_SEQ_SIZE_110(_) BOOST_PP_SEQ_SIZE_111\r
-# define BOOST_PP_SEQ_SIZE_111(_) BOOST_PP_SEQ_SIZE_112\r
-# define BOOST_PP_SEQ_SIZE_112(_) BOOST_PP_SEQ_SIZE_113\r
-# define BOOST_PP_SEQ_SIZE_113(_) BOOST_PP_SEQ_SIZE_114\r
-# define BOOST_PP_SEQ_SIZE_114(_) BOOST_PP_SEQ_SIZE_115\r
-# define BOOST_PP_SEQ_SIZE_115(_) BOOST_PP_SEQ_SIZE_116\r
-# define BOOST_PP_SEQ_SIZE_116(_) BOOST_PP_SEQ_SIZE_117\r
-# define BOOST_PP_SEQ_SIZE_117(_) BOOST_PP_SEQ_SIZE_118\r
-# define BOOST_PP_SEQ_SIZE_118(_) BOOST_PP_SEQ_SIZE_119\r
-# define BOOST_PP_SEQ_SIZE_119(_) BOOST_PP_SEQ_SIZE_120\r
-# define BOOST_PP_SEQ_SIZE_120(_) BOOST_PP_SEQ_SIZE_121\r
-# define BOOST_PP_SEQ_SIZE_121(_) BOOST_PP_SEQ_SIZE_122\r
-# define BOOST_PP_SEQ_SIZE_122(_) BOOST_PP_SEQ_SIZE_123\r
-# define BOOST_PP_SEQ_SIZE_123(_) BOOST_PP_SEQ_SIZE_124\r
-# define BOOST_PP_SEQ_SIZE_124(_) BOOST_PP_SEQ_SIZE_125\r
-# define BOOST_PP_SEQ_SIZE_125(_) BOOST_PP_SEQ_SIZE_126\r
-# define BOOST_PP_SEQ_SIZE_126(_) BOOST_PP_SEQ_SIZE_127\r
-# define BOOST_PP_SEQ_SIZE_127(_) BOOST_PP_SEQ_SIZE_128\r
-# define BOOST_PP_SEQ_SIZE_128(_) BOOST_PP_SEQ_SIZE_129\r
-# define BOOST_PP_SEQ_SIZE_129(_) BOOST_PP_SEQ_SIZE_130\r
-# define BOOST_PP_SEQ_SIZE_130(_) BOOST_PP_SEQ_SIZE_131\r
-# define BOOST_PP_SEQ_SIZE_131(_) BOOST_PP_SEQ_SIZE_132\r
-# define BOOST_PP_SEQ_SIZE_132(_) BOOST_PP_SEQ_SIZE_133\r
-# define BOOST_PP_SEQ_SIZE_133(_) BOOST_PP_SEQ_SIZE_134\r
-# define BOOST_PP_SEQ_SIZE_134(_) BOOST_PP_SEQ_SIZE_135\r
-# define BOOST_PP_SEQ_SIZE_135(_) BOOST_PP_SEQ_SIZE_136\r
-# define BOOST_PP_SEQ_SIZE_136(_) BOOST_PP_SEQ_SIZE_137\r
-# define BOOST_PP_SEQ_SIZE_137(_) BOOST_PP_SEQ_SIZE_138\r
-# define BOOST_PP_SEQ_SIZE_138(_) BOOST_PP_SEQ_SIZE_139\r
-# define BOOST_PP_SEQ_SIZE_139(_) BOOST_PP_SEQ_SIZE_140\r
-# define BOOST_PP_SEQ_SIZE_140(_) BOOST_PP_SEQ_SIZE_141\r
-# define BOOST_PP_SEQ_SIZE_141(_) BOOST_PP_SEQ_SIZE_142\r
-# define BOOST_PP_SEQ_SIZE_142(_) BOOST_PP_SEQ_SIZE_143\r
-# define BOOST_PP_SEQ_SIZE_143(_) BOOST_PP_SEQ_SIZE_144\r
-# define BOOST_PP_SEQ_SIZE_144(_) BOOST_PP_SEQ_SIZE_145\r
-# define BOOST_PP_SEQ_SIZE_145(_) BOOST_PP_SEQ_SIZE_146\r
-# define BOOST_PP_SEQ_SIZE_146(_) BOOST_PP_SEQ_SIZE_147\r
-# define BOOST_PP_SEQ_SIZE_147(_) BOOST_PP_SEQ_SIZE_148\r
-# define BOOST_PP_SEQ_SIZE_148(_) BOOST_PP_SEQ_SIZE_149\r
-# define BOOST_PP_SEQ_SIZE_149(_) BOOST_PP_SEQ_SIZE_150\r
-# define BOOST_PP_SEQ_SIZE_150(_) BOOST_PP_SEQ_SIZE_151\r
-# define BOOST_PP_SEQ_SIZE_151(_) BOOST_PP_SEQ_SIZE_152\r
-# define BOOST_PP_SEQ_SIZE_152(_) BOOST_PP_SEQ_SIZE_153\r
-# define BOOST_PP_SEQ_SIZE_153(_) BOOST_PP_SEQ_SIZE_154\r
-# define BOOST_PP_SEQ_SIZE_154(_) BOOST_PP_SEQ_SIZE_155\r
-# define BOOST_PP_SEQ_SIZE_155(_) BOOST_PP_SEQ_SIZE_156\r
-# define BOOST_PP_SEQ_SIZE_156(_) BOOST_PP_SEQ_SIZE_157\r
-# define BOOST_PP_SEQ_SIZE_157(_) BOOST_PP_SEQ_SIZE_158\r
-# define BOOST_PP_SEQ_SIZE_158(_) BOOST_PP_SEQ_SIZE_159\r
-# define BOOST_PP_SEQ_SIZE_159(_) BOOST_PP_SEQ_SIZE_160\r
-# define BOOST_PP_SEQ_SIZE_160(_) BOOST_PP_SEQ_SIZE_161\r
-# define BOOST_PP_SEQ_SIZE_161(_) BOOST_PP_SEQ_SIZE_162\r
-# define BOOST_PP_SEQ_SIZE_162(_) BOOST_PP_SEQ_SIZE_163\r
-# define BOOST_PP_SEQ_SIZE_163(_) BOOST_PP_SEQ_SIZE_164\r
-# define BOOST_PP_SEQ_SIZE_164(_) BOOST_PP_SEQ_SIZE_165\r
-# define BOOST_PP_SEQ_SIZE_165(_) BOOST_PP_SEQ_SIZE_166\r
-# define BOOST_PP_SEQ_SIZE_166(_) BOOST_PP_SEQ_SIZE_167\r
-# define BOOST_PP_SEQ_SIZE_167(_) BOOST_PP_SEQ_SIZE_168\r
-# define BOOST_PP_SEQ_SIZE_168(_) BOOST_PP_SEQ_SIZE_169\r
-# define BOOST_PP_SEQ_SIZE_169(_) BOOST_PP_SEQ_SIZE_170\r
-# define BOOST_PP_SEQ_SIZE_170(_) BOOST_PP_SEQ_SIZE_171\r
-# define BOOST_PP_SEQ_SIZE_171(_) BOOST_PP_SEQ_SIZE_172\r
-# define BOOST_PP_SEQ_SIZE_172(_) BOOST_PP_SEQ_SIZE_173\r
-# define BOOST_PP_SEQ_SIZE_173(_) BOOST_PP_SEQ_SIZE_174\r
-# define BOOST_PP_SEQ_SIZE_174(_) BOOST_PP_SEQ_SIZE_175\r
-# define BOOST_PP_SEQ_SIZE_175(_) BOOST_PP_SEQ_SIZE_176\r
-# define BOOST_PP_SEQ_SIZE_176(_) BOOST_PP_SEQ_SIZE_177\r
-# define BOOST_PP_SEQ_SIZE_177(_) BOOST_PP_SEQ_SIZE_178\r
-# define BOOST_PP_SEQ_SIZE_178(_) BOOST_PP_SEQ_SIZE_179\r
-# define BOOST_PP_SEQ_SIZE_179(_) BOOST_PP_SEQ_SIZE_180\r
-# define BOOST_PP_SEQ_SIZE_180(_) BOOST_PP_SEQ_SIZE_181\r
-# define BOOST_PP_SEQ_SIZE_181(_) BOOST_PP_SEQ_SIZE_182\r
-# define BOOST_PP_SEQ_SIZE_182(_) BOOST_PP_SEQ_SIZE_183\r
-# define BOOST_PP_SEQ_SIZE_183(_) BOOST_PP_SEQ_SIZE_184\r
-# define BOOST_PP_SEQ_SIZE_184(_) BOOST_PP_SEQ_SIZE_185\r
-# define BOOST_PP_SEQ_SIZE_185(_) BOOST_PP_SEQ_SIZE_186\r
-# define BOOST_PP_SEQ_SIZE_186(_) BOOST_PP_SEQ_SIZE_187\r
-# define BOOST_PP_SEQ_SIZE_187(_) BOOST_PP_SEQ_SIZE_188\r
-# define BOOST_PP_SEQ_SIZE_188(_) BOOST_PP_SEQ_SIZE_189\r
-# define BOOST_PP_SEQ_SIZE_189(_) BOOST_PP_SEQ_SIZE_190\r
-# define BOOST_PP_SEQ_SIZE_190(_) BOOST_PP_SEQ_SIZE_191\r
-# define BOOST_PP_SEQ_SIZE_191(_) BOOST_PP_SEQ_SIZE_192\r
-# define BOOST_PP_SEQ_SIZE_192(_) BOOST_PP_SEQ_SIZE_193\r
-# define BOOST_PP_SEQ_SIZE_193(_) BOOST_PP_SEQ_SIZE_194\r
-# define BOOST_PP_SEQ_SIZE_194(_) BOOST_PP_SEQ_SIZE_195\r
-# define BOOST_PP_SEQ_SIZE_195(_) BOOST_PP_SEQ_SIZE_196\r
-# define BOOST_PP_SEQ_SIZE_196(_) BOOST_PP_SEQ_SIZE_197\r
-# define BOOST_PP_SEQ_SIZE_197(_) BOOST_PP_SEQ_SIZE_198\r
-# define BOOST_PP_SEQ_SIZE_198(_) BOOST_PP_SEQ_SIZE_199\r
-# define BOOST_PP_SEQ_SIZE_199(_) BOOST_PP_SEQ_SIZE_200\r
-# define BOOST_PP_SEQ_SIZE_200(_) BOOST_PP_SEQ_SIZE_201\r
-# define BOOST_PP_SEQ_SIZE_201(_) BOOST_PP_SEQ_SIZE_202\r
-# define BOOST_PP_SEQ_SIZE_202(_) BOOST_PP_SEQ_SIZE_203\r
-# define BOOST_PP_SEQ_SIZE_203(_) BOOST_PP_SEQ_SIZE_204\r
-# define BOOST_PP_SEQ_SIZE_204(_) BOOST_PP_SEQ_SIZE_205\r
-# define BOOST_PP_SEQ_SIZE_205(_) BOOST_PP_SEQ_SIZE_206\r
-# define BOOST_PP_SEQ_SIZE_206(_) BOOST_PP_SEQ_SIZE_207\r
-# define BOOST_PP_SEQ_SIZE_207(_) BOOST_PP_SEQ_SIZE_208\r
-# define BOOST_PP_SEQ_SIZE_208(_) BOOST_PP_SEQ_SIZE_209\r
-# define BOOST_PP_SEQ_SIZE_209(_) BOOST_PP_SEQ_SIZE_210\r
-# define BOOST_PP_SEQ_SIZE_210(_) BOOST_PP_SEQ_SIZE_211\r
-# define BOOST_PP_SEQ_SIZE_211(_) BOOST_PP_SEQ_SIZE_212\r
-# define BOOST_PP_SEQ_SIZE_212(_) BOOST_PP_SEQ_SIZE_213\r
-# define BOOST_PP_SEQ_SIZE_213(_) BOOST_PP_SEQ_SIZE_214\r
-# define BOOST_PP_SEQ_SIZE_214(_) BOOST_PP_SEQ_SIZE_215\r
-# define BOOST_PP_SEQ_SIZE_215(_) BOOST_PP_SEQ_SIZE_216\r
-# define BOOST_PP_SEQ_SIZE_216(_) BOOST_PP_SEQ_SIZE_217\r
-# define BOOST_PP_SEQ_SIZE_217(_) BOOST_PP_SEQ_SIZE_218\r
-# define BOOST_PP_SEQ_SIZE_218(_) BOOST_PP_SEQ_SIZE_219\r
-# define BOOST_PP_SEQ_SIZE_219(_) BOOST_PP_SEQ_SIZE_220\r
-# define BOOST_PP_SEQ_SIZE_220(_) BOOST_PP_SEQ_SIZE_221\r
-# define BOOST_PP_SEQ_SIZE_221(_) BOOST_PP_SEQ_SIZE_222\r
-# define BOOST_PP_SEQ_SIZE_222(_) BOOST_PP_SEQ_SIZE_223\r
-# define BOOST_PP_SEQ_SIZE_223(_) BOOST_PP_SEQ_SIZE_224\r
-# define BOOST_PP_SEQ_SIZE_224(_) BOOST_PP_SEQ_SIZE_225\r
-# define BOOST_PP_SEQ_SIZE_225(_) BOOST_PP_SEQ_SIZE_226\r
-# define BOOST_PP_SEQ_SIZE_226(_) BOOST_PP_SEQ_SIZE_227\r
-# define BOOST_PP_SEQ_SIZE_227(_) BOOST_PP_SEQ_SIZE_228\r
-# define BOOST_PP_SEQ_SIZE_228(_) BOOST_PP_SEQ_SIZE_229\r
-# define BOOST_PP_SEQ_SIZE_229(_) BOOST_PP_SEQ_SIZE_230\r
-# define BOOST_PP_SEQ_SIZE_230(_) BOOST_PP_SEQ_SIZE_231\r
-# define BOOST_PP_SEQ_SIZE_231(_) BOOST_PP_SEQ_SIZE_232\r
-# define BOOST_PP_SEQ_SIZE_232(_) BOOST_PP_SEQ_SIZE_233\r
-# define BOOST_PP_SEQ_SIZE_233(_) BOOST_PP_SEQ_SIZE_234\r
-# define BOOST_PP_SEQ_SIZE_234(_) BOOST_PP_SEQ_SIZE_235\r
-# define BOOST_PP_SEQ_SIZE_235(_) BOOST_PP_SEQ_SIZE_236\r
-# define BOOST_PP_SEQ_SIZE_236(_) BOOST_PP_SEQ_SIZE_237\r
-# define BOOST_PP_SEQ_SIZE_237(_) BOOST_PP_SEQ_SIZE_238\r
-# define BOOST_PP_SEQ_SIZE_238(_) BOOST_PP_SEQ_SIZE_239\r
-# define BOOST_PP_SEQ_SIZE_239(_) BOOST_PP_SEQ_SIZE_240\r
-# define BOOST_PP_SEQ_SIZE_240(_) BOOST_PP_SEQ_SIZE_241\r
-# define BOOST_PP_SEQ_SIZE_241(_) BOOST_PP_SEQ_SIZE_242\r
-# define BOOST_PP_SEQ_SIZE_242(_) BOOST_PP_SEQ_SIZE_243\r
-# define BOOST_PP_SEQ_SIZE_243(_) BOOST_PP_SEQ_SIZE_244\r
-# define BOOST_PP_SEQ_SIZE_244(_) BOOST_PP_SEQ_SIZE_245\r
-# define BOOST_PP_SEQ_SIZE_245(_) BOOST_PP_SEQ_SIZE_246\r
-# define BOOST_PP_SEQ_SIZE_246(_) BOOST_PP_SEQ_SIZE_247\r
-# define BOOST_PP_SEQ_SIZE_247(_) BOOST_PP_SEQ_SIZE_248\r
-# define BOOST_PP_SEQ_SIZE_248(_) BOOST_PP_SEQ_SIZE_249\r
-# define BOOST_PP_SEQ_SIZE_249(_) BOOST_PP_SEQ_SIZE_250\r
-# define BOOST_PP_SEQ_SIZE_250(_) BOOST_PP_SEQ_SIZE_251\r
-# define BOOST_PP_SEQ_SIZE_251(_) BOOST_PP_SEQ_SIZE_252\r
-# define BOOST_PP_SEQ_SIZE_252(_) BOOST_PP_SEQ_SIZE_253\r
-# define BOOST_PP_SEQ_SIZE_253(_) BOOST_PP_SEQ_SIZE_254\r
-# define BOOST_PP_SEQ_SIZE_254(_) BOOST_PP_SEQ_SIZE_255\r
-# define BOOST_PP_SEQ_SIZE_255(_) BOOST_PP_SEQ_SIZE_256\r
-# define BOOST_PP_SEQ_SIZE_256(_) BOOST_PP_SEQ_SIZE_257\r
-#\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_0 0\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_1 1\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_2 2\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_3 3\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_4 4\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_5 5\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_6 6\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_7 7\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_8 8\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_9 9\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_10 10\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_11 11\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_12 12\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_13 13\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_14 14\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_15 15\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_16 16\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_17 17\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_18 18\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_19 19\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_20 20\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_21 21\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_22 22\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_23 23\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_24 24\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_25 25\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_26 26\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_27 27\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_28 28\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_29 29\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_30 30\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_31 31\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_32 32\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_33 33\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_34 34\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_35 35\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_36 36\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_37 37\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_38 38\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_39 39\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_40 40\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_41 41\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_42 42\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_43 43\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_44 44\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_45 45\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_46 46\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_47 47\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_48 48\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_49 49\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_50 50\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_51 51\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_52 52\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_53 53\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_54 54\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_55 55\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_56 56\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_57 57\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_58 58\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_59 59\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_60 60\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_61 61\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_62 62\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_63 63\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_64 64\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_65 65\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_66 66\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_67 67\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_68 68\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_69 69\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_70 70\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_71 71\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_72 72\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_73 73\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_74 74\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_75 75\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_76 76\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_77 77\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_78 78\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_79 79\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_80 80\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_81 81\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_82 82\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_83 83\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_84 84\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_85 85\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_86 86\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_87 87\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_88 88\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_89 89\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_90 90\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_91 91\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_92 92\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_93 93\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_94 94\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_95 95\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_96 96\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_97 97\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_98 98\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_99 99\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_100 100\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_101 101\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_102 102\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_103 103\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_104 104\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_105 105\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_106 106\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_107 107\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_108 108\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_109 109\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_110 110\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_111 111\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_112 112\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_113 113\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_114 114\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_115 115\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_116 116\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_117 117\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_118 118\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_119 119\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_120 120\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_121 121\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_122 122\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_123 123\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_124 124\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_125 125\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_126 126\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_127 127\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_128 128\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_129 129\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_130 130\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_131 131\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_132 132\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_133 133\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_134 134\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_135 135\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_136 136\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_137 137\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_138 138\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_139 139\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_140 140\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_141 141\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_142 142\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_143 143\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_144 144\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_145 145\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_146 146\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_147 147\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_148 148\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_149 149\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_150 150\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_151 151\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_152 152\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_153 153\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_154 154\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_155 155\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_156 156\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_157 157\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_158 158\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_159 159\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_160 160\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_161 161\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_162 162\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_163 163\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_164 164\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_165 165\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_166 166\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_167 167\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_168 168\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_169 169\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_170 170\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_171 171\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_172 172\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_173 173\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_174 174\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_175 175\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_176 176\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_177 177\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_178 178\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_179 179\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_180 180\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_181 181\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_182 182\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_183 183\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_184 184\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_185 185\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_186 186\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_187 187\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_188 188\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_189 189\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_190 190\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_191 191\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_192 192\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_193 193\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_194 194\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_195 195\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_196 196\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_197 197\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_198 198\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_199 199\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_200 200\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_201 201\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_202 202\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_203 203\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_204 204\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_205 205\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_206 206\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_207 207\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_208 208\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_209 209\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_210 210\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_211 211\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_212 212\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_213 213\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_214 214\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_215 215\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_216 216\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_217 217\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_218 218\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_219 219\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_220 220\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_221 221\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_222 222\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_223 223\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_224 224\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_225 225\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_226 226\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_227 227\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_228 228\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_229 229\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_230 230\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_231 231\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_232 232\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_233 233\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_234 234\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_235 235\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_236 236\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_237 237\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_238 238\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_239 239\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_240 240\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_241 241\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_242 242\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_243 243\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_244 244\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_245 245\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_246 246\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_247 247\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_248 248\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_249 249\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_250 250\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_251 251\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_252 252\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_253 253\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_254 254\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_255 255\r
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_256 256\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_SIZE_HPP
+# define BOOST_PREPROCESSOR_SEQ_SIZE_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/tuple/eat.hpp>
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_SEQ_SIZE_I((seq))
+#    define BOOST_PP_SEQ_SIZE_I(par) BOOST_PP_SEQ_SIZE_II ## par
+#    define BOOST_PP_SEQ_SIZE_II(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 ## seq)
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() || BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_SEQ_SIZE_I(seq)
+#    define BOOST_PP_SEQ_SIZE_I(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 seq)
+# elif defined(__IBMC__) || defined(__IBMCPP__)
+#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_0, seq))
+# else
+#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 seq)
+# endif
+#
+# define BOOST_PP_SEQ_SIZE_0(_) BOOST_PP_SEQ_SIZE_1
+# define BOOST_PP_SEQ_SIZE_1(_) BOOST_PP_SEQ_SIZE_2
+# define BOOST_PP_SEQ_SIZE_2(_) BOOST_PP_SEQ_SIZE_3
+# define BOOST_PP_SEQ_SIZE_3(_) BOOST_PP_SEQ_SIZE_4
+# define BOOST_PP_SEQ_SIZE_4(_) BOOST_PP_SEQ_SIZE_5
+# define BOOST_PP_SEQ_SIZE_5(_) BOOST_PP_SEQ_SIZE_6
+# define BOOST_PP_SEQ_SIZE_6(_) BOOST_PP_SEQ_SIZE_7
+# define BOOST_PP_SEQ_SIZE_7(_) BOOST_PP_SEQ_SIZE_8
+# define BOOST_PP_SEQ_SIZE_8(_) BOOST_PP_SEQ_SIZE_9
+# define BOOST_PP_SEQ_SIZE_9(_) BOOST_PP_SEQ_SIZE_10
+# define BOOST_PP_SEQ_SIZE_10(_) BOOST_PP_SEQ_SIZE_11
+# define BOOST_PP_SEQ_SIZE_11(_) BOOST_PP_SEQ_SIZE_12
+# define BOOST_PP_SEQ_SIZE_12(_) BOOST_PP_SEQ_SIZE_13
+# define BOOST_PP_SEQ_SIZE_13(_) BOOST_PP_SEQ_SIZE_14
+# define BOOST_PP_SEQ_SIZE_14(_) BOOST_PP_SEQ_SIZE_15
+# define BOOST_PP_SEQ_SIZE_15(_) BOOST_PP_SEQ_SIZE_16
+# define BOOST_PP_SEQ_SIZE_16(_) BOOST_PP_SEQ_SIZE_17
+# define BOOST_PP_SEQ_SIZE_17(_) BOOST_PP_SEQ_SIZE_18
+# define BOOST_PP_SEQ_SIZE_18(_) BOOST_PP_SEQ_SIZE_19
+# define BOOST_PP_SEQ_SIZE_19(_) BOOST_PP_SEQ_SIZE_20
+# define BOOST_PP_SEQ_SIZE_20(_) BOOST_PP_SEQ_SIZE_21
+# define BOOST_PP_SEQ_SIZE_21(_) BOOST_PP_SEQ_SIZE_22
+# define BOOST_PP_SEQ_SIZE_22(_) BOOST_PP_SEQ_SIZE_23
+# define BOOST_PP_SEQ_SIZE_23(_) BOOST_PP_SEQ_SIZE_24
+# define BOOST_PP_SEQ_SIZE_24(_) BOOST_PP_SEQ_SIZE_25
+# define BOOST_PP_SEQ_SIZE_25(_) BOOST_PP_SEQ_SIZE_26
+# define BOOST_PP_SEQ_SIZE_26(_) BOOST_PP_SEQ_SIZE_27
+# define BOOST_PP_SEQ_SIZE_27(_) BOOST_PP_SEQ_SIZE_28
+# define BOOST_PP_SEQ_SIZE_28(_) BOOST_PP_SEQ_SIZE_29
+# define BOOST_PP_SEQ_SIZE_29(_) BOOST_PP_SEQ_SIZE_30
+# define BOOST_PP_SEQ_SIZE_30(_) BOOST_PP_SEQ_SIZE_31
+# define BOOST_PP_SEQ_SIZE_31(_) BOOST_PP_SEQ_SIZE_32
+# define BOOST_PP_SEQ_SIZE_32(_) BOOST_PP_SEQ_SIZE_33
+# define BOOST_PP_SEQ_SIZE_33(_) BOOST_PP_SEQ_SIZE_34
+# define BOOST_PP_SEQ_SIZE_34(_) BOOST_PP_SEQ_SIZE_35
+# define BOOST_PP_SEQ_SIZE_35(_) BOOST_PP_SEQ_SIZE_36
+# define BOOST_PP_SEQ_SIZE_36(_) BOOST_PP_SEQ_SIZE_37
+# define BOOST_PP_SEQ_SIZE_37(_) BOOST_PP_SEQ_SIZE_38
+# define BOOST_PP_SEQ_SIZE_38(_) BOOST_PP_SEQ_SIZE_39
+# define BOOST_PP_SEQ_SIZE_39(_) BOOST_PP_SEQ_SIZE_40
+# define BOOST_PP_SEQ_SIZE_40(_) BOOST_PP_SEQ_SIZE_41
+# define BOOST_PP_SEQ_SIZE_41(_) BOOST_PP_SEQ_SIZE_42
+# define BOOST_PP_SEQ_SIZE_42(_) BOOST_PP_SEQ_SIZE_43
+# define BOOST_PP_SEQ_SIZE_43(_) BOOST_PP_SEQ_SIZE_44
+# define BOOST_PP_SEQ_SIZE_44(_) BOOST_PP_SEQ_SIZE_45
+# define BOOST_PP_SEQ_SIZE_45(_) BOOST_PP_SEQ_SIZE_46
+# define BOOST_PP_SEQ_SIZE_46(_) BOOST_PP_SEQ_SIZE_47
+# define BOOST_PP_SEQ_SIZE_47(_) BOOST_PP_SEQ_SIZE_48
+# define BOOST_PP_SEQ_SIZE_48(_) BOOST_PP_SEQ_SIZE_49
+# define BOOST_PP_SEQ_SIZE_49(_) BOOST_PP_SEQ_SIZE_50
+# define BOOST_PP_SEQ_SIZE_50(_) BOOST_PP_SEQ_SIZE_51
+# define BOOST_PP_SEQ_SIZE_51(_) BOOST_PP_SEQ_SIZE_52
+# define BOOST_PP_SEQ_SIZE_52(_) BOOST_PP_SEQ_SIZE_53
+# define BOOST_PP_SEQ_SIZE_53(_) BOOST_PP_SEQ_SIZE_54
+# define BOOST_PP_SEQ_SIZE_54(_) BOOST_PP_SEQ_SIZE_55
+# define BOOST_PP_SEQ_SIZE_55(_) BOOST_PP_SEQ_SIZE_56
+# define BOOST_PP_SEQ_SIZE_56(_) BOOST_PP_SEQ_SIZE_57
+# define BOOST_PP_SEQ_SIZE_57(_) BOOST_PP_SEQ_SIZE_58
+# define BOOST_PP_SEQ_SIZE_58(_) BOOST_PP_SEQ_SIZE_59
+# define BOOST_PP_SEQ_SIZE_59(_) BOOST_PP_SEQ_SIZE_60
+# define BOOST_PP_SEQ_SIZE_60(_) BOOST_PP_SEQ_SIZE_61
+# define BOOST_PP_SEQ_SIZE_61(_) BOOST_PP_SEQ_SIZE_62
+# define BOOST_PP_SEQ_SIZE_62(_) BOOST_PP_SEQ_SIZE_63
+# define BOOST_PP_SEQ_SIZE_63(_) BOOST_PP_SEQ_SIZE_64
+# define BOOST_PP_SEQ_SIZE_64(_) BOOST_PP_SEQ_SIZE_65
+# define BOOST_PP_SEQ_SIZE_65(_) BOOST_PP_SEQ_SIZE_66
+# define BOOST_PP_SEQ_SIZE_66(_) BOOST_PP_SEQ_SIZE_67
+# define BOOST_PP_SEQ_SIZE_67(_) BOOST_PP_SEQ_SIZE_68
+# define BOOST_PP_SEQ_SIZE_68(_) BOOST_PP_SEQ_SIZE_69
+# define BOOST_PP_SEQ_SIZE_69(_) BOOST_PP_SEQ_SIZE_70
+# define BOOST_PP_SEQ_SIZE_70(_) BOOST_PP_SEQ_SIZE_71
+# define BOOST_PP_SEQ_SIZE_71(_) BOOST_PP_SEQ_SIZE_72
+# define BOOST_PP_SEQ_SIZE_72(_) BOOST_PP_SEQ_SIZE_73
+# define BOOST_PP_SEQ_SIZE_73(_) BOOST_PP_SEQ_SIZE_74
+# define BOOST_PP_SEQ_SIZE_74(_) BOOST_PP_SEQ_SIZE_75
+# define BOOST_PP_SEQ_SIZE_75(_) BOOST_PP_SEQ_SIZE_76
+# define BOOST_PP_SEQ_SIZE_76(_) BOOST_PP_SEQ_SIZE_77
+# define BOOST_PP_SEQ_SIZE_77(_) BOOST_PP_SEQ_SIZE_78
+# define BOOST_PP_SEQ_SIZE_78(_) BOOST_PP_SEQ_SIZE_79
+# define BOOST_PP_SEQ_SIZE_79(_) BOOST_PP_SEQ_SIZE_80
+# define BOOST_PP_SEQ_SIZE_80(_) BOOST_PP_SEQ_SIZE_81
+# define BOOST_PP_SEQ_SIZE_81(_) BOOST_PP_SEQ_SIZE_82
+# define BOOST_PP_SEQ_SIZE_82(_) BOOST_PP_SEQ_SIZE_83
+# define BOOST_PP_SEQ_SIZE_83(_) BOOST_PP_SEQ_SIZE_84
+# define BOOST_PP_SEQ_SIZE_84(_) BOOST_PP_SEQ_SIZE_85
+# define BOOST_PP_SEQ_SIZE_85(_) BOOST_PP_SEQ_SIZE_86
+# define BOOST_PP_SEQ_SIZE_86(_) BOOST_PP_SEQ_SIZE_87
+# define BOOST_PP_SEQ_SIZE_87(_) BOOST_PP_SEQ_SIZE_88
+# define BOOST_PP_SEQ_SIZE_88(_) BOOST_PP_SEQ_SIZE_89
+# define BOOST_PP_SEQ_SIZE_89(_) BOOST_PP_SEQ_SIZE_90
+# define BOOST_PP_SEQ_SIZE_90(_) BOOST_PP_SEQ_SIZE_91
+# define BOOST_PP_SEQ_SIZE_91(_) BOOST_PP_SEQ_SIZE_92
+# define BOOST_PP_SEQ_SIZE_92(_) BOOST_PP_SEQ_SIZE_93
+# define BOOST_PP_SEQ_SIZE_93(_) BOOST_PP_SEQ_SIZE_94
+# define BOOST_PP_SEQ_SIZE_94(_) BOOST_PP_SEQ_SIZE_95
+# define BOOST_PP_SEQ_SIZE_95(_) BOOST_PP_SEQ_SIZE_96
+# define BOOST_PP_SEQ_SIZE_96(_) BOOST_PP_SEQ_SIZE_97
+# define BOOST_PP_SEQ_SIZE_97(_) BOOST_PP_SEQ_SIZE_98
+# define BOOST_PP_SEQ_SIZE_98(_) BOOST_PP_SEQ_SIZE_99
+# define BOOST_PP_SEQ_SIZE_99(_) BOOST_PP_SEQ_SIZE_100
+# define BOOST_PP_SEQ_SIZE_100(_) BOOST_PP_SEQ_SIZE_101
+# define BOOST_PP_SEQ_SIZE_101(_) BOOST_PP_SEQ_SIZE_102
+# define BOOST_PP_SEQ_SIZE_102(_) BOOST_PP_SEQ_SIZE_103
+# define BOOST_PP_SEQ_SIZE_103(_) BOOST_PP_SEQ_SIZE_104
+# define BOOST_PP_SEQ_SIZE_104(_) BOOST_PP_SEQ_SIZE_105
+# define BOOST_PP_SEQ_SIZE_105(_) BOOST_PP_SEQ_SIZE_106
+# define BOOST_PP_SEQ_SIZE_106(_) BOOST_PP_SEQ_SIZE_107
+# define BOOST_PP_SEQ_SIZE_107(_) BOOST_PP_SEQ_SIZE_108
+# define BOOST_PP_SEQ_SIZE_108(_) BOOST_PP_SEQ_SIZE_109
+# define BOOST_PP_SEQ_SIZE_109(_) BOOST_PP_SEQ_SIZE_110
+# define BOOST_PP_SEQ_SIZE_110(_) BOOST_PP_SEQ_SIZE_111
+# define BOOST_PP_SEQ_SIZE_111(_) BOOST_PP_SEQ_SIZE_112
+# define BOOST_PP_SEQ_SIZE_112(_) BOOST_PP_SEQ_SIZE_113
+# define BOOST_PP_SEQ_SIZE_113(_) BOOST_PP_SEQ_SIZE_114
+# define BOOST_PP_SEQ_SIZE_114(_) BOOST_PP_SEQ_SIZE_115
+# define BOOST_PP_SEQ_SIZE_115(_) BOOST_PP_SEQ_SIZE_116
+# define BOOST_PP_SEQ_SIZE_116(_) BOOST_PP_SEQ_SIZE_117
+# define BOOST_PP_SEQ_SIZE_117(_) BOOST_PP_SEQ_SIZE_118
+# define BOOST_PP_SEQ_SIZE_118(_) BOOST_PP_SEQ_SIZE_119
+# define BOOST_PP_SEQ_SIZE_119(_) BOOST_PP_SEQ_SIZE_120
+# define BOOST_PP_SEQ_SIZE_120(_) BOOST_PP_SEQ_SIZE_121
+# define BOOST_PP_SEQ_SIZE_121(_) BOOST_PP_SEQ_SIZE_122
+# define BOOST_PP_SEQ_SIZE_122(_) BOOST_PP_SEQ_SIZE_123
+# define BOOST_PP_SEQ_SIZE_123(_) BOOST_PP_SEQ_SIZE_124
+# define BOOST_PP_SEQ_SIZE_124(_) BOOST_PP_SEQ_SIZE_125
+# define BOOST_PP_SEQ_SIZE_125(_) BOOST_PP_SEQ_SIZE_126
+# define BOOST_PP_SEQ_SIZE_126(_) BOOST_PP_SEQ_SIZE_127
+# define BOOST_PP_SEQ_SIZE_127(_) BOOST_PP_SEQ_SIZE_128
+# define BOOST_PP_SEQ_SIZE_128(_) BOOST_PP_SEQ_SIZE_129
+# define BOOST_PP_SEQ_SIZE_129(_) BOOST_PP_SEQ_SIZE_130
+# define BOOST_PP_SEQ_SIZE_130(_) BOOST_PP_SEQ_SIZE_131
+# define BOOST_PP_SEQ_SIZE_131(_) BOOST_PP_SEQ_SIZE_132
+# define BOOST_PP_SEQ_SIZE_132(_) BOOST_PP_SEQ_SIZE_133
+# define BOOST_PP_SEQ_SIZE_133(_) BOOST_PP_SEQ_SIZE_134
+# define BOOST_PP_SEQ_SIZE_134(_) BOOST_PP_SEQ_SIZE_135
+# define BOOST_PP_SEQ_SIZE_135(_) BOOST_PP_SEQ_SIZE_136
+# define BOOST_PP_SEQ_SIZE_136(_) BOOST_PP_SEQ_SIZE_137
+# define BOOST_PP_SEQ_SIZE_137(_) BOOST_PP_SEQ_SIZE_138
+# define BOOST_PP_SEQ_SIZE_138(_) BOOST_PP_SEQ_SIZE_139
+# define BOOST_PP_SEQ_SIZE_139(_) BOOST_PP_SEQ_SIZE_140
+# define BOOST_PP_SEQ_SIZE_140(_) BOOST_PP_SEQ_SIZE_141
+# define BOOST_PP_SEQ_SIZE_141(_) BOOST_PP_SEQ_SIZE_142
+# define BOOST_PP_SEQ_SIZE_142(_) BOOST_PP_SEQ_SIZE_143
+# define BOOST_PP_SEQ_SIZE_143(_) BOOST_PP_SEQ_SIZE_144
+# define BOOST_PP_SEQ_SIZE_144(_) BOOST_PP_SEQ_SIZE_145
+# define BOOST_PP_SEQ_SIZE_145(_) BOOST_PP_SEQ_SIZE_146
+# define BOOST_PP_SEQ_SIZE_146(_) BOOST_PP_SEQ_SIZE_147
+# define BOOST_PP_SEQ_SIZE_147(_) BOOST_PP_SEQ_SIZE_148
+# define BOOST_PP_SEQ_SIZE_148(_) BOOST_PP_SEQ_SIZE_149
+# define BOOST_PP_SEQ_SIZE_149(_) BOOST_PP_SEQ_SIZE_150
+# define BOOST_PP_SEQ_SIZE_150(_) BOOST_PP_SEQ_SIZE_151
+# define BOOST_PP_SEQ_SIZE_151(_) BOOST_PP_SEQ_SIZE_152
+# define BOOST_PP_SEQ_SIZE_152(_) BOOST_PP_SEQ_SIZE_153
+# define BOOST_PP_SEQ_SIZE_153(_) BOOST_PP_SEQ_SIZE_154
+# define BOOST_PP_SEQ_SIZE_154(_) BOOST_PP_SEQ_SIZE_155
+# define BOOST_PP_SEQ_SIZE_155(_) BOOST_PP_SEQ_SIZE_156
+# define BOOST_PP_SEQ_SIZE_156(_) BOOST_PP_SEQ_SIZE_157
+# define BOOST_PP_SEQ_SIZE_157(_) BOOST_PP_SEQ_SIZE_158
+# define BOOST_PP_SEQ_SIZE_158(_) BOOST_PP_SEQ_SIZE_159
+# define BOOST_PP_SEQ_SIZE_159(_) BOOST_PP_SEQ_SIZE_160
+# define BOOST_PP_SEQ_SIZE_160(_) BOOST_PP_SEQ_SIZE_161
+# define BOOST_PP_SEQ_SIZE_161(_) BOOST_PP_SEQ_SIZE_162
+# define BOOST_PP_SEQ_SIZE_162(_) BOOST_PP_SEQ_SIZE_163
+# define BOOST_PP_SEQ_SIZE_163(_) BOOST_PP_SEQ_SIZE_164
+# define BOOST_PP_SEQ_SIZE_164(_) BOOST_PP_SEQ_SIZE_165
+# define BOOST_PP_SEQ_SIZE_165(_) BOOST_PP_SEQ_SIZE_166
+# define BOOST_PP_SEQ_SIZE_166(_) BOOST_PP_SEQ_SIZE_167
+# define BOOST_PP_SEQ_SIZE_167(_) BOOST_PP_SEQ_SIZE_168
+# define BOOST_PP_SEQ_SIZE_168(_) BOOST_PP_SEQ_SIZE_169
+# define BOOST_PP_SEQ_SIZE_169(_) BOOST_PP_SEQ_SIZE_170
+# define BOOST_PP_SEQ_SIZE_170(_) BOOST_PP_SEQ_SIZE_171
+# define BOOST_PP_SEQ_SIZE_171(_) BOOST_PP_SEQ_SIZE_172
+# define BOOST_PP_SEQ_SIZE_172(_) BOOST_PP_SEQ_SIZE_173
+# define BOOST_PP_SEQ_SIZE_173(_) BOOST_PP_SEQ_SIZE_174
+# define BOOST_PP_SEQ_SIZE_174(_) BOOST_PP_SEQ_SIZE_175
+# define BOOST_PP_SEQ_SIZE_175(_) BOOST_PP_SEQ_SIZE_176
+# define BOOST_PP_SEQ_SIZE_176(_) BOOST_PP_SEQ_SIZE_177
+# define BOOST_PP_SEQ_SIZE_177(_) BOOST_PP_SEQ_SIZE_178
+# define BOOST_PP_SEQ_SIZE_178(_) BOOST_PP_SEQ_SIZE_179
+# define BOOST_PP_SEQ_SIZE_179(_) BOOST_PP_SEQ_SIZE_180
+# define BOOST_PP_SEQ_SIZE_180(_) BOOST_PP_SEQ_SIZE_181
+# define BOOST_PP_SEQ_SIZE_181(_) BOOST_PP_SEQ_SIZE_182
+# define BOOST_PP_SEQ_SIZE_182(_) BOOST_PP_SEQ_SIZE_183
+# define BOOST_PP_SEQ_SIZE_183(_) BOOST_PP_SEQ_SIZE_184
+# define BOOST_PP_SEQ_SIZE_184(_) BOOST_PP_SEQ_SIZE_185
+# define BOOST_PP_SEQ_SIZE_185(_) BOOST_PP_SEQ_SIZE_186
+# define BOOST_PP_SEQ_SIZE_186(_) BOOST_PP_SEQ_SIZE_187
+# define BOOST_PP_SEQ_SIZE_187(_) BOOST_PP_SEQ_SIZE_188
+# define BOOST_PP_SEQ_SIZE_188(_) BOOST_PP_SEQ_SIZE_189
+# define BOOST_PP_SEQ_SIZE_189(_) BOOST_PP_SEQ_SIZE_190
+# define BOOST_PP_SEQ_SIZE_190(_) BOOST_PP_SEQ_SIZE_191
+# define BOOST_PP_SEQ_SIZE_191(_) BOOST_PP_SEQ_SIZE_192
+# define BOOST_PP_SEQ_SIZE_192(_) BOOST_PP_SEQ_SIZE_193
+# define BOOST_PP_SEQ_SIZE_193(_) BOOST_PP_SEQ_SIZE_194
+# define BOOST_PP_SEQ_SIZE_194(_) BOOST_PP_SEQ_SIZE_195
+# define BOOST_PP_SEQ_SIZE_195(_) BOOST_PP_SEQ_SIZE_196
+# define BOOST_PP_SEQ_SIZE_196(_) BOOST_PP_SEQ_SIZE_197
+# define BOOST_PP_SEQ_SIZE_197(_) BOOST_PP_SEQ_SIZE_198
+# define BOOST_PP_SEQ_SIZE_198(_) BOOST_PP_SEQ_SIZE_199
+# define BOOST_PP_SEQ_SIZE_199(_) BOOST_PP_SEQ_SIZE_200
+# define BOOST_PP_SEQ_SIZE_200(_) BOOST_PP_SEQ_SIZE_201
+# define BOOST_PP_SEQ_SIZE_201(_) BOOST_PP_SEQ_SIZE_202
+# define BOOST_PP_SEQ_SIZE_202(_) BOOST_PP_SEQ_SIZE_203
+# define BOOST_PP_SEQ_SIZE_203(_) BOOST_PP_SEQ_SIZE_204
+# define BOOST_PP_SEQ_SIZE_204(_) BOOST_PP_SEQ_SIZE_205
+# define BOOST_PP_SEQ_SIZE_205(_) BOOST_PP_SEQ_SIZE_206
+# define BOOST_PP_SEQ_SIZE_206(_) BOOST_PP_SEQ_SIZE_207
+# define BOOST_PP_SEQ_SIZE_207(_) BOOST_PP_SEQ_SIZE_208
+# define BOOST_PP_SEQ_SIZE_208(_) BOOST_PP_SEQ_SIZE_209
+# define BOOST_PP_SEQ_SIZE_209(_) BOOST_PP_SEQ_SIZE_210
+# define BOOST_PP_SEQ_SIZE_210(_) BOOST_PP_SEQ_SIZE_211
+# define BOOST_PP_SEQ_SIZE_211(_) BOOST_PP_SEQ_SIZE_212
+# define BOOST_PP_SEQ_SIZE_212(_) BOOST_PP_SEQ_SIZE_213
+# define BOOST_PP_SEQ_SIZE_213(_) BOOST_PP_SEQ_SIZE_214
+# define BOOST_PP_SEQ_SIZE_214(_) BOOST_PP_SEQ_SIZE_215
+# define BOOST_PP_SEQ_SIZE_215(_) BOOST_PP_SEQ_SIZE_216
+# define BOOST_PP_SEQ_SIZE_216(_) BOOST_PP_SEQ_SIZE_217
+# define BOOST_PP_SEQ_SIZE_217(_) BOOST_PP_SEQ_SIZE_218
+# define BOOST_PP_SEQ_SIZE_218(_) BOOST_PP_SEQ_SIZE_219
+# define BOOST_PP_SEQ_SIZE_219(_) BOOST_PP_SEQ_SIZE_220
+# define BOOST_PP_SEQ_SIZE_220(_) BOOST_PP_SEQ_SIZE_221
+# define BOOST_PP_SEQ_SIZE_221(_) BOOST_PP_SEQ_SIZE_222
+# define BOOST_PP_SEQ_SIZE_222(_) BOOST_PP_SEQ_SIZE_223
+# define BOOST_PP_SEQ_SIZE_223(_) BOOST_PP_SEQ_SIZE_224
+# define BOOST_PP_SEQ_SIZE_224(_) BOOST_PP_SEQ_SIZE_225
+# define BOOST_PP_SEQ_SIZE_225(_) BOOST_PP_SEQ_SIZE_226
+# define BOOST_PP_SEQ_SIZE_226(_) BOOST_PP_SEQ_SIZE_227
+# define BOOST_PP_SEQ_SIZE_227(_) BOOST_PP_SEQ_SIZE_228
+# define BOOST_PP_SEQ_SIZE_228(_) BOOST_PP_SEQ_SIZE_229
+# define BOOST_PP_SEQ_SIZE_229(_) BOOST_PP_SEQ_SIZE_230
+# define BOOST_PP_SEQ_SIZE_230(_) BOOST_PP_SEQ_SIZE_231
+# define BOOST_PP_SEQ_SIZE_231(_) BOOST_PP_SEQ_SIZE_232
+# define BOOST_PP_SEQ_SIZE_232(_) BOOST_PP_SEQ_SIZE_233
+# define BOOST_PP_SEQ_SIZE_233(_) BOOST_PP_SEQ_SIZE_234
+# define BOOST_PP_SEQ_SIZE_234(_) BOOST_PP_SEQ_SIZE_235
+# define BOOST_PP_SEQ_SIZE_235(_) BOOST_PP_SEQ_SIZE_236
+# define BOOST_PP_SEQ_SIZE_236(_) BOOST_PP_SEQ_SIZE_237
+# define BOOST_PP_SEQ_SIZE_237(_) BOOST_PP_SEQ_SIZE_238
+# define BOOST_PP_SEQ_SIZE_238(_) BOOST_PP_SEQ_SIZE_239
+# define BOOST_PP_SEQ_SIZE_239(_) BOOST_PP_SEQ_SIZE_240
+# define BOOST_PP_SEQ_SIZE_240(_) BOOST_PP_SEQ_SIZE_241
+# define BOOST_PP_SEQ_SIZE_241(_) BOOST_PP_SEQ_SIZE_242
+# define BOOST_PP_SEQ_SIZE_242(_) BOOST_PP_SEQ_SIZE_243
+# define BOOST_PP_SEQ_SIZE_243(_) BOOST_PP_SEQ_SIZE_244
+# define BOOST_PP_SEQ_SIZE_244(_) BOOST_PP_SEQ_SIZE_245
+# define BOOST_PP_SEQ_SIZE_245(_) BOOST_PP_SEQ_SIZE_246
+# define BOOST_PP_SEQ_SIZE_246(_) BOOST_PP_SEQ_SIZE_247
+# define BOOST_PP_SEQ_SIZE_247(_) BOOST_PP_SEQ_SIZE_248
+# define BOOST_PP_SEQ_SIZE_248(_) BOOST_PP_SEQ_SIZE_249
+# define BOOST_PP_SEQ_SIZE_249(_) BOOST_PP_SEQ_SIZE_250
+# define BOOST_PP_SEQ_SIZE_250(_) BOOST_PP_SEQ_SIZE_251
+# define BOOST_PP_SEQ_SIZE_251(_) BOOST_PP_SEQ_SIZE_252
+# define BOOST_PP_SEQ_SIZE_252(_) BOOST_PP_SEQ_SIZE_253
+# define BOOST_PP_SEQ_SIZE_253(_) BOOST_PP_SEQ_SIZE_254
+# define BOOST_PP_SEQ_SIZE_254(_) BOOST_PP_SEQ_SIZE_255
+# define BOOST_PP_SEQ_SIZE_255(_) BOOST_PP_SEQ_SIZE_256
+# define BOOST_PP_SEQ_SIZE_256(_) BOOST_PP_SEQ_SIZE_257
+#
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_0 0
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_1 1
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_2 2
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_3 3
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_4 4
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_5 5
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_6 6
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_7 7
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_8 8
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_9 9
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_10 10
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_11 11
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_12 12
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_13 13
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_14 14
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_15 15
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_16 16
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_17 17
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_18 18
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_19 19
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_20 20
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_21 21
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_22 22
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_23 23
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_24 24
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_25 25
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_26 26
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_27 27
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_28 28
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_29 29
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_30 30
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_31 31
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_32 32
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_33 33
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_34 34
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_35 35
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_36 36
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_37 37
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_38 38
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_39 39
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_40 40
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_41 41
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_42 42
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_43 43
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_44 44
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_45 45
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_46 46
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_47 47
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_48 48
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_49 49
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_50 50
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_51 51
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_52 52
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_53 53
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_54 54
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_55 55
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_56 56
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_57 57
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_58 58
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_59 59
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_60 60
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_61 61
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_62 62
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_63 63
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_64 64
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_65 65
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_66 66
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_67 67
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_68 68
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_69 69
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_70 70
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_71 71
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_72 72
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_73 73
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_74 74
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_75 75
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_76 76
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_77 77
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_78 78
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_79 79
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_80 80
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_81 81
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_82 82
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_83 83
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_84 84
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_85 85
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_86 86
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_87 87
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_88 88
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_89 89
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_90 90
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_91 91
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_92 92
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_93 93
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_94 94
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_95 95
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_96 96
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_97 97
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_98 98
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_99 99
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_100 100
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_101 101
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_102 102
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_103 103
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_104 104
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_105 105
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_106 106
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_107 107
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_108 108
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_109 109
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_110 110
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_111 111
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_112 112
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_113 113
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_114 114
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_115 115
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_116 116
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_117 117
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_118 118
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_119 119
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_120 120
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_121 121
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_122 122
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_123 123
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_124 124
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_125 125
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_126 126
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_127 127
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_128 128
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_129 129
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_130 130
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_131 131
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_132 132
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_133 133
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_134 134
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_135 135
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_136 136
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_137 137
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_138 138
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_139 139
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_140 140
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_141 141
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_142 142
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_143 143
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_144 144
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_145 145
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_146 146
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_147 147
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_148 148
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_149 149
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_150 150
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_151 151
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_152 152
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_153 153
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_154 154
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_155 155
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_156 156
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_157 157
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_158 158
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_159 159
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_160 160
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_161 161
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_162 162
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_163 163
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_164 164
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_165 165
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_166 166
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_167 167
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_168 168
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_169 169
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_170 170
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_171 171
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_172 172
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_173 173
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_174 174
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_175 175
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_176 176
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_177 177
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_178 178
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_179 179
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_180 180
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_181 181
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_182 182
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_183 183
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_184 184
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_185 185
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_186 186
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_187 187
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_188 188
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_189 189
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_190 190
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_191 191
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_192 192
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_193 193
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_194 194
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_195 195
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_196 196
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_197 197
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_198 198
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_199 199
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_200 200
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_201 201
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_202 202
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_203 203
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_204 204
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_205 205
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_206 206
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_207 207
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_208 208
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_209 209
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_210 210
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_211 211
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_212 212
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_213 213
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_214 214
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_215 215
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_216 216
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_217 217
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_218 218
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_219 219
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_220 220
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_221 221
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_222 222
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_223 223
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_224 224
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_225 225
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_226 226
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_227 227
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_228 228
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_229 229
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_230 230
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_231 231
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_232 232
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_233 233
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_234 234
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_235 235
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_236 236
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_237 237
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_238 238
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_239 239
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_240 240
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_241 241
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_242 242
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_243 243
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_244 244
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_245 245
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_246 246
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_247 247
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_248 248
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_249 249
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_250 250
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_251 251
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_252 252
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_253 253
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_254 254
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_255 255
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_256 256
+#
+# endif
index aee81a0691c734d935791197779858168376e68b..fb242f1e69c62873b780a43486af5331a5812019 100644 (file)
@@ -1,28 +1,28 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_SUBSEQ_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_SUBSEQ_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/seq/first_n.hpp>\r
-# include <boost/preprocessor/seq/rest_n.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_SUBSEQ */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_SUBSEQ(seq, i, len) BOOST_PP_SEQ_FIRST_N(len, BOOST_PP_SEQ_REST_N(i, seq))\r
-# else\r
-#    define BOOST_PP_SEQ_SUBSEQ(seq, i, len) BOOST_PP_SEQ_SUBSEQ_I(seq, i, len)\r
-#    define BOOST_PP_SEQ_SUBSEQ_I(seq, i, len) BOOST_PP_SEQ_FIRST_N(len, BOOST_PP_SEQ_REST_N(i, seq))\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_SUBSEQ_HPP
+# define BOOST_PREPROCESSOR_SEQ_SUBSEQ_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/seq/first_n.hpp>
+# include <boost/preprocessor/seq/rest_n.hpp>
+#
+# /* BOOST_PP_SEQ_SUBSEQ */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_SUBSEQ(seq, i, len) BOOST_PP_SEQ_FIRST_N(len, BOOST_PP_SEQ_REST_N(i, seq))
+# else
+#    define BOOST_PP_SEQ_SUBSEQ(seq, i, len) BOOST_PP_SEQ_SUBSEQ_I(seq, i, len)
+#    define BOOST_PP_SEQ_SUBSEQ_I(seq, i, len) BOOST_PP_SEQ_FIRST_N(len, BOOST_PP_SEQ_REST_N(i, seq))
+# endif
+#
+# endif
index d20d45ed2fd6dd28643ac7531da2fbe6021dcc52..d8a8040f8d858b3d44a7bb6f175e1dfa31f8d852 100644 (file)
@@ -1,28 +1,28 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_TO_ARRAY_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_TO_ARRAY_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/seq/enum.hpp>\r
-# include <boost/preprocessor/seq/size.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_TO_ARRAY */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_TO_ARRAY(seq) (BOOST_PP_SEQ_SIZE(seq), (BOOST_PP_SEQ_ENUM(seq)))\r
-# else\r
-#    define BOOST_PP_SEQ_TO_ARRAY(seq) BOOST_PP_SEQ_TO_ARRAY_I(seq)\r
-#    define BOOST_PP_SEQ_TO_ARRAY_I(seq) (BOOST_PP_SEQ_SIZE(seq), (BOOST_PP_SEQ_ENUM(seq)))\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_TO_ARRAY_HPP
+# define BOOST_PREPROCESSOR_SEQ_TO_ARRAY_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/seq/enum.hpp>
+# include <boost/preprocessor/seq/size.hpp>
+#
+# /* BOOST_PP_SEQ_TO_ARRAY */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_TO_ARRAY(seq) (BOOST_PP_SEQ_SIZE(seq), (BOOST_PP_SEQ_ENUM(seq)))
+# else
+#    define BOOST_PP_SEQ_TO_ARRAY(seq) BOOST_PP_SEQ_TO_ARRAY_I(seq)
+#    define BOOST_PP_SEQ_TO_ARRAY_I(seq) (BOOST_PP_SEQ_SIZE(seq), (BOOST_PP_SEQ_ENUM(seq)))
+# endif
+#
+# endif
index 828dcd5f28fd258a1296fab6ab40bec4b986dbc6..ab38eb97faebdd21cd878f983adb44a626b44ad5 100644 (file)
@@ -1,27 +1,27 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_TO_TUPLE_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_TO_TUPLE_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/seq/enum.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_TO_TUPLE */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_TO_TUPLE(seq) (BOOST_PP_SEQ_ENUM(seq))\r
-# else\r
-#    define BOOST_PP_SEQ_TO_TUPLE(seq) BOOST_PP_SEQ_TO_TUPLE_I(seq)\r
-#    define BOOST_PP_SEQ_TO_TUPLE_I(seq) (BOOST_PP_SEQ_ENUM(seq))\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_TO_TUPLE_HPP
+# define BOOST_PREPROCESSOR_SEQ_TO_TUPLE_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/seq/enum.hpp>
+#
+# /* BOOST_PP_SEQ_TO_TUPLE */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_TO_TUPLE(seq) (BOOST_PP_SEQ_ENUM(seq))
+# else
+#    define BOOST_PP_SEQ_TO_TUPLE(seq) BOOST_PP_SEQ_TO_TUPLE_I(seq)
+#    define BOOST_PP_SEQ_TO_TUPLE_I(seq) (BOOST_PP_SEQ_ENUM(seq))
+# endif
+#
+# endif
index 70f89e10f0a131e4b4b50e2ee4daf533a692ecca..79d8108d362b16be78cf98d9187bbdab00530675 100644 (file)
@@ -1,48 +1,48 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SEQ_TRANSFORM_HPP\r
-# define BOOST_PREPROCESSOR_SEQ_TRANSFORM_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-# include <boost/preprocessor/seq/fold_left.hpp>\r
-# include <boost/preprocessor/seq/seq.hpp>\r
-# include <boost/preprocessor/tuple/elem.hpp>\r
-# include <boost/preprocessor/tuple/rem.hpp>\r
-#\r
-# /* BOOST_PP_SEQ_TRANSFORM */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_TRANSFORM(op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))\r
-# else\r
-#    define BOOST_PP_SEQ_TRANSFORM(op, data, seq) BOOST_PP_SEQ_TRANSFORM_I(op, data, seq)\r
-#    define BOOST_PP_SEQ_TRANSFORM_I(op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))\r
-# endif\r
-#\r
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
-#    define BOOST_PP_SEQ_TRANSFORM_O(s, state, elem) BOOST_PP_SEQ_TRANSFORM_O_IM(s, BOOST_PP_TUPLE_REM_3 state, elem)\r
-#    define BOOST_PP_SEQ_TRANSFORM_O_IM(s, im, elem) BOOST_PP_SEQ_TRANSFORM_O_I(s, im, elem)\r
-# else\r
-#    define BOOST_PP_SEQ_TRANSFORM_O(s, state, elem) BOOST_PP_SEQ_TRANSFORM_O_I(s, BOOST_PP_TUPLE_ELEM(3, 0, state), BOOST_PP_TUPLE_ELEM(3, 1, state), BOOST_PP_TUPLE_ELEM(3, 2, state), elem)\r
-# endif\r
-#\r
-# define BOOST_PP_SEQ_TRANSFORM_O_I(s, op, data, res, elem) (op, data, res (op(s, data, elem)))\r
-#\r
-# /* BOOST_PP_SEQ_TRANSFORM_S */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
-#    define BOOST_PP_SEQ_TRANSFORM_S(s, op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))\r
-# else\r
-#    define BOOST_PP_SEQ_TRANSFORM_S(s, op, data, seq) BOOST_PP_SEQ_TRANSFORM_S_I(s, op, data, seq)\r
-#    define BOOST_PP_SEQ_TRANSFORM_S_I(s, op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))\r
-# endif\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_TRANSFORM_HPP
+# define BOOST_PREPROCESSOR_SEQ_TRANSFORM_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/seq/fold_left.hpp>
+# include <boost/preprocessor/seq/seq.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_SEQ_TRANSFORM */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_TRANSFORM(op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
+# else
+#    define BOOST_PP_SEQ_TRANSFORM(op, data, seq) BOOST_PP_SEQ_TRANSFORM_I(op, data, seq)
+#    define BOOST_PP_SEQ_TRANSFORM_I(op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
+# endif
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
+#    define BOOST_PP_SEQ_TRANSFORM_O(s, state, elem) BOOST_PP_SEQ_TRANSFORM_O_IM(s, BOOST_PP_TUPLE_REM_3 state, elem)
+#    define BOOST_PP_SEQ_TRANSFORM_O_IM(s, im, elem) BOOST_PP_SEQ_TRANSFORM_O_I(s, im, elem)
+# else
+#    define BOOST_PP_SEQ_TRANSFORM_O(s, state, elem) BOOST_PP_SEQ_TRANSFORM_O_I(s, BOOST_PP_TUPLE_ELEM(3, 0, state), BOOST_PP_TUPLE_ELEM(3, 1, state), BOOST_PP_TUPLE_ELEM(3, 2, state), elem)
+# endif
+#
+# define BOOST_PP_SEQ_TRANSFORM_O_I(s, op, data, res, elem) (op, data, res (op(s, data, elem)))
+#
+# /* BOOST_PP_SEQ_TRANSFORM_S */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+#    define BOOST_PP_SEQ_TRANSFORM_S(s, op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
+# else
+#    define BOOST_PP_SEQ_TRANSFORM_S(s, op, data, seq) BOOST_PP_SEQ_TRANSFORM_S_I(s, op, data, seq)
+#    define BOOST_PP_SEQ_TRANSFORM_S_I(s, op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
+# endif
+#
+# endif
index e1d58637b4374a575a1b038885f10ca58addeeb9..d257a649a1b8e9bb6f429f5fcff560401b403cf2 100644 (file)
@@ -1,25 +1,25 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2005.                                  *\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See      *\r
-#  *     accompanying file LICENSE_1_0.txt or copy at                         *\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)                                *\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_SLOT_COUNTER_HPP\r
-# define BOOST_PREPROCESSOR_SLOT_COUNTER_HPP\r
-#\r
-# include <boost/preprocessor/slot/detail/def.hpp>\r
-#\r
-# /* BOOST_PP_COUNTER */\r
-#\r
-# define BOOST_PP_COUNTER 0\r
-#\r
-# /* BOOST_PP_UPDATE_COUNTER */\r
-#\r
-# define BOOST_PP_UPDATE_COUNTER() <boost/preprocessor/slot/detail/counter.hpp>\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (C) Copyright Paul Mensonides 2005.                                  *
+#  *     Distributed under the Boost Software License, Version 1.0. (See      *
+#  *     accompanying file LICENSE_1_0.txt or copy at                         *
+#  *     http://www.boost.org/LICENSE_1_0.txt)                                *
+#  *                                                                          *
+#  ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_SLOT_COUNTER_HPP
+# define BOOST_PREPROCESSOR_SLOT_COUNTER_HPP
+#
+# include <boost/preprocessor/slot/detail/def.hpp>
+#
+# /* BOOST_PP_COUNTER */
+#
+# define BOOST_PP_COUNTER 0
+#
+# /* BOOST_PP_UPDATE_COUNTER */
+#
+# define BOOST_PP_UPDATE_COUNTER() <boost/preprocessor/slot/detail/counter.hpp>
+#
+# endif
index c15b5426b265e53910fb93c699fd72a66d9dc828..a1c0df1759a29b01705c553bf8e9fdbe8a96d65f 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2005.                                  *\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See      *\r
-#  *     accompanying file LICENSE_1_0.txt or copy at                         *\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)                                *\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# define BOOST_PP_VALUE BOOST_PP_COUNTER + 1\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_COUNTER\r
-#\r
-# undef BOOST_PP_COUNTER_DIGIT_1\r
-# undef BOOST_PP_COUNTER_DIGIT_2\r
-# undef BOOST_PP_COUNTER_DIGIT_3\r
-# undef BOOST_PP_COUNTER_DIGIT_4\r
-# undef BOOST_PP_COUNTER_DIGIT_5\r
-# undef BOOST_PP_COUNTER_DIGIT_6\r
-# undef BOOST_PP_COUNTER_DIGIT_7\r
-# undef BOOST_PP_COUNTER_DIGIT_8\r
-# undef BOOST_PP_COUNTER_DIGIT_9\r
-# undef BOOST_PP_COUNTER_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_10 == 0\r
-#    define BOOST_PP_COUNTER_DIGIT_10 0\r
-# elif BOOST_PP_SLOT_TEMP_10 == 1\r
-#    define BOOST_PP_COUNTER_DIGIT_10 1\r
-# elif BOOST_PP_SLOT_TEMP_10 == 2\r
-#    define BOOST_PP_COUNTER_DIGIT_10 2\r
-# elif BOOST_PP_SLOT_TEMP_10 == 3\r
-#    define BOOST_PP_COUNTER_DIGIT_10 3\r
-# elif BOOST_PP_SLOT_TEMP_10 == 4\r
-#    define BOOST_PP_COUNTER_DIGIT_10 4\r
-# elif BOOST_PP_SLOT_TEMP_10 == 5\r
-#    define BOOST_PP_COUNTER_DIGIT_10 5\r
-# elif BOOST_PP_SLOT_TEMP_10 == 6\r
-#    define BOOST_PP_COUNTER_DIGIT_10 6\r
-# elif BOOST_PP_SLOT_TEMP_10 == 7\r
-#    define BOOST_PP_COUNTER_DIGIT_10 7\r
-# elif BOOST_PP_SLOT_TEMP_10 == 8\r
-#    define BOOST_PP_COUNTER_DIGIT_10 8\r
-# elif BOOST_PP_SLOT_TEMP_10 == 9\r
-#    define BOOST_PP_COUNTER_DIGIT_10 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_9 == 0\r
-#    define BOOST_PP_COUNTER_DIGIT_9 0\r
-# elif BOOST_PP_SLOT_TEMP_9 == 1\r
-#    define BOOST_PP_COUNTER_DIGIT_9 1\r
-# elif BOOST_PP_SLOT_TEMP_9 == 2\r
-#    define BOOST_PP_COUNTER_DIGIT_9 2\r
-# elif BOOST_PP_SLOT_TEMP_9 == 3\r
-#    define BOOST_PP_COUNTER_DIGIT_9 3\r
-# elif BOOST_PP_SLOT_TEMP_9 == 4\r
-#    define BOOST_PP_COUNTER_DIGIT_9 4\r
-# elif BOOST_PP_SLOT_TEMP_9 == 5\r
-#    define BOOST_PP_COUNTER_DIGIT_9 5\r
-# elif BOOST_PP_SLOT_TEMP_9 == 6\r
-#    define BOOST_PP_COUNTER_DIGIT_9 6\r
-# elif BOOST_PP_SLOT_TEMP_9 == 7\r
-#    define BOOST_PP_COUNTER_DIGIT_9 7\r
-# elif BOOST_PP_SLOT_TEMP_9 == 8\r
-#    define BOOST_PP_COUNTER_DIGIT_9 8\r
-# elif BOOST_PP_SLOT_TEMP_9 == 9\r
-#    define BOOST_PP_COUNTER_DIGIT_9 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_8 == 0\r
-#    define BOOST_PP_COUNTER_DIGIT_8 0\r
-# elif BOOST_PP_SLOT_TEMP_8 == 1\r
-#    define BOOST_PP_COUNTER_DIGIT_8 1\r
-# elif BOOST_PP_SLOT_TEMP_8 == 2\r
-#    define BOOST_PP_COUNTER_DIGIT_8 2\r
-# elif BOOST_PP_SLOT_TEMP_8 == 3\r
-#    define BOOST_PP_COUNTER_DIGIT_8 3\r
-# elif BOOST_PP_SLOT_TEMP_8 == 4\r
-#    define BOOST_PP_COUNTER_DIGIT_8 4\r
-# elif BOOST_PP_SLOT_TEMP_8 == 5\r
-#    define BOOST_PP_COUNTER_DIGIT_8 5\r
-# elif BOOST_PP_SLOT_TEMP_8 == 6\r
-#    define BOOST_PP_COUNTER_DIGIT_8 6\r
-# elif BOOST_PP_SLOT_TEMP_8 == 7\r
-#    define BOOST_PP_COUNTER_DIGIT_8 7\r
-# elif BOOST_PP_SLOT_TEMP_8 == 8\r
-#    define BOOST_PP_COUNTER_DIGIT_8 8\r
-# elif BOOST_PP_SLOT_TEMP_8 == 9\r
-#    define BOOST_PP_COUNTER_DIGIT_8 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_7 == 0\r
-#    define BOOST_PP_COUNTER_DIGIT_7 0\r
-# elif BOOST_PP_SLOT_TEMP_7 == 1\r
-#    define BOOST_PP_COUNTER_DIGIT_7 1\r
-# elif BOOST_PP_SLOT_TEMP_7 == 2\r
-#    define BOOST_PP_COUNTER_DIGIT_7 2\r
-# elif BOOST_PP_SLOT_TEMP_7 == 3\r
-#    define BOOST_PP_COUNTER_DIGIT_7 3\r
-# elif BOOST_PP_SLOT_TEMP_7 == 4\r
-#    define BOOST_PP_COUNTER_DIGIT_7 4\r
-# elif BOOST_PP_SLOT_TEMP_7 == 5\r
-#    define BOOST_PP_COUNTER_DIGIT_7 5\r
-# elif BOOST_PP_SLOT_TEMP_7 == 6\r
-#    define BOOST_PP_COUNTER_DIGIT_7 6\r
-# elif BOOST_PP_SLOT_TEMP_7 == 7\r
-#    define BOOST_PP_COUNTER_DIGIT_7 7\r
-# elif BOOST_PP_SLOT_TEMP_7 == 8\r
-#    define BOOST_PP_COUNTER_DIGIT_7 8\r
-# elif BOOST_PP_SLOT_TEMP_7 == 9\r
-#    define BOOST_PP_COUNTER_DIGIT_7 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_6 == 0\r
-#    define BOOST_PP_COUNTER_DIGIT_6 0\r
-# elif BOOST_PP_SLOT_TEMP_6 == 1\r
-#    define BOOST_PP_COUNTER_DIGIT_6 1\r
-# elif BOOST_PP_SLOT_TEMP_6 == 2\r
-#    define BOOST_PP_COUNTER_DIGIT_6 2\r
-# elif BOOST_PP_SLOT_TEMP_6 == 3\r
-#    define BOOST_PP_COUNTER_DIGIT_6 3\r
-# elif BOOST_PP_SLOT_TEMP_6 == 4\r
-#    define BOOST_PP_COUNTER_DIGIT_6 4\r
-# elif BOOST_PP_SLOT_TEMP_6 == 5\r
-#    define BOOST_PP_COUNTER_DIGIT_6 5\r
-# elif BOOST_PP_SLOT_TEMP_6 == 6\r
-#    define BOOST_PP_COUNTER_DIGIT_6 6\r
-# elif BOOST_PP_SLOT_TEMP_6 == 7\r
-#    define BOOST_PP_COUNTER_DIGIT_6 7\r
-# elif BOOST_PP_SLOT_TEMP_6 == 8\r
-#    define BOOST_PP_COUNTER_DIGIT_6 8\r
-# elif BOOST_PP_SLOT_TEMP_6 == 9\r
-#    define BOOST_PP_COUNTER_DIGIT_6 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_5 == 0\r
-#    define BOOST_PP_COUNTER_DIGIT_5 0\r
-# elif BOOST_PP_SLOT_TEMP_5 == 1\r
-#    define BOOST_PP_COUNTER_DIGIT_5 1\r
-# elif BOOST_PP_SLOT_TEMP_5 == 2\r
-#    define BOOST_PP_COUNTER_DIGIT_5 2\r
-# elif BOOST_PP_SLOT_TEMP_5 == 3\r
-#    define BOOST_PP_COUNTER_DIGIT_5 3\r
-# elif BOOST_PP_SLOT_TEMP_5 == 4\r
-#    define BOOST_PP_COUNTER_DIGIT_5 4\r
-# elif BOOST_PP_SLOT_TEMP_5 == 5\r
-#    define BOOST_PP_COUNTER_DIGIT_5 5\r
-# elif BOOST_PP_SLOT_TEMP_5 == 6\r
-#    define BOOST_PP_COUNTER_DIGIT_5 6\r
-# elif BOOST_PP_SLOT_TEMP_5 == 7\r
-#    define BOOST_PP_COUNTER_DIGIT_5 7\r
-# elif BOOST_PP_SLOT_TEMP_5 == 8\r
-#    define BOOST_PP_COUNTER_DIGIT_5 8\r
-# elif BOOST_PP_SLOT_TEMP_5 == 9\r
-#    define BOOST_PP_COUNTER_DIGIT_5 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_4 == 0\r
-#    define BOOST_PP_COUNTER_DIGIT_4 0\r
-# elif BOOST_PP_SLOT_TEMP_4 == 1\r
-#    define BOOST_PP_COUNTER_DIGIT_4 1\r
-# elif BOOST_PP_SLOT_TEMP_4 == 2\r
-#    define BOOST_PP_COUNTER_DIGIT_4 2\r
-# elif BOOST_PP_SLOT_TEMP_4 == 3\r
-#    define BOOST_PP_COUNTER_DIGIT_4 3\r
-# elif BOOST_PP_SLOT_TEMP_4 == 4\r
-#    define BOOST_PP_COUNTER_DIGIT_4 4\r
-# elif BOOST_PP_SLOT_TEMP_4 == 5\r
-#    define BOOST_PP_COUNTER_DIGIT_4 5\r
-# elif BOOST_PP_SLOT_TEMP_4 == 6\r
-#    define BOOST_PP_COUNTER_DIGIT_4 6\r
-# elif BOOST_PP_SLOT_TEMP_4 == 7\r
-#    define BOOST_PP_COUNTER_DIGIT_4 7\r
-# elif BOOST_PP_SLOT_TEMP_4 == 8\r
-#    define BOOST_PP_COUNTER_DIGIT_4 8\r
-# elif BOOST_PP_SLOT_TEMP_4 == 9\r
-#    define BOOST_PP_COUNTER_DIGIT_4 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_COUNTER_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_COUNTER_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_COUNTER_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_COUNTER_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_COUNTER_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_COUNTER_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_COUNTER_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_COUNTER_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_COUNTER_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_COUNTER_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_COUNTER_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_COUNTER_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_COUNTER_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_COUNTER_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_COUNTER_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_COUNTER_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_COUNTER_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_COUNTER_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_COUNTER_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_COUNTER_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_COUNTER_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_COUNTER_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_COUNTER_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_COUNTER_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_COUNTER_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_COUNTER_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_COUNTER_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_COUNTER_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_COUNTER_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_COUNTER_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_COUNTER_DIGIT_10\r
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_10(BOOST_PP_COUNTER_DIGIT_10, BOOST_PP_COUNTER_DIGIT_9, BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
-# elif BOOST_PP_COUNTER_DIGIT_9\r
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_9(BOOST_PP_COUNTER_DIGIT_9, BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
-# elif BOOST_PP_COUNTER_DIGIT_8\r
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_8(BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
-# elif BOOST_PP_COUNTER_DIGIT_7\r
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_7(BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
-# elif BOOST_PP_COUNTER_DIGIT_6\r
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_6(BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
-# elif BOOST_PP_COUNTER_DIGIT_5\r
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_5(BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
-# elif BOOST_PP_COUNTER_DIGIT_4\r
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_4(BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
-# elif BOOST_PP_COUNTER_DIGIT_3\r
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_3(BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
-# elif BOOST_PP_COUNTER_DIGIT_2\r
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_2(BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_COUNTER BOOST_PP_COUNTER_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (C) Copyright Paul Mensonides 2005.                                  *
+#  *     Distributed under the Boost Software License, Version 1.0. (See      *
+#  *     accompanying file LICENSE_1_0.txt or copy at                         *
+#  *     http://www.boost.org/LICENSE_1_0.txt)                                *
+#  *                                                                          *
+#  ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# define BOOST_PP_VALUE BOOST_PP_COUNTER + 1
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_COUNTER
+#
+# undef BOOST_PP_COUNTER_DIGIT_1
+# undef BOOST_PP_COUNTER_DIGIT_2
+# undef BOOST_PP_COUNTER_DIGIT_3
+# undef BOOST_PP_COUNTER_DIGIT_4
+# undef BOOST_PP_COUNTER_DIGIT_5
+# undef BOOST_PP_COUNTER_DIGIT_6
+# undef BOOST_PP_COUNTER_DIGIT_7
+# undef BOOST_PP_COUNTER_DIGIT_8
+# undef BOOST_PP_COUNTER_DIGIT_9
+# undef BOOST_PP_COUNTER_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_10 == 0
+#    define BOOST_PP_COUNTER_DIGIT_10 0
+# elif BOOST_PP_SLOT_TEMP_10 == 1
+#    define BOOST_PP_COUNTER_DIGIT_10 1
+# elif BOOST_PP_SLOT_TEMP_10 == 2
+#    define BOOST_PP_COUNTER_DIGIT_10 2
+# elif BOOST_PP_SLOT_TEMP_10 == 3
+#    define BOOST_PP_COUNTER_DIGIT_10 3
+# elif BOOST_PP_SLOT_TEMP_10 == 4
+#    define BOOST_PP_COUNTER_DIGIT_10 4
+# elif BOOST_PP_SLOT_TEMP_10 == 5
+#    define BOOST_PP_COUNTER_DIGIT_10 5
+# elif BOOST_PP_SLOT_TEMP_10 == 6
+#    define BOOST_PP_COUNTER_DIGIT_10 6
+# elif BOOST_PP_SLOT_TEMP_10 == 7
+#    define BOOST_PP_COUNTER_DIGIT_10 7
+# elif BOOST_PP_SLOT_TEMP_10 == 8
+#    define BOOST_PP_COUNTER_DIGIT_10 8
+# elif BOOST_PP_SLOT_TEMP_10 == 9
+#    define BOOST_PP_COUNTER_DIGIT_10 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_9 == 0
+#    define BOOST_PP_COUNTER_DIGIT_9 0
+# elif BOOST_PP_SLOT_TEMP_9 == 1
+#    define BOOST_PP_COUNTER_DIGIT_9 1
+# elif BOOST_PP_SLOT_TEMP_9 == 2
+#    define BOOST_PP_COUNTER_DIGIT_9 2
+# elif BOOST_PP_SLOT_TEMP_9 == 3
+#    define BOOST_PP_COUNTER_DIGIT_9 3
+# elif BOOST_PP_SLOT_TEMP_9 == 4
+#    define BOOST_PP_COUNTER_DIGIT_9 4
+# elif BOOST_PP_SLOT_TEMP_9 == 5
+#    define BOOST_PP_COUNTER_DIGIT_9 5
+# elif BOOST_PP_SLOT_TEMP_9 == 6
+#    define BOOST_PP_COUNTER_DIGIT_9 6
+# elif BOOST_PP_SLOT_TEMP_9 == 7
+#    define BOOST_PP_COUNTER_DIGIT_9 7
+# elif BOOST_PP_SLOT_TEMP_9 == 8
+#    define BOOST_PP_COUNTER_DIGIT_9 8
+# elif BOOST_PP_SLOT_TEMP_9 == 9
+#    define BOOST_PP_COUNTER_DIGIT_9 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_8 == 0
+#    define BOOST_PP_COUNTER_DIGIT_8 0
+# elif BOOST_PP_SLOT_TEMP_8 == 1
+#    define BOOST_PP_COUNTER_DIGIT_8 1
+# elif BOOST_PP_SLOT_TEMP_8 == 2
+#    define BOOST_PP_COUNTER_DIGIT_8 2
+# elif BOOST_PP_SLOT_TEMP_8 == 3
+#    define BOOST_PP_COUNTER_DIGIT_8 3
+# elif BOOST_PP_SLOT_TEMP_8 == 4
+#    define BOOST_PP_COUNTER_DIGIT_8 4
+# elif BOOST_PP_SLOT_TEMP_8 == 5
+#    define BOOST_PP_COUNTER_DIGIT_8 5
+# elif BOOST_PP_SLOT_TEMP_8 == 6
+#    define BOOST_PP_COUNTER_DIGIT_8 6
+# elif BOOST_PP_SLOT_TEMP_8 == 7
+#    define BOOST_PP_COUNTER_DIGIT_8 7
+# elif BOOST_PP_SLOT_TEMP_8 == 8
+#    define BOOST_PP_COUNTER_DIGIT_8 8
+# elif BOOST_PP_SLOT_TEMP_8 == 9
+#    define BOOST_PP_COUNTER_DIGIT_8 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_7 == 0
+#    define BOOST_PP_COUNTER_DIGIT_7 0
+# elif BOOST_PP_SLOT_TEMP_7 == 1
+#    define BOOST_PP_COUNTER_DIGIT_7 1
+# elif BOOST_PP_SLOT_TEMP_7 == 2
+#    define BOOST_PP_COUNTER_DIGIT_7 2
+# elif BOOST_PP_SLOT_TEMP_7 == 3
+#    define BOOST_PP_COUNTER_DIGIT_7 3
+# elif BOOST_PP_SLOT_TEMP_7 == 4
+#    define BOOST_PP_COUNTER_DIGIT_7 4
+# elif BOOST_PP_SLOT_TEMP_7 == 5
+#    define BOOST_PP_COUNTER_DIGIT_7 5
+# elif BOOST_PP_SLOT_TEMP_7 == 6
+#    define BOOST_PP_COUNTER_DIGIT_7 6
+# elif BOOST_PP_SLOT_TEMP_7 == 7
+#    define BOOST_PP_COUNTER_DIGIT_7 7
+# elif BOOST_PP_SLOT_TEMP_7 == 8
+#    define BOOST_PP_COUNTER_DIGIT_7 8
+# elif BOOST_PP_SLOT_TEMP_7 == 9
+#    define BOOST_PP_COUNTER_DIGIT_7 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_6 == 0
+#    define BOOST_PP_COUNTER_DIGIT_6 0
+# elif BOOST_PP_SLOT_TEMP_6 == 1
+#    define BOOST_PP_COUNTER_DIGIT_6 1
+# elif BOOST_PP_SLOT_TEMP_6 == 2
+#    define BOOST_PP_COUNTER_DIGIT_6 2
+# elif BOOST_PP_SLOT_TEMP_6 == 3
+#    define BOOST_PP_COUNTER_DIGIT_6 3
+# elif BOOST_PP_SLOT_TEMP_6 == 4
+#    define BOOST_PP_COUNTER_DIGIT_6 4
+# elif BOOST_PP_SLOT_TEMP_6 == 5
+#    define BOOST_PP_COUNTER_DIGIT_6 5
+# elif BOOST_PP_SLOT_TEMP_6 == 6
+#    define BOOST_PP_COUNTER_DIGIT_6 6
+# elif BOOST_PP_SLOT_TEMP_6 == 7
+#    define BOOST_PP_COUNTER_DIGIT_6 7
+# elif BOOST_PP_SLOT_TEMP_6 == 8
+#    define BOOST_PP_COUNTER_DIGIT_6 8
+# elif BOOST_PP_SLOT_TEMP_6 == 9
+#    define BOOST_PP_COUNTER_DIGIT_6 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_5 == 0
+#    define BOOST_PP_COUNTER_DIGIT_5 0
+# elif BOOST_PP_SLOT_TEMP_5 == 1
+#    define BOOST_PP_COUNTER_DIGIT_5 1
+# elif BOOST_PP_SLOT_TEMP_5 == 2
+#    define BOOST_PP_COUNTER_DIGIT_5 2
+# elif BOOST_PP_SLOT_TEMP_5 == 3
+#    define BOOST_PP_COUNTER_DIGIT_5 3
+# elif BOOST_PP_SLOT_TEMP_5 == 4
+#    define BOOST_PP_COUNTER_DIGIT_5 4
+# elif BOOST_PP_SLOT_TEMP_5 == 5
+#    define BOOST_PP_COUNTER_DIGIT_5 5
+# elif BOOST_PP_SLOT_TEMP_5 == 6
+#    define BOOST_PP_COUNTER_DIGIT_5 6
+# elif BOOST_PP_SLOT_TEMP_5 == 7
+#    define BOOST_PP_COUNTER_DIGIT_5 7
+# elif BOOST_PP_SLOT_TEMP_5 == 8
+#    define BOOST_PP_COUNTER_DIGIT_5 8
+# elif BOOST_PP_SLOT_TEMP_5 == 9
+#    define BOOST_PP_COUNTER_DIGIT_5 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_4 == 0
+#    define BOOST_PP_COUNTER_DIGIT_4 0
+# elif BOOST_PP_SLOT_TEMP_4 == 1
+#    define BOOST_PP_COUNTER_DIGIT_4 1
+# elif BOOST_PP_SLOT_TEMP_4 == 2
+#    define BOOST_PP_COUNTER_DIGIT_4 2
+# elif BOOST_PP_SLOT_TEMP_4 == 3
+#    define BOOST_PP_COUNTER_DIGIT_4 3
+# elif BOOST_PP_SLOT_TEMP_4 == 4
+#    define BOOST_PP_COUNTER_DIGIT_4 4
+# elif BOOST_PP_SLOT_TEMP_4 == 5
+#    define BOOST_PP_COUNTER_DIGIT_4 5
+# elif BOOST_PP_SLOT_TEMP_4 == 6
+#    define BOOST_PP_COUNTER_DIGIT_4 6
+# elif BOOST_PP_SLOT_TEMP_4 == 7
+#    define BOOST_PP_COUNTER_DIGIT_4 7
+# elif BOOST_PP_SLOT_TEMP_4 == 8
+#    define BOOST_PP_COUNTER_DIGIT_4 8
+# elif BOOST_PP_SLOT_TEMP_4 == 9
+#    define BOOST_PP_COUNTER_DIGIT_4 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_COUNTER_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_COUNTER_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_COUNTER_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_COUNTER_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_COUNTER_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_COUNTER_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_COUNTER_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_COUNTER_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_COUNTER_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_COUNTER_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_COUNTER_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_COUNTER_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_COUNTER_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_COUNTER_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_COUNTER_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_COUNTER_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_COUNTER_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_COUNTER_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_COUNTER_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_COUNTER_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_COUNTER_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_COUNTER_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_COUNTER_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_COUNTER_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_COUNTER_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_COUNTER_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_COUNTER_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_COUNTER_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_COUNTER_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_COUNTER_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_COUNTER_DIGIT_10
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_10(BOOST_PP_COUNTER_DIGIT_10, BOOST_PP_COUNTER_DIGIT_9, BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
+# elif BOOST_PP_COUNTER_DIGIT_9
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_9(BOOST_PP_COUNTER_DIGIT_9, BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
+# elif BOOST_PP_COUNTER_DIGIT_8
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_8(BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
+# elif BOOST_PP_COUNTER_DIGIT_7
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_7(BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
+# elif BOOST_PP_COUNTER_DIGIT_6
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_6(BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
+# elif BOOST_PP_COUNTER_DIGIT_5
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_5(BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
+# elif BOOST_PP_COUNTER_DIGIT_4
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_4(BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
+# elif BOOST_PP_COUNTER_DIGIT_3
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_3(BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
+# elif BOOST_PP_COUNTER_DIGIT_2
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_2(BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
+# else
+#    define BOOST_PP_COUNTER BOOST_PP_COUNTER_DIGIT_1
+# endif
index 66d209a9bdbd8cea1b8bb964431b846709423461..b22748e6ac40ad4990d728a8db7f547b7f8faafb 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_SLOT_1\r
-#\r
-# undef BOOST_PP_SLOT_1_DIGIT_1\r
-# undef BOOST_PP_SLOT_1_DIGIT_2\r
-# undef BOOST_PP_SLOT_1_DIGIT_3\r
-# undef BOOST_PP_SLOT_1_DIGIT_4\r
-# undef BOOST_PP_SLOT_1_DIGIT_5\r
-# undef BOOST_PP_SLOT_1_DIGIT_6\r
-# undef BOOST_PP_SLOT_1_DIGIT_7\r
-# undef BOOST_PP_SLOT_1_DIGIT_8\r
-# undef BOOST_PP_SLOT_1_DIGIT_9\r
-# undef BOOST_PP_SLOT_1_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_10 == 0\r
-#    define BOOST_PP_SLOT_1_DIGIT_10 0\r
-# elif BOOST_PP_SLOT_TEMP_10 == 1\r
-#    define BOOST_PP_SLOT_1_DIGIT_10 1\r
-# elif BOOST_PP_SLOT_TEMP_10 == 2\r
-#    define BOOST_PP_SLOT_1_DIGIT_10 2\r
-# elif BOOST_PP_SLOT_TEMP_10 == 3\r
-#    define BOOST_PP_SLOT_1_DIGIT_10 3\r
-# elif BOOST_PP_SLOT_TEMP_10 == 4\r
-#    define BOOST_PP_SLOT_1_DIGIT_10 4\r
-# elif BOOST_PP_SLOT_TEMP_10 == 5\r
-#    define BOOST_PP_SLOT_1_DIGIT_10 5\r
-# elif BOOST_PP_SLOT_TEMP_10 == 6\r
-#    define BOOST_PP_SLOT_1_DIGIT_10 6\r
-# elif BOOST_PP_SLOT_TEMP_10 == 7\r
-#    define BOOST_PP_SLOT_1_DIGIT_10 7\r
-# elif BOOST_PP_SLOT_TEMP_10 == 8\r
-#    define BOOST_PP_SLOT_1_DIGIT_10 8\r
-# elif BOOST_PP_SLOT_TEMP_10 == 9\r
-#    define BOOST_PP_SLOT_1_DIGIT_10 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_9 == 0\r
-#    define BOOST_PP_SLOT_1_DIGIT_9 0\r
-# elif BOOST_PP_SLOT_TEMP_9 == 1\r
-#    define BOOST_PP_SLOT_1_DIGIT_9 1\r
-# elif BOOST_PP_SLOT_TEMP_9 == 2\r
-#    define BOOST_PP_SLOT_1_DIGIT_9 2\r
-# elif BOOST_PP_SLOT_TEMP_9 == 3\r
-#    define BOOST_PP_SLOT_1_DIGIT_9 3\r
-# elif BOOST_PP_SLOT_TEMP_9 == 4\r
-#    define BOOST_PP_SLOT_1_DIGIT_9 4\r
-# elif BOOST_PP_SLOT_TEMP_9 == 5\r
-#    define BOOST_PP_SLOT_1_DIGIT_9 5\r
-# elif BOOST_PP_SLOT_TEMP_9 == 6\r
-#    define BOOST_PP_SLOT_1_DIGIT_9 6\r
-# elif BOOST_PP_SLOT_TEMP_9 == 7\r
-#    define BOOST_PP_SLOT_1_DIGIT_9 7\r
-# elif BOOST_PP_SLOT_TEMP_9 == 8\r
-#    define BOOST_PP_SLOT_1_DIGIT_9 8\r
-# elif BOOST_PP_SLOT_TEMP_9 == 9\r
-#    define BOOST_PP_SLOT_1_DIGIT_9 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_8 == 0\r
-#    define BOOST_PP_SLOT_1_DIGIT_8 0\r
-# elif BOOST_PP_SLOT_TEMP_8 == 1\r
-#    define BOOST_PP_SLOT_1_DIGIT_8 1\r
-# elif BOOST_PP_SLOT_TEMP_8 == 2\r
-#    define BOOST_PP_SLOT_1_DIGIT_8 2\r
-# elif BOOST_PP_SLOT_TEMP_8 == 3\r
-#    define BOOST_PP_SLOT_1_DIGIT_8 3\r
-# elif BOOST_PP_SLOT_TEMP_8 == 4\r
-#    define BOOST_PP_SLOT_1_DIGIT_8 4\r
-# elif BOOST_PP_SLOT_TEMP_8 == 5\r
-#    define BOOST_PP_SLOT_1_DIGIT_8 5\r
-# elif BOOST_PP_SLOT_TEMP_8 == 6\r
-#    define BOOST_PP_SLOT_1_DIGIT_8 6\r
-# elif BOOST_PP_SLOT_TEMP_8 == 7\r
-#    define BOOST_PP_SLOT_1_DIGIT_8 7\r
-# elif BOOST_PP_SLOT_TEMP_8 == 8\r
-#    define BOOST_PP_SLOT_1_DIGIT_8 8\r
-# elif BOOST_PP_SLOT_TEMP_8 == 9\r
-#    define BOOST_PP_SLOT_1_DIGIT_8 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_7 == 0\r
-#    define BOOST_PP_SLOT_1_DIGIT_7 0\r
-# elif BOOST_PP_SLOT_TEMP_7 == 1\r
-#    define BOOST_PP_SLOT_1_DIGIT_7 1\r
-# elif BOOST_PP_SLOT_TEMP_7 == 2\r
-#    define BOOST_PP_SLOT_1_DIGIT_7 2\r
-# elif BOOST_PP_SLOT_TEMP_7 == 3\r
-#    define BOOST_PP_SLOT_1_DIGIT_7 3\r
-# elif BOOST_PP_SLOT_TEMP_7 == 4\r
-#    define BOOST_PP_SLOT_1_DIGIT_7 4\r
-# elif BOOST_PP_SLOT_TEMP_7 == 5\r
-#    define BOOST_PP_SLOT_1_DIGIT_7 5\r
-# elif BOOST_PP_SLOT_TEMP_7 == 6\r
-#    define BOOST_PP_SLOT_1_DIGIT_7 6\r
-# elif BOOST_PP_SLOT_TEMP_7 == 7\r
-#    define BOOST_PP_SLOT_1_DIGIT_7 7\r
-# elif BOOST_PP_SLOT_TEMP_7 == 8\r
-#    define BOOST_PP_SLOT_1_DIGIT_7 8\r
-# elif BOOST_PP_SLOT_TEMP_7 == 9\r
-#    define BOOST_PP_SLOT_1_DIGIT_7 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_6 == 0\r
-#    define BOOST_PP_SLOT_1_DIGIT_6 0\r
-# elif BOOST_PP_SLOT_TEMP_6 == 1\r
-#    define BOOST_PP_SLOT_1_DIGIT_6 1\r
-# elif BOOST_PP_SLOT_TEMP_6 == 2\r
-#    define BOOST_PP_SLOT_1_DIGIT_6 2\r
-# elif BOOST_PP_SLOT_TEMP_6 == 3\r
-#    define BOOST_PP_SLOT_1_DIGIT_6 3\r
-# elif BOOST_PP_SLOT_TEMP_6 == 4\r
-#    define BOOST_PP_SLOT_1_DIGIT_6 4\r
-# elif BOOST_PP_SLOT_TEMP_6 == 5\r
-#    define BOOST_PP_SLOT_1_DIGIT_6 5\r
-# elif BOOST_PP_SLOT_TEMP_6 == 6\r
-#    define BOOST_PP_SLOT_1_DIGIT_6 6\r
-# elif BOOST_PP_SLOT_TEMP_6 == 7\r
-#    define BOOST_PP_SLOT_1_DIGIT_6 7\r
-# elif BOOST_PP_SLOT_TEMP_6 == 8\r
-#    define BOOST_PP_SLOT_1_DIGIT_6 8\r
-# elif BOOST_PP_SLOT_TEMP_6 == 9\r
-#    define BOOST_PP_SLOT_1_DIGIT_6 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_5 == 0\r
-#    define BOOST_PP_SLOT_1_DIGIT_5 0\r
-# elif BOOST_PP_SLOT_TEMP_5 == 1\r
-#    define BOOST_PP_SLOT_1_DIGIT_5 1\r
-# elif BOOST_PP_SLOT_TEMP_5 == 2\r
-#    define BOOST_PP_SLOT_1_DIGIT_5 2\r
-# elif BOOST_PP_SLOT_TEMP_5 == 3\r
-#    define BOOST_PP_SLOT_1_DIGIT_5 3\r
-# elif BOOST_PP_SLOT_TEMP_5 == 4\r
-#    define BOOST_PP_SLOT_1_DIGIT_5 4\r
-# elif BOOST_PP_SLOT_TEMP_5 == 5\r
-#    define BOOST_PP_SLOT_1_DIGIT_5 5\r
-# elif BOOST_PP_SLOT_TEMP_5 == 6\r
-#    define BOOST_PP_SLOT_1_DIGIT_5 6\r
-# elif BOOST_PP_SLOT_TEMP_5 == 7\r
-#    define BOOST_PP_SLOT_1_DIGIT_5 7\r
-# elif BOOST_PP_SLOT_TEMP_5 == 8\r
-#    define BOOST_PP_SLOT_1_DIGIT_5 8\r
-# elif BOOST_PP_SLOT_TEMP_5 == 9\r
-#    define BOOST_PP_SLOT_1_DIGIT_5 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_4 == 0\r
-#    define BOOST_PP_SLOT_1_DIGIT_4 0\r
-# elif BOOST_PP_SLOT_TEMP_4 == 1\r
-#    define BOOST_PP_SLOT_1_DIGIT_4 1\r
-# elif BOOST_PP_SLOT_TEMP_4 == 2\r
-#    define BOOST_PP_SLOT_1_DIGIT_4 2\r
-# elif BOOST_PP_SLOT_TEMP_4 == 3\r
-#    define BOOST_PP_SLOT_1_DIGIT_4 3\r
-# elif BOOST_PP_SLOT_TEMP_4 == 4\r
-#    define BOOST_PP_SLOT_1_DIGIT_4 4\r
-# elif BOOST_PP_SLOT_TEMP_4 == 5\r
-#    define BOOST_PP_SLOT_1_DIGIT_4 5\r
-# elif BOOST_PP_SLOT_TEMP_4 == 6\r
-#    define BOOST_PP_SLOT_1_DIGIT_4 6\r
-# elif BOOST_PP_SLOT_TEMP_4 == 7\r
-#    define BOOST_PP_SLOT_1_DIGIT_4 7\r
-# elif BOOST_PP_SLOT_TEMP_4 == 8\r
-#    define BOOST_PP_SLOT_1_DIGIT_4 8\r
-# elif BOOST_PP_SLOT_TEMP_4 == 9\r
-#    define BOOST_PP_SLOT_1_DIGIT_4 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_SLOT_1_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_SLOT_1_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_SLOT_1_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_SLOT_1_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_SLOT_1_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_SLOT_1_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_SLOT_1_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_SLOT_1_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_SLOT_1_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_SLOT_1_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_SLOT_1_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_SLOT_1_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_SLOT_1_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_SLOT_1_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_SLOT_1_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_SLOT_1_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_SLOT_1_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_SLOT_1_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_SLOT_1_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_SLOT_1_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_SLOT_1_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_SLOT_1_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_SLOT_1_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_SLOT_1_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_SLOT_1_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_SLOT_1_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_SLOT_1_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_SLOT_1_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_SLOT_1_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_SLOT_1_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_1_DIGIT_10\r
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_1_DIGIT_10, BOOST_PP_SLOT_1_DIGIT_9, BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
-# elif BOOST_PP_SLOT_1_DIGIT_9\r
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_1_DIGIT_9, BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
-# elif BOOST_PP_SLOT_1_DIGIT_8\r
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
-# elif BOOST_PP_SLOT_1_DIGIT_7\r
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
-# elif BOOST_PP_SLOT_1_DIGIT_6\r
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
-# elif BOOST_PP_SLOT_1_DIGIT_5\r
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
-# elif BOOST_PP_SLOT_1_DIGIT_4\r
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
-# elif BOOST_PP_SLOT_1_DIGIT_3\r
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
-# elif BOOST_PP_SLOT_1_DIGIT_2\r
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_1_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_SLOT_1
+#
+# undef BOOST_PP_SLOT_1_DIGIT_1
+# undef BOOST_PP_SLOT_1_DIGIT_2
+# undef BOOST_PP_SLOT_1_DIGIT_3
+# undef BOOST_PP_SLOT_1_DIGIT_4
+# undef BOOST_PP_SLOT_1_DIGIT_5
+# undef BOOST_PP_SLOT_1_DIGIT_6
+# undef BOOST_PP_SLOT_1_DIGIT_7
+# undef BOOST_PP_SLOT_1_DIGIT_8
+# undef BOOST_PP_SLOT_1_DIGIT_9
+# undef BOOST_PP_SLOT_1_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_10 == 0
+#    define BOOST_PP_SLOT_1_DIGIT_10 0
+# elif BOOST_PP_SLOT_TEMP_10 == 1
+#    define BOOST_PP_SLOT_1_DIGIT_10 1
+# elif BOOST_PP_SLOT_TEMP_10 == 2
+#    define BOOST_PP_SLOT_1_DIGIT_10 2
+# elif BOOST_PP_SLOT_TEMP_10 == 3
+#    define BOOST_PP_SLOT_1_DIGIT_10 3
+# elif BOOST_PP_SLOT_TEMP_10 == 4
+#    define BOOST_PP_SLOT_1_DIGIT_10 4
+# elif BOOST_PP_SLOT_TEMP_10 == 5
+#    define BOOST_PP_SLOT_1_DIGIT_10 5
+# elif BOOST_PP_SLOT_TEMP_10 == 6
+#    define BOOST_PP_SLOT_1_DIGIT_10 6
+# elif BOOST_PP_SLOT_TEMP_10 == 7
+#    define BOOST_PP_SLOT_1_DIGIT_10 7
+# elif BOOST_PP_SLOT_TEMP_10 == 8
+#    define BOOST_PP_SLOT_1_DIGIT_10 8
+# elif BOOST_PP_SLOT_TEMP_10 == 9
+#    define BOOST_PP_SLOT_1_DIGIT_10 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_9 == 0
+#    define BOOST_PP_SLOT_1_DIGIT_9 0
+# elif BOOST_PP_SLOT_TEMP_9 == 1
+#    define BOOST_PP_SLOT_1_DIGIT_9 1
+# elif BOOST_PP_SLOT_TEMP_9 == 2
+#    define BOOST_PP_SLOT_1_DIGIT_9 2
+# elif BOOST_PP_SLOT_TEMP_9 == 3
+#    define BOOST_PP_SLOT_1_DIGIT_9 3
+# elif BOOST_PP_SLOT_TEMP_9 == 4
+#    define BOOST_PP_SLOT_1_DIGIT_9 4
+# elif BOOST_PP_SLOT_TEMP_9 == 5
+#    define BOOST_PP_SLOT_1_DIGIT_9 5
+# elif BOOST_PP_SLOT_TEMP_9 == 6
+#    define BOOST_PP_SLOT_1_DIGIT_9 6
+# elif BOOST_PP_SLOT_TEMP_9 == 7
+#    define BOOST_PP_SLOT_1_DIGIT_9 7
+# elif BOOST_PP_SLOT_TEMP_9 == 8
+#    define BOOST_PP_SLOT_1_DIGIT_9 8
+# elif BOOST_PP_SLOT_TEMP_9 == 9
+#    define BOOST_PP_SLOT_1_DIGIT_9 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_8 == 0
+#    define BOOST_PP_SLOT_1_DIGIT_8 0
+# elif BOOST_PP_SLOT_TEMP_8 == 1
+#    define BOOST_PP_SLOT_1_DIGIT_8 1
+# elif BOOST_PP_SLOT_TEMP_8 == 2
+#    define BOOST_PP_SLOT_1_DIGIT_8 2
+# elif BOOST_PP_SLOT_TEMP_8 == 3
+#    define BOOST_PP_SLOT_1_DIGIT_8 3
+# elif BOOST_PP_SLOT_TEMP_8 == 4
+#    define BOOST_PP_SLOT_1_DIGIT_8 4
+# elif BOOST_PP_SLOT_TEMP_8 == 5
+#    define BOOST_PP_SLOT_1_DIGIT_8 5
+# elif BOOST_PP_SLOT_TEMP_8 == 6
+#    define BOOST_PP_SLOT_1_DIGIT_8 6
+# elif BOOST_PP_SLOT_TEMP_8 == 7
+#    define BOOST_PP_SLOT_1_DIGIT_8 7
+# elif BOOST_PP_SLOT_TEMP_8 == 8
+#    define BOOST_PP_SLOT_1_DIGIT_8 8
+# elif BOOST_PP_SLOT_TEMP_8 == 9
+#    define BOOST_PP_SLOT_1_DIGIT_8 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_7 == 0
+#    define BOOST_PP_SLOT_1_DIGIT_7 0
+# elif BOOST_PP_SLOT_TEMP_7 == 1
+#    define BOOST_PP_SLOT_1_DIGIT_7 1
+# elif BOOST_PP_SLOT_TEMP_7 == 2
+#    define BOOST_PP_SLOT_1_DIGIT_7 2
+# elif BOOST_PP_SLOT_TEMP_7 == 3
+#    define BOOST_PP_SLOT_1_DIGIT_7 3
+# elif BOOST_PP_SLOT_TEMP_7 == 4
+#    define BOOST_PP_SLOT_1_DIGIT_7 4
+# elif BOOST_PP_SLOT_TEMP_7 == 5
+#    define BOOST_PP_SLOT_1_DIGIT_7 5
+# elif BOOST_PP_SLOT_TEMP_7 == 6
+#    define BOOST_PP_SLOT_1_DIGIT_7 6
+# elif BOOST_PP_SLOT_TEMP_7 == 7
+#    define BOOST_PP_SLOT_1_DIGIT_7 7
+# elif BOOST_PP_SLOT_TEMP_7 == 8
+#    define BOOST_PP_SLOT_1_DIGIT_7 8
+# elif BOOST_PP_SLOT_TEMP_7 == 9
+#    define BOOST_PP_SLOT_1_DIGIT_7 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_6 == 0
+#    define BOOST_PP_SLOT_1_DIGIT_6 0
+# elif BOOST_PP_SLOT_TEMP_6 == 1
+#    define BOOST_PP_SLOT_1_DIGIT_6 1
+# elif BOOST_PP_SLOT_TEMP_6 == 2
+#    define BOOST_PP_SLOT_1_DIGIT_6 2
+# elif BOOST_PP_SLOT_TEMP_6 == 3
+#    define BOOST_PP_SLOT_1_DIGIT_6 3
+# elif BOOST_PP_SLOT_TEMP_6 == 4
+#    define BOOST_PP_SLOT_1_DIGIT_6 4
+# elif BOOST_PP_SLOT_TEMP_6 == 5
+#    define BOOST_PP_SLOT_1_DIGIT_6 5
+# elif BOOST_PP_SLOT_TEMP_6 == 6
+#    define BOOST_PP_SLOT_1_DIGIT_6 6
+# elif BOOST_PP_SLOT_TEMP_6 == 7
+#    define BOOST_PP_SLOT_1_DIGIT_6 7
+# elif BOOST_PP_SLOT_TEMP_6 == 8
+#    define BOOST_PP_SLOT_1_DIGIT_6 8
+# elif BOOST_PP_SLOT_TEMP_6 == 9
+#    define BOOST_PP_SLOT_1_DIGIT_6 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_5 == 0
+#    define BOOST_PP_SLOT_1_DIGIT_5 0
+# elif BOOST_PP_SLOT_TEMP_5 == 1
+#    define BOOST_PP_SLOT_1_DIGIT_5 1
+# elif BOOST_PP_SLOT_TEMP_5 == 2
+#    define BOOST_PP_SLOT_1_DIGIT_5 2
+# elif BOOST_PP_SLOT_TEMP_5 == 3
+#    define BOOST_PP_SLOT_1_DIGIT_5 3
+# elif BOOST_PP_SLOT_TEMP_5 == 4
+#    define BOOST_PP_SLOT_1_DIGIT_5 4
+# elif BOOST_PP_SLOT_TEMP_5 == 5
+#    define BOOST_PP_SLOT_1_DIGIT_5 5
+# elif BOOST_PP_SLOT_TEMP_5 == 6
+#    define BOOST_PP_SLOT_1_DIGIT_5 6
+# elif BOOST_PP_SLOT_TEMP_5 == 7
+#    define BOOST_PP_SLOT_1_DIGIT_5 7
+# elif BOOST_PP_SLOT_TEMP_5 == 8
+#    define BOOST_PP_SLOT_1_DIGIT_5 8
+# elif BOOST_PP_SLOT_TEMP_5 == 9
+#    define BOOST_PP_SLOT_1_DIGIT_5 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_4 == 0
+#    define BOOST_PP_SLOT_1_DIGIT_4 0
+# elif BOOST_PP_SLOT_TEMP_4 == 1
+#    define BOOST_PP_SLOT_1_DIGIT_4 1
+# elif BOOST_PP_SLOT_TEMP_4 == 2
+#    define BOOST_PP_SLOT_1_DIGIT_4 2
+# elif BOOST_PP_SLOT_TEMP_4 == 3
+#    define BOOST_PP_SLOT_1_DIGIT_4 3
+# elif BOOST_PP_SLOT_TEMP_4 == 4
+#    define BOOST_PP_SLOT_1_DIGIT_4 4
+# elif BOOST_PP_SLOT_TEMP_4 == 5
+#    define BOOST_PP_SLOT_1_DIGIT_4 5
+# elif BOOST_PP_SLOT_TEMP_4 == 6
+#    define BOOST_PP_SLOT_1_DIGIT_4 6
+# elif BOOST_PP_SLOT_TEMP_4 == 7
+#    define BOOST_PP_SLOT_1_DIGIT_4 7
+# elif BOOST_PP_SLOT_TEMP_4 == 8
+#    define BOOST_PP_SLOT_1_DIGIT_4 8
+# elif BOOST_PP_SLOT_TEMP_4 == 9
+#    define BOOST_PP_SLOT_1_DIGIT_4 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_SLOT_1_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_SLOT_1_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_SLOT_1_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_SLOT_1_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_SLOT_1_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_SLOT_1_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_SLOT_1_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_SLOT_1_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_SLOT_1_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_SLOT_1_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_SLOT_1_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_SLOT_1_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_SLOT_1_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_SLOT_1_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_SLOT_1_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_SLOT_1_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_SLOT_1_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_SLOT_1_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_SLOT_1_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_SLOT_1_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_SLOT_1_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_SLOT_1_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_SLOT_1_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_SLOT_1_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_SLOT_1_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_SLOT_1_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_SLOT_1_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_SLOT_1_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_SLOT_1_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_SLOT_1_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_SLOT_1_DIGIT_10
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_1_DIGIT_10, BOOST_PP_SLOT_1_DIGIT_9, BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
+# elif BOOST_PP_SLOT_1_DIGIT_9
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_1_DIGIT_9, BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
+# elif BOOST_PP_SLOT_1_DIGIT_8
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
+# elif BOOST_PP_SLOT_1_DIGIT_7
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
+# elif BOOST_PP_SLOT_1_DIGIT_6
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
+# elif BOOST_PP_SLOT_1_DIGIT_5
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
+# elif BOOST_PP_SLOT_1_DIGIT_4
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
+# elif BOOST_PP_SLOT_1_DIGIT_3
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
+# elif BOOST_PP_SLOT_1_DIGIT_2
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
+# else
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_1_DIGIT_1
+# endif
index 8eccc889ec71a82aeb882b0a27a4e48d7ac06454..5d5258c225822c5f8ead2894cf8315457bceb4fa 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_SLOT_2\r
-#\r
-# undef BOOST_PP_SLOT_2_DIGIT_1\r
-# undef BOOST_PP_SLOT_2_DIGIT_2\r
-# undef BOOST_PP_SLOT_2_DIGIT_3\r
-# undef BOOST_PP_SLOT_2_DIGIT_4\r
-# undef BOOST_PP_SLOT_2_DIGIT_5\r
-# undef BOOST_PP_SLOT_2_DIGIT_6\r
-# undef BOOST_PP_SLOT_2_DIGIT_7\r
-# undef BOOST_PP_SLOT_2_DIGIT_8\r
-# undef BOOST_PP_SLOT_2_DIGIT_9\r
-# undef BOOST_PP_SLOT_2_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_10 == 0\r
-#    define BOOST_PP_SLOT_2_DIGIT_10 0\r
-# elif BOOST_PP_SLOT_TEMP_10 == 1\r
-#    define BOOST_PP_SLOT_2_DIGIT_10 1\r
-# elif BOOST_PP_SLOT_TEMP_10 == 2\r
-#    define BOOST_PP_SLOT_2_DIGIT_10 2\r
-# elif BOOST_PP_SLOT_TEMP_10 == 3\r
-#    define BOOST_PP_SLOT_2_DIGIT_10 3\r
-# elif BOOST_PP_SLOT_TEMP_10 == 4\r
-#    define BOOST_PP_SLOT_2_DIGIT_10 4\r
-# elif BOOST_PP_SLOT_TEMP_10 == 5\r
-#    define BOOST_PP_SLOT_2_DIGIT_10 5\r
-# elif BOOST_PP_SLOT_TEMP_10 == 6\r
-#    define BOOST_PP_SLOT_2_DIGIT_10 6\r
-# elif BOOST_PP_SLOT_TEMP_10 == 7\r
-#    define BOOST_PP_SLOT_2_DIGIT_10 7\r
-# elif BOOST_PP_SLOT_TEMP_10 == 8\r
-#    define BOOST_PP_SLOT_2_DIGIT_10 8\r
-# elif BOOST_PP_SLOT_TEMP_10 == 9\r
-#    define BOOST_PP_SLOT_2_DIGIT_10 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_9 == 0\r
-#    define BOOST_PP_SLOT_2_DIGIT_9 0\r
-# elif BOOST_PP_SLOT_TEMP_9 == 1\r
-#    define BOOST_PP_SLOT_2_DIGIT_9 1\r
-# elif BOOST_PP_SLOT_TEMP_9 == 2\r
-#    define BOOST_PP_SLOT_2_DIGIT_9 2\r
-# elif BOOST_PP_SLOT_TEMP_9 == 3\r
-#    define BOOST_PP_SLOT_2_DIGIT_9 3\r
-# elif BOOST_PP_SLOT_TEMP_9 == 4\r
-#    define BOOST_PP_SLOT_2_DIGIT_9 4\r
-# elif BOOST_PP_SLOT_TEMP_9 == 5\r
-#    define BOOST_PP_SLOT_2_DIGIT_9 5\r
-# elif BOOST_PP_SLOT_TEMP_9 == 6\r
-#    define BOOST_PP_SLOT_2_DIGIT_9 6\r
-# elif BOOST_PP_SLOT_TEMP_9 == 7\r
-#    define BOOST_PP_SLOT_2_DIGIT_9 7\r
-# elif BOOST_PP_SLOT_TEMP_9 == 8\r
-#    define BOOST_PP_SLOT_2_DIGIT_9 8\r
-# elif BOOST_PP_SLOT_TEMP_9 == 9\r
-#    define BOOST_PP_SLOT_2_DIGIT_9 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_8 == 0\r
-#    define BOOST_PP_SLOT_2_DIGIT_8 0\r
-# elif BOOST_PP_SLOT_TEMP_8 == 1\r
-#    define BOOST_PP_SLOT_2_DIGIT_8 1\r
-# elif BOOST_PP_SLOT_TEMP_8 == 2\r
-#    define BOOST_PP_SLOT_2_DIGIT_8 2\r
-# elif BOOST_PP_SLOT_TEMP_8 == 3\r
-#    define BOOST_PP_SLOT_2_DIGIT_8 3\r
-# elif BOOST_PP_SLOT_TEMP_8 == 4\r
-#    define BOOST_PP_SLOT_2_DIGIT_8 4\r
-# elif BOOST_PP_SLOT_TEMP_8 == 5\r
-#    define BOOST_PP_SLOT_2_DIGIT_8 5\r
-# elif BOOST_PP_SLOT_TEMP_8 == 6\r
-#    define BOOST_PP_SLOT_2_DIGIT_8 6\r
-# elif BOOST_PP_SLOT_TEMP_8 == 7\r
-#    define BOOST_PP_SLOT_2_DIGIT_8 7\r
-# elif BOOST_PP_SLOT_TEMP_8 == 8\r
-#    define BOOST_PP_SLOT_2_DIGIT_8 8\r
-# elif BOOST_PP_SLOT_TEMP_8 == 9\r
-#    define BOOST_PP_SLOT_2_DIGIT_8 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_7 == 0\r
-#    define BOOST_PP_SLOT_2_DIGIT_7 0\r
-# elif BOOST_PP_SLOT_TEMP_7 == 1\r
-#    define BOOST_PP_SLOT_2_DIGIT_7 1\r
-# elif BOOST_PP_SLOT_TEMP_7 == 2\r
-#    define BOOST_PP_SLOT_2_DIGIT_7 2\r
-# elif BOOST_PP_SLOT_TEMP_7 == 3\r
-#    define BOOST_PP_SLOT_2_DIGIT_7 3\r
-# elif BOOST_PP_SLOT_TEMP_7 == 4\r
-#    define BOOST_PP_SLOT_2_DIGIT_7 4\r
-# elif BOOST_PP_SLOT_TEMP_7 == 5\r
-#    define BOOST_PP_SLOT_2_DIGIT_7 5\r
-# elif BOOST_PP_SLOT_TEMP_7 == 6\r
-#    define BOOST_PP_SLOT_2_DIGIT_7 6\r
-# elif BOOST_PP_SLOT_TEMP_7 == 7\r
-#    define BOOST_PP_SLOT_2_DIGIT_7 7\r
-# elif BOOST_PP_SLOT_TEMP_7 == 8\r
-#    define BOOST_PP_SLOT_2_DIGIT_7 8\r
-# elif BOOST_PP_SLOT_TEMP_7 == 9\r
-#    define BOOST_PP_SLOT_2_DIGIT_7 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_6 == 0\r
-#    define BOOST_PP_SLOT_2_DIGIT_6 0\r
-# elif BOOST_PP_SLOT_TEMP_6 == 1\r
-#    define BOOST_PP_SLOT_2_DIGIT_6 1\r
-# elif BOOST_PP_SLOT_TEMP_6 == 2\r
-#    define BOOST_PP_SLOT_2_DIGIT_6 2\r
-# elif BOOST_PP_SLOT_TEMP_6 == 3\r
-#    define BOOST_PP_SLOT_2_DIGIT_6 3\r
-# elif BOOST_PP_SLOT_TEMP_6 == 4\r
-#    define BOOST_PP_SLOT_2_DIGIT_6 4\r
-# elif BOOST_PP_SLOT_TEMP_6 == 5\r
-#    define BOOST_PP_SLOT_2_DIGIT_6 5\r
-# elif BOOST_PP_SLOT_TEMP_6 == 6\r
-#    define BOOST_PP_SLOT_2_DIGIT_6 6\r
-# elif BOOST_PP_SLOT_TEMP_6 == 7\r
-#    define BOOST_PP_SLOT_2_DIGIT_6 7\r
-# elif BOOST_PP_SLOT_TEMP_6 == 8\r
-#    define BOOST_PP_SLOT_2_DIGIT_6 8\r
-# elif BOOST_PP_SLOT_TEMP_6 == 9\r
-#    define BOOST_PP_SLOT_2_DIGIT_6 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_5 == 0\r
-#    define BOOST_PP_SLOT_2_DIGIT_5 0\r
-# elif BOOST_PP_SLOT_TEMP_5 == 1\r
-#    define BOOST_PP_SLOT_2_DIGIT_5 1\r
-# elif BOOST_PP_SLOT_TEMP_5 == 2\r
-#    define BOOST_PP_SLOT_2_DIGIT_5 2\r
-# elif BOOST_PP_SLOT_TEMP_5 == 3\r
-#    define BOOST_PP_SLOT_2_DIGIT_5 3\r
-# elif BOOST_PP_SLOT_TEMP_5 == 4\r
-#    define BOOST_PP_SLOT_2_DIGIT_5 4\r
-# elif BOOST_PP_SLOT_TEMP_5 == 5\r
-#    define BOOST_PP_SLOT_2_DIGIT_5 5\r
-# elif BOOST_PP_SLOT_TEMP_5 == 6\r
-#    define BOOST_PP_SLOT_2_DIGIT_5 6\r
-# elif BOOST_PP_SLOT_TEMP_5 == 7\r
-#    define BOOST_PP_SLOT_2_DIGIT_5 7\r
-# elif BOOST_PP_SLOT_TEMP_5 == 8\r
-#    define BOOST_PP_SLOT_2_DIGIT_5 8\r
-# elif BOOST_PP_SLOT_TEMP_5 == 9\r
-#    define BOOST_PP_SLOT_2_DIGIT_5 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_4 == 0\r
-#    define BOOST_PP_SLOT_2_DIGIT_4 0\r
-# elif BOOST_PP_SLOT_TEMP_4 == 1\r
-#    define BOOST_PP_SLOT_2_DIGIT_4 1\r
-# elif BOOST_PP_SLOT_TEMP_4 == 2\r
-#    define BOOST_PP_SLOT_2_DIGIT_4 2\r
-# elif BOOST_PP_SLOT_TEMP_4 == 3\r
-#    define BOOST_PP_SLOT_2_DIGIT_4 3\r
-# elif BOOST_PP_SLOT_TEMP_4 == 4\r
-#    define BOOST_PP_SLOT_2_DIGIT_4 4\r
-# elif BOOST_PP_SLOT_TEMP_4 == 5\r
-#    define BOOST_PP_SLOT_2_DIGIT_4 5\r
-# elif BOOST_PP_SLOT_TEMP_4 == 6\r
-#    define BOOST_PP_SLOT_2_DIGIT_4 6\r
-# elif BOOST_PP_SLOT_TEMP_4 == 7\r
-#    define BOOST_PP_SLOT_2_DIGIT_4 7\r
-# elif BOOST_PP_SLOT_TEMP_4 == 8\r
-#    define BOOST_PP_SLOT_2_DIGIT_4 8\r
-# elif BOOST_PP_SLOT_TEMP_4 == 9\r
-#    define BOOST_PP_SLOT_2_DIGIT_4 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_SLOT_2_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_SLOT_2_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_SLOT_2_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_SLOT_2_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_SLOT_2_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_SLOT_2_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_SLOT_2_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_SLOT_2_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_SLOT_2_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_SLOT_2_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_SLOT_2_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_SLOT_2_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_SLOT_2_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_SLOT_2_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_SLOT_2_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_SLOT_2_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_SLOT_2_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_SLOT_2_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_SLOT_2_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_SLOT_2_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_SLOT_2_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_SLOT_2_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_SLOT_2_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_SLOT_2_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_SLOT_2_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_SLOT_2_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_SLOT_2_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_SLOT_2_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_SLOT_2_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_SLOT_2_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_2_DIGIT_10\r
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_2_DIGIT_10, BOOST_PP_SLOT_2_DIGIT_9, BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
-# elif BOOST_PP_SLOT_2_DIGIT_9\r
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_2_DIGIT_9, BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
-# elif BOOST_PP_SLOT_2_DIGIT_8\r
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
-# elif BOOST_PP_SLOT_2_DIGIT_7\r
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
-# elif BOOST_PP_SLOT_2_DIGIT_6\r
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
-# elif BOOST_PP_SLOT_2_DIGIT_5\r
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
-# elif BOOST_PP_SLOT_2_DIGIT_4\r
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
-# elif BOOST_PP_SLOT_2_DIGIT_3\r
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
-# elif BOOST_PP_SLOT_2_DIGIT_2\r
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_2_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_SLOT_2
+#
+# undef BOOST_PP_SLOT_2_DIGIT_1
+# undef BOOST_PP_SLOT_2_DIGIT_2
+# undef BOOST_PP_SLOT_2_DIGIT_3
+# undef BOOST_PP_SLOT_2_DIGIT_4
+# undef BOOST_PP_SLOT_2_DIGIT_5
+# undef BOOST_PP_SLOT_2_DIGIT_6
+# undef BOOST_PP_SLOT_2_DIGIT_7
+# undef BOOST_PP_SLOT_2_DIGIT_8
+# undef BOOST_PP_SLOT_2_DIGIT_9
+# undef BOOST_PP_SLOT_2_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_10 == 0
+#    define BOOST_PP_SLOT_2_DIGIT_10 0
+# elif BOOST_PP_SLOT_TEMP_10 == 1
+#    define BOOST_PP_SLOT_2_DIGIT_10 1
+# elif BOOST_PP_SLOT_TEMP_10 == 2
+#    define BOOST_PP_SLOT_2_DIGIT_10 2
+# elif BOOST_PP_SLOT_TEMP_10 == 3
+#    define BOOST_PP_SLOT_2_DIGIT_10 3
+# elif BOOST_PP_SLOT_TEMP_10 == 4
+#    define BOOST_PP_SLOT_2_DIGIT_10 4
+# elif BOOST_PP_SLOT_TEMP_10 == 5
+#    define BOOST_PP_SLOT_2_DIGIT_10 5
+# elif BOOST_PP_SLOT_TEMP_10 == 6
+#    define BOOST_PP_SLOT_2_DIGIT_10 6
+# elif BOOST_PP_SLOT_TEMP_10 == 7
+#    define BOOST_PP_SLOT_2_DIGIT_10 7
+# elif BOOST_PP_SLOT_TEMP_10 == 8
+#    define BOOST_PP_SLOT_2_DIGIT_10 8
+# elif BOOST_PP_SLOT_TEMP_10 == 9
+#    define BOOST_PP_SLOT_2_DIGIT_10 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_9 == 0
+#    define BOOST_PP_SLOT_2_DIGIT_9 0
+# elif BOOST_PP_SLOT_TEMP_9 == 1
+#    define BOOST_PP_SLOT_2_DIGIT_9 1
+# elif BOOST_PP_SLOT_TEMP_9 == 2
+#    define BOOST_PP_SLOT_2_DIGIT_9 2
+# elif BOOST_PP_SLOT_TEMP_9 == 3
+#    define BOOST_PP_SLOT_2_DIGIT_9 3
+# elif BOOST_PP_SLOT_TEMP_9 == 4
+#    define BOOST_PP_SLOT_2_DIGIT_9 4
+# elif BOOST_PP_SLOT_TEMP_9 == 5
+#    define BOOST_PP_SLOT_2_DIGIT_9 5
+# elif BOOST_PP_SLOT_TEMP_9 == 6
+#    define BOOST_PP_SLOT_2_DIGIT_9 6
+# elif BOOST_PP_SLOT_TEMP_9 == 7
+#    define BOOST_PP_SLOT_2_DIGIT_9 7
+# elif BOOST_PP_SLOT_TEMP_9 == 8
+#    define BOOST_PP_SLOT_2_DIGIT_9 8
+# elif BOOST_PP_SLOT_TEMP_9 == 9
+#    define BOOST_PP_SLOT_2_DIGIT_9 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_8 == 0
+#    define BOOST_PP_SLOT_2_DIGIT_8 0
+# elif BOOST_PP_SLOT_TEMP_8 == 1
+#    define BOOST_PP_SLOT_2_DIGIT_8 1
+# elif BOOST_PP_SLOT_TEMP_8 == 2
+#    define BOOST_PP_SLOT_2_DIGIT_8 2
+# elif BOOST_PP_SLOT_TEMP_8 == 3
+#    define BOOST_PP_SLOT_2_DIGIT_8 3
+# elif BOOST_PP_SLOT_TEMP_8 == 4
+#    define BOOST_PP_SLOT_2_DIGIT_8 4
+# elif BOOST_PP_SLOT_TEMP_8 == 5
+#    define BOOST_PP_SLOT_2_DIGIT_8 5
+# elif BOOST_PP_SLOT_TEMP_8 == 6
+#    define BOOST_PP_SLOT_2_DIGIT_8 6
+# elif BOOST_PP_SLOT_TEMP_8 == 7
+#    define BOOST_PP_SLOT_2_DIGIT_8 7
+# elif BOOST_PP_SLOT_TEMP_8 == 8
+#    define BOOST_PP_SLOT_2_DIGIT_8 8
+# elif BOOST_PP_SLOT_TEMP_8 == 9
+#    define BOOST_PP_SLOT_2_DIGIT_8 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_7 == 0
+#    define BOOST_PP_SLOT_2_DIGIT_7 0
+# elif BOOST_PP_SLOT_TEMP_7 == 1
+#    define BOOST_PP_SLOT_2_DIGIT_7 1
+# elif BOOST_PP_SLOT_TEMP_7 == 2
+#    define BOOST_PP_SLOT_2_DIGIT_7 2
+# elif BOOST_PP_SLOT_TEMP_7 == 3
+#    define BOOST_PP_SLOT_2_DIGIT_7 3
+# elif BOOST_PP_SLOT_TEMP_7 == 4
+#    define BOOST_PP_SLOT_2_DIGIT_7 4
+# elif BOOST_PP_SLOT_TEMP_7 == 5
+#    define BOOST_PP_SLOT_2_DIGIT_7 5
+# elif BOOST_PP_SLOT_TEMP_7 == 6
+#    define BOOST_PP_SLOT_2_DIGIT_7 6
+# elif BOOST_PP_SLOT_TEMP_7 == 7
+#    define BOOST_PP_SLOT_2_DIGIT_7 7
+# elif BOOST_PP_SLOT_TEMP_7 == 8
+#    define BOOST_PP_SLOT_2_DIGIT_7 8
+# elif BOOST_PP_SLOT_TEMP_7 == 9
+#    define BOOST_PP_SLOT_2_DIGIT_7 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_6 == 0
+#    define BOOST_PP_SLOT_2_DIGIT_6 0
+# elif BOOST_PP_SLOT_TEMP_6 == 1
+#    define BOOST_PP_SLOT_2_DIGIT_6 1
+# elif BOOST_PP_SLOT_TEMP_6 == 2
+#    define BOOST_PP_SLOT_2_DIGIT_6 2
+# elif BOOST_PP_SLOT_TEMP_6 == 3
+#    define BOOST_PP_SLOT_2_DIGIT_6 3
+# elif BOOST_PP_SLOT_TEMP_6 == 4
+#    define BOOST_PP_SLOT_2_DIGIT_6 4
+# elif BOOST_PP_SLOT_TEMP_6 == 5
+#    define BOOST_PP_SLOT_2_DIGIT_6 5
+# elif BOOST_PP_SLOT_TEMP_6 == 6
+#    define BOOST_PP_SLOT_2_DIGIT_6 6
+# elif BOOST_PP_SLOT_TEMP_6 == 7
+#    define BOOST_PP_SLOT_2_DIGIT_6 7
+# elif BOOST_PP_SLOT_TEMP_6 == 8
+#    define BOOST_PP_SLOT_2_DIGIT_6 8
+# elif BOOST_PP_SLOT_TEMP_6 == 9
+#    define BOOST_PP_SLOT_2_DIGIT_6 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_5 == 0
+#    define BOOST_PP_SLOT_2_DIGIT_5 0
+# elif BOOST_PP_SLOT_TEMP_5 == 1
+#    define BOOST_PP_SLOT_2_DIGIT_5 1
+# elif BOOST_PP_SLOT_TEMP_5 == 2
+#    define BOOST_PP_SLOT_2_DIGIT_5 2
+# elif BOOST_PP_SLOT_TEMP_5 == 3
+#    define BOOST_PP_SLOT_2_DIGIT_5 3
+# elif BOOST_PP_SLOT_TEMP_5 == 4
+#    define BOOST_PP_SLOT_2_DIGIT_5 4
+# elif BOOST_PP_SLOT_TEMP_5 == 5
+#    define BOOST_PP_SLOT_2_DIGIT_5 5
+# elif BOOST_PP_SLOT_TEMP_5 == 6
+#    define BOOST_PP_SLOT_2_DIGIT_5 6
+# elif BOOST_PP_SLOT_TEMP_5 == 7
+#    define BOOST_PP_SLOT_2_DIGIT_5 7
+# elif BOOST_PP_SLOT_TEMP_5 == 8
+#    define BOOST_PP_SLOT_2_DIGIT_5 8
+# elif BOOST_PP_SLOT_TEMP_5 == 9
+#    define BOOST_PP_SLOT_2_DIGIT_5 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_4 == 0
+#    define BOOST_PP_SLOT_2_DIGIT_4 0
+# elif BOOST_PP_SLOT_TEMP_4 == 1
+#    define BOOST_PP_SLOT_2_DIGIT_4 1
+# elif BOOST_PP_SLOT_TEMP_4 == 2
+#    define BOOST_PP_SLOT_2_DIGIT_4 2
+# elif BOOST_PP_SLOT_TEMP_4 == 3
+#    define BOOST_PP_SLOT_2_DIGIT_4 3
+# elif BOOST_PP_SLOT_TEMP_4 == 4
+#    define BOOST_PP_SLOT_2_DIGIT_4 4
+# elif BOOST_PP_SLOT_TEMP_4 == 5
+#    define BOOST_PP_SLOT_2_DIGIT_4 5
+# elif BOOST_PP_SLOT_TEMP_4 == 6
+#    define BOOST_PP_SLOT_2_DIGIT_4 6
+# elif BOOST_PP_SLOT_TEMP_4 == 7
+#    define BOOST_PP_SLOT_2_DIGIT_4 7
+# elif BOOST_PP_SLOT_TEMP_4 == 8
+#    define BOOST_PP_SLOT_2_DIGIT_4 8
+# elif BOOST_PP_SLOT_TEMP_4 == 9
+#    define BOOST_PP_SLOT_2_DIGIT_4 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_SLOT_2_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_SLOT_2_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_SLOT_2_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_SLOT_2_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_SLOT_2_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_SLOT_2_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_SLOT_2_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_SLOT_2_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_SLOT_2_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_SLOT_2_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_SLOT_2_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_SLOT_2_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_SLOT_2_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_SLOT_2_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_SLOT_2_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_SLOT_2_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_SLOT_2_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_SLOT_2_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_SLOT_2_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_SLOT_2_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_SLOT_2_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_SLOT_2_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_SLOT_2_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_SLOT_2_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_SLOT_2_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_SLOT_2_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_SLOT_2_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_SLOT_2_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_SLOT_2_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_SLOT_2_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_SLOT_2_DIGIT_10
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_2_DIGIT_10, BOOST_PP_SLOT_2_DIGIT_9, BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
+# elif BOOST_PP_SLOT_2_DIGIT_9
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_2_DIGIT_9, BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
+# elif BOOST_PP_SLOT_2_DIGIT_8
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
+# elif BOOST_PP_SLOT_2_DIGIT_7
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
+# elif BOOST_PP_SLOT_2_DIGIT_6
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
+# elif BOOST_PP_SLOT_2_DIGIT_5
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
+# elif BOOST_PP_SLOT_2_DIGIT_4
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
+# elif BOOST_PP_SLOT_2_DIGIT_3
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
+# elif BOOST_PP_SLOT_2_DIGIT_2
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
+# else
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_2_DIGIT_1
+# endif
index 2f29ac32cef90c5d1fea8b0252ff8054bfd9ce97..005cf219005203a00ad4e9335870b0f5d8288356 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_SLOT_3\r
-#\r
-# undef BOOST_PP_SLOT_3_DIGIT_1\r
-# undef BOOST_PP_SLOT_3_DIGIT_2\r
-# undef BOOST_PP_SLOT_3_DIGIT_3\r
-# undef BOOST_PP_SLOT_3_DIGIT_4\r
-# undef BOOST_PP_SLOT_3_DIGIT_5\r
-# undef BOOST_PP_SLOT_3_DIGIT_6\r
-# undef BOOST_PP_SLOT_3_DIGIT_7\r
-# undef BOOST_PP_SLOT_3_DIGIT_8\r
-# undef BOOST_PP_SLOT_3_DIGIT_9\r
-# undef BOOST_PP_SLOT_3_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_10 == 0\r
-#    define BOOST_PP_SLOT_3_DIGIT_10 0\r
-# elif BOOST_PP_SLOT_TEMP_10 == 1\r
-#    define BOOST_PP_SLOT_3_DIGIT_10 1\r
-# elif BOOST_PP_SLOT_TEMP_10 == 2\r
-#    define BOOST_PP_SLOT_3_DIGIT_10 2\r
-# elif BOOST_PP_SLOT_TEMP_10 == 3\r
-#    define BOOST_PP_SLOT_3_DIGIT_10 3\r
-# elif BOOST_PP_SLOT_TEMP_10 == 4\r
-#    define BOOST_PP_SLOT_3_DIGIT_10 4\r
-# elif BOOST_PP_SLOT_TEMP_10 == 5\r
-#    define BOOST_PP_SLOT_3_DIGIT_10 5\r
-# elif BOOST_PP_SLOT_TEMP_10 == 6\r
-#    define BOOST_PP_SLOT_3_DIGIT_10 6\r
-# elif BOOST_PP_SLOT_TEMP_10 == 7\r
-#    define BOOST_PP_SLOT_3_DIGIT_10 7\r
-# elif BOOST_PP_SLOT_TEMP_10 == 8\r
-#    define BOOST_PP_SLOT_3_DIGIT_10 8\r
-# elif BOOST_PP_SLOT_TEMP_10 == 9\r
-#    define BOOST_PP_SLOT_3_DIGIT_10 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_9 == 0\r
-#    define BOOST_PP_SLOT_3_DIGIT_9 0\r
-# elif BOOST_PP_SLOT_TEMP_9 == 1\r
-#    define BOOST_PP_SLOT_3_DIGIT_9 1\r
-# elif BOOST_PP_SLOT_TEMP_9 == 2\r
-#    define BOOST_PP_SLOT_3_DIGIT_9 2\r
-# elif BOOST_PP_SLOT_TEMP_9 == 3\r
-#    define BOOST_PP_SLOT_3_DIGIT_9 3\r
-# elif BOOST_PP_SLOT_TEMP_9 == 4\r
-#    define BOOST_PP_SLOT_3_DIGIT_9 4\r
-# elif BOOST_PP_SLOT_TEMP_9 == 5\r
-#    define BOOST_PP_SLOT_3_DIGIT_9 5\r
-# elif BOOST_PP_SLOT_TEMP_9 == 6\r
-#    define BOOST_PP_SLOT_3_DIGIT_9 6\r
-# elif BOOST_PP_SLOT_TEMP_9 == 7\r
-#    define BOOST_PP_SLOT_3_DIGIT_9 7\r
-# elif BOOST_PP_SLOT_TEMP_9 == 8\r
-#    define BOOST_PP_SLOT_3_DIGIT_9 8\r
-# elif BOOST_PP_SLOT_TEMP_9 == 9\r
-#    define BOOST_PP_SLOT_3_DIGIT_9 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_8 == 0\r
-#    define BOOST_PP_SLOT_3_DIGIT_8 0\r
-# elif BOOST_PP_SLOT_TEMP_8 == 1\r
-#    define BOOST_PP_SLOT_3_DIGIT_8 1\r
-# elif BOOST_PP_SLOT_TEMP_8 == 2\r
-#    define BOOST_PP_SLOT_3_DIGIT_8 2\r
-# elif BOOST_PP_SLOT_TEMP_8 == 3\r
-#    define BOOST_PP_SLOT_3_DIGIT_8 3\r
-# elif BOOST_PP_SLOT_TEMP_8 == 4\r
-#    define BOOST_PP_SLOT_3_DIGIT_8 4\r
-# elif BOOST_PP_SLOT_TEMP_8 == 5\r
-#    define BOOST_PP_SLOT_3_DIGIT_8 5\r
-# elif BOOST_PP_SLOT_TEMP_8 == 6\r
-#    define BOOST_PP_SLOT_3_DIGIT_8 6\r
-# elif BOOST_PP_SLOT_TEMP_8 == 7\r
-#    define BOOST_PP_SLOT_3_DIGIT_8 7\r
-# elif BOOST_PP_SLOT_TEMP_8 == 8\r
-#    define BOOST_PP_SLOT_3_DIGIT_8 8\r
-# elif BOOST_PP_SLOT_TEMP_8 == 9\r
-#    define BOOST_PP_SLOT_3_DIGIT_8 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_7 == 0\r
-#    define BOOST_PP_SLOT_3_DIGIT_7 0\r
-# elif BOOST_PP_SLOT_TEMP_7 == 1\r
-#    define BOOST_PP_SLOT_3_DIGIT_7 1\r
-# elif BOOST_PP_SLOT_TEMP_7 == 2\r
-#    define BOOST_PP_SLOT_3_DIGIT_7 2\r
-# elif BOOST_PP_SLOT_TEMP_7 == 3\r
-#    define BOOST_PP_SLOT_3_DIGIT_7 3\r
-# elif BOOST_PP_SLOT_TEMP_7 == 4\r
-#    define BOOST_PP_SLOT_3_DIGIT_7 4\r
-# elif BOOST_PP_SLOT_TEMP_7 == 5\r
-#    define BOOST_PP_SLOT_3_DIGIT_7 5\r
-# elif BOOST_PP_SLOT_TEMP_7 == 6\r
-#    define BOOST_PP_SLOT_3_DIGIT_7 6\r
-# elif BOOST_PP_SLOT_TEMP_7 == 7\r
-#    define BOOST_PP_SLOT_3_DIGIT_7 7\r
-# elif BOOST_PP_SLOT_TEMP_7 == 8\r
-#    define BOOST_PP_SLOT_3_DIGIT_7 8\r
-# elif BOOST_PP_SLOT_TEMP_7 == 9\r
-#    define BOOST_PP_SLOT_3_DIGIT_7 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_6 == 0\r
-#    define BOOST_PP_SLOT_3_DIGIT_6 0\r
-# elif BOOST_PP_SLOT_TEMP_6 == 1\r
-#    define BOOST_PP_SLOT_3_DIGIT_6 1\r
-# elif BOOST_PP_SLOT_TEMP_6 == 2\r
-#    define BOOST_PP_SLOT_3_DIGIT_6 2\r
-# elif BOOST_PP_SLOT_TEMP_6 == 3\r
-#    define BOOST_PP_SLOT_3_DIGIT_6 3\r
-# elif BOOST_PP_SLOT_TEMP_6 == 4\r
-#    define BOOST_PP_SLOT_3_DIGIT_6 4\r
-# elif BOOST_PP_SLOT_TEMP_6 == 5\r
-#    define BOOST_PP_SLOT_3_DIGIT_6 5\r
-# elif BOOST_PP_SLOT_TEMP_6 == 6\r
-#    define BOOST_PP_SLOT_3_DIGIT_6 6\r
-# elif BOOST_PP_SLOT_TEMP_6 == 7\r
-#    define BOOST_PP_SLOT_3_DIGIT_6 7\r
-# elif BOOST_PP_SLOT_TEMP_6 == 8\r
-#    define BOOST_PP_SLOT_3_DIGIT_6 8\r
-# elif BOOST_PP_SLOT_TEMP_6 == 9\r
-#    define BOOST_PP_SLOT_3_DIGIT_6 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_5 == 0\r
-#    define BOOST_PP_SLOT_3_DIGIT_5 0\r
-# elif BOOST_PP_SLOT_TEMP_5 == 1\r
-#    define BOOST_PP_SLOT_3_DIGIT_5 1\r
-# elif BOOST_PP_SLOT_TEMP_5 == 2\r
-#    define BOOST_PP_SLOT_3_DIGIT_5 2\r
-# elif BOOST_PP_SLOT_TEMP_5 == 3\r
-#    define BOOST_PP_SLOT_3_DIGIT_5 3\r
-# elif BOOST_PP_SLOT_TEMP_5 == 4\r
-#    define BOOST_PP_SLOT_3_DIGIT_5 4\r
-# elif BOOST_PP_SLOT_TEMP_5 == 5\r
-#    define BOOST_PP_SLOT_3_DIGIT_5 5\r
-# elif BOOST_PP_SLOT_TEMP_5 == 6\r
-#    define BOOST_PP_SLOT_3_DIGIT_5 6\r
-# elif BOOST_PP_SLOT_TEMP_5 == 7\r
-#    define BOOST_PP_SLOT_3_DIGIT_5 7\r
-# elif BOOST_PP_SLOT_TEMP_5 == 8\r
-#    define BOOST_PP_SLOT_3_DIGIT_5 8\r
-# elif BOOST_PP_SLOT_TEMP_5 == 9\r
-#    define BOOST_PP_SLOT_3_DIGIT_5 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_4 == 0\r
-#    define BOOST_PP_SLOT_3_DIGIT_4 0\r
-# elif BOOST_PP_SLOT_TEMP_4 == 1\r
-#    define BOOST_PP_SLOT_3_DIGIT_4 1\r
-# elif BOOST_PP_SLOT_TEMP_4 == 2\r
-#    define BOOST_PP_SLOT_3_DIGIT_4 2\r
-# elif BOOST_PP_SLOT_TEMP_4 == 3\r
-#    define BOOST_PP_SLOT_3_DIGIT_4 3\r
-# elif BOOST_PP_SLOT_TEMP_4 == 4\r
-#    define BOOST_PP_SLOT_3_DIGIT_4 4\r
-# elif BOOST_PP_SLOT_TEMP_4 == 5\r
-#    define BOOST_PP_SLOT_3_DIGIT_4 5\r
-# elif BOOST_PP_SLOT_TEMP_4 == 6\r
-#    define BOOST_PP_SLOT_3_DIGIT_4 6\r
-# elif BOOST_PP_SLOT_TEMP_4 == 7\r
-#    define BOOST_PP_SLOT_3_DIGIT_4 7\r
-# elif BOOST_PP_SLOT_TEMP_4 == 8\r
-#    define BOOST_PP_SLOT_3_DIGIT_4 8\r
-# elif BOOST_PP_SLOT_TEMP_4 == 9\r
-#    define BOOST_PP_SLOT_3_DIGIT_4 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_SLOT_3_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_SLOT_3_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_SLOT_3_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_SLOT_3_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_SLOT_3_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_SLOT_3_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_SLOT_3_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_SLOT_3_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_SLOT_3_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_SLOT_3_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_SLOT_3_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_SLOT_3_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_SLOT_3_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_SLOT_3_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_SLOT_3_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_SLOT_3_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_SLOT_3_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_SLOT_3_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_SLOT_3_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_SLOT_3_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_SLOT_3_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_SLOT_3_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_SLOT_3_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_SLOT_3_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_SLOT_3_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_SLOT_3_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_SLOT_3_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_SLOT_3_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_SLOT_3_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_SLOT_3_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_3_DIGIT_10\r
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_3_DIGIT_10, BOOST_PP_SLOT_3_DIGIT_9, BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
-# elif BOOST_PP_SLOT_3_DIGIT_9\r
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_3_DIGIT_9, BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
-# elif BOOST_PP_SLOT_3_DIGIT_8\r
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
-# elif BOOST_PP_SLOT_3_DIGIT_7\r
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
-# elif BOOST_PP_SLOT_3_DIGIT_6\r
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
-# elif BOOST_PP_SLOT_3_DIGIT_5\r
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
-# elif BOOST_PP_SLOT_3_DIGIT_4\r
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
-# elif BOOST_PP_SLOT_3_DIGIT_3\r
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
-# elif BOOST_PP_SLOT_3_DIGIT_2\r
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_3_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_SLOT_3
+#
+# undef BOOST_PP_SLOT_3_DIGIT_1
+# undef BOOST_PP_SLOT_3_DIGIT_2
+# undef BOOST_PP_SLOT_3_DIGIT_3
+# undef BOOST_PP_SLOT_3_DIGIT_4
+# undef BOOST_PP_SLOT_3_DIGIT_5
+# undef BOOST_PP_SLOT_3_DIGIT_6
+# undef BOOST_PP_SLOT_3_DIGIT_7
+# undef BOOST_PP_SLOT_3_DIGIT_8
+# undef BOOST_PP_SLOT_3_DIGIT_9
+# undef BOOST_PP_SLOT_3_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_10 == 0
+#    define BOOST_PP_SLOT_3_DIGIT_10 0
+# elif BOOST_PP_SLOT_TEMP_10 == 1
+#    define BOOST_PP_SLOT_3_DIGIT_10 1
+# elif BOOST_PP_SLOT_TEMP_10 == 2
+#    define BOOST_PP_SLOT_3_DIGIT_10 2
+# elif BOOST_PP_SLOT_TEMP_10 == 3
+#    define BOOST_PP_SLOT_3_DIGIT_10 3
+# elif BOOST_PP_SLOT_TEMP_10 == 4
+#    define BOOST_PP_SLOT_3_DIGIT_10 4
+# elif BOOST_PP_SLOT_TEMP_10 == 5
+#    define BOOST_PP_SLOT_3_DIGIT_10 5
+# elif BOOST_PP_SLOT_TEMP_10 == 6
+#    define BOOST_PP_SLOT_3_DIGIT_10 6
+# elif BOOST_PP_SLOT_TEMP_10 == 7
+#    define BOOST_PP_SLOT_3_DIGIT_10 7
+# elif BOOST_PP_SLOT_TEMP_10 == 8
+#    define BOOST_PP_SLOT_3_DIGIT_10 8
+# elif BOOST_PP_SLOT_TEMP_10 == 9
+#    define BOOST_PP_SLOT_3_DIGIT_10 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_9 == 0
+#    define BOOST_PP_SLOT_3_DIGIT_9 0
+# elif BOOST_PP_SLOT_TEMP_9 == 1
+#    define BOOST_PP_SLOT_3_DIGIT_9 1
+# elif BOOST_PP_SLOT_TEMP_9 == 2
+#    define BOOST_PP_SLOT_3_DIGIT_9 2
+# elif BOOST_PP_SLOT_TEMP_9 == 3
+#    define BOOST_PP_SLOT_3_DIGIT_9 3
+# elif BOOST_PP_SLOT_TEMP_9 == 4
+#    define BOOST_PP_SLOT_3_DIGIT_9 4
+# elif BOOST_PP_SLOT_TEMP_9 == 5
+#    define BOOST_PP_SLOT_3_DIGIT_9 5
+# elif BOOST_PP_SLOT_TEMP_9 == 6
+#    define BOOST_PP_SLOT_3_DIGIT_9 6
+# elif BOOST_PP_SLOT_TEMP_9 == 7
+#    define BOOST_PP_SLOT_3_DIGIT_9 7
+# elif BOOST_PP_SLOT_TEMP_9 == 8
+#    define BOOST_PP_SLOT_3_DIGIT_9 8
+# elif BOOST_PP_SLOT_TEMP_9 == 9
+#    define BOOST_PP_SLOT_3_DIGIT_9 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_8 == 0
+#    define BOOST_PP_SLOT_3_DIGIT_8 0
+# elif BOOST_PP_SLOT_TEMP_8 == 1
+#    define BOOST_PP_SLOT_3_DIGIT_8 1
+# elif BOOST_PP_SLOT_TEMP_8 == 2
+#    define BOOST_PP_SLOT_3_DIGIT_8 2
+# elif BOOST_PP_SLOT_TEMP_8 == 3
+#    define BOOST_PP_SLOT_3_DIGIT_8 3
+# elif BOOST_PP_SLOT_TEMP_8 == 4
+#    define BOOST_PP_SLOT_3_DIGIT_8 4
+# elif BOOST_PP_SLOT_TEMP_8 == 5
+#    define BOOST_PP_SLOT_3_DIGIT_8 5
+# elif BOOST_PP_SLOT_TEMP_8 == 6
+#    define BOOST_PP_SLOT_3_DIGIT_8 6
+# elif BOOST_PP_SLOT_TEMP_8 == 7
+#    define BOOST_PP_SLOT_3_DIGIT_8 7
+# elif BOOST_PP_SLOT_TEMP_8 == 8
+#    define BOOST_PP_SLOT_3_DIGIT_8 8
+# elif BOOST_PP_SLOT_TEMP_8 == 9
+#    define BOOST_PP_SLOT_3_DIGIT_8 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_7 == 0
+#    define BOOST_PP_SLOT_3_DIGIT_7 0
+# elif BOOST_PP_SLOT_TEMP_7 == 1
+#    define BOOST_PP_SLOT_3_DIGIT_7 1
+# elif BOOST_PP_SLOT_TEMP_7 == 2
+#    define BOOST_PP_SLOT_3_DIGIT_7 2
+# elif BOOST_PP_SLOT_TEMP_7 == 3
+#    define BOOST_PP_SLOT_3_DIGIT_7 3
+# elif BOOST_PP_SLOT_TEMP_7 == 4
+#    define BOOST_PP_SLOT_3_DIGIT_7 4
+# elif BOOST_PP_SLOT_TEMP_7 == 5
+#    define BOOST_PP_SLOT_3_DIGIT_7 5
+# elif BOOST_PP_SLOT_TEMP_7 == 6
+#    define BOOST_PP_SLOT_3_DIGIT_7 6
+# elif BOOST_PP_SLOT_TEMP_7 == 7
+#    define BOOST_PP_SLOT_3_DIGIT_7 7
+# elif BOOST_PP_SLOT_TEMP_7 == 8
+#    define BOOST_PP_SLOT_3_DIGIT_7 8
+# elif BOOST_PP_SLOT_TEMP_7 == 9
+#    define BOOST_PP_SLOT_3_DIGIT_7 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_6 == 0
+#    define BOOST_PP_SLOT_3_DIGIT_6 0
+# elif BOOST_PP_SLOT_TEMP_6 == 1
+#    define BOOST_PP_SLOT_3_DIGIT_6 1
+# elif BOOST_PP_SLOT_TEMP_6 == 2
+#    define BOOST_PP_SLOT_3_DIGIT_6 2
+# elif BOOST_PP_SLOT_TEMP_6 == 3
+#    define BOOST_PP_SLOT_3_DIGIT_6 3
+# elif BOOST_PP_SLOT_TEMP_6 == 4
+#    define BOOST_PP_SLOT_3_DIGIT_6 4
+# elif BOOST_PP_SLOT_TEMP_6 == 5
+#    define BOOST_PP_SLOT_3_DIGIT_6 5
+# elif BOOST_PP_SLOT_TEMP_6 == 6
+#    define BOOST_PP_SLOT_3_DIGIT_6 6
+# elif BOOST_PP_SLOT_TEMP_6 == 7
+#    define BOOST_PP_SLOT_3_DIGIT_6 7
+# elif BOOST_PP_SLOT_TEMP_6 == 8
+#    define BOOST_PP_SLOT_3_DIGIT_6 8
+# elif BOOST_PP_SLOT_TEMP_6 == 9
+#    define BOOST_PP_SLOT_3_DIGIT_6 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_5 == 0
+#    define BOOST_PP_SLOT_3_DIGIT_5 0
+# elif BOOST_PP_SLOT_TEMP_5 == 1
+#    define BOOST_PP_SLOT_3_DIGIT_5 1
+# elif BOOST_PP_SLOT_TEMP_5 == 2
+#    define BOOST_PP_SLOT_3_DIGIT_5 2
+# elif BOOST_PP_SLOT_TEMP_5 == 3
+#    define BOOST_PP_SLOT_3_DIGIT_5 3
+# elif BOOST_PP_SLOT_TEMP_5 == 4
+#    define BOOST_PP_SLOT_3_DIGIT_5 4
+# elif BOOST_PP_SLOT_TEMP_5 == 5
+#    define BOOST_PP_SLOT_3_DIGIT_5 5
+# elif BOOST_PP_SLOT_TEMP_5 == 6
+#    define BOOST_PP_SLOT_3_DIGIT_5 6
+# elif BOOST_PP_SLOT_TEMP_5 == 7
+#    define BOOST_PP_SLOT_3_DIGIT_5 7
+# elif BOOST_PP_SLOT_TEMP_5 == 8
+#    define BOOST_PP_SLOT_3_DIGIT_5 8
+# elif BOOST_PP_SLOT_TEMP_5 == 9
+#    define BOOST_PP_SLOT_3_DIGIT_5 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_4 == 0
+#    define BOOST_PP_SLOT_3_DIGIT_4 0
+# elif BOOST_PP_SLOT_TEMP_4 == 1
+#    define BOOST_PP_SLOT_3_DIGIT_4 1
+# elif BOOST_PP_SLOT_TEMP_4 == 2
+#    define BOOST_PP_SLOT_3_DIGIT_4 2
+# elif BOOST_PP_SLOT_TEMP_4 == 3
+#    define BOOST_PP_SLOT_3_DIGIT_4 3
+# elif BOOST_PP_SLOT_TEMP_4 == 4
+#    define BOOST_PP_SLOT_3_DIGIT_4 4
+# elif BOOST_PP_SLOT_TEMP_4 == 5
+#    define BOOST_PP_SLOT_3_DIGIT_4 5
+# elif BOOST_PP_SLOT_TEMP_4 == 6
+#    define BOOST_PP_SLOT_3_DIGIT_4 6
+# elif BOOST_PP_SLOT_TEMP_4 == 7
+#    define BOOST_PP_SLOT_3_DIGIT_4 7
+# elif BOOST_PP_SLOT_TEMP_4 == 8
+#    define BOOST_PP_SLOT_3_DIGIT_4 8
+# elif BOOST_PP_SLOT_TEMP_4 == 9
+#    define BOOST_PP_SLOT_3_DIGIT_4 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_SLOT_3_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_SLOT_3_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_SLOT_3_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_SLOT_3_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_SLOT_3_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_SLOT_3_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_SLOT_3_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_SLOT_3_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_SLOT_3_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_SLOT_3_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_SLOT_3_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_SLOT_3_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_SLOT_3_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_SLOT_3_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_SLOT_3_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_SLOT_3_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_SLOT_3_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_SLOT_3_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_SLOT_3_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_SLOT_3_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_SLOT_3_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_SLOT_3_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_SLOT_3_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_SLOT_3_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_SLOT_3_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_SLOT_3_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_SLOT_3_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_SLOT_3_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_SLOT_3_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_SLOT_3_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_SLOT_3_DIGIT_10
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_3_DIGIT_10, BOOST_PP_SLOT_3_DIGIT_9, BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
+# elif BOOST_PP_SLOT_3_DIGIT_9
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_3_DIGIT_9, BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
+# elif BOOST_PP_SLOT_3_DIGIT_8
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
+# elif BOOST_PP_SLOT_3_DIGIT_7
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
+# elif BOOST_PP_SLOT_3_DIGIT_6
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
+# elif BOOST_PP_SLOT_3_DIGIT_5
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
+# elif BOOST_PP_SLOT_3_DIGIT_4
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
+# elif BOOST_PP_SLOT_3_DIGIT_3
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
+# elif BOOST_PP_SLOT_3_DIGIT_2
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
+# else
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_3_DIGIT_1
+# endif
index ddcbb71784225ff6123d1a35c6fb094e16d8b896..9aa4d8ab8d9167e91eb0ea1ab9349d322ade45ce 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_SLOT_4\r
-#\r
-# undef BOOST_PP_SLOT_4_DIGIT_1\r
-# undef BOOST_PP_SLOT_4_DIGIT_2\r
-# undef BOOST_PP_SLOT_4_DIGIT_3\r
-# undef BOOST_PP_SLOT_4_DIGIT_4\r
-# undef BOOST_PP_SLOT_4_DIGIT_5\r
-# undef BOOST_PP_SLOT_4_DIGIT_6\r
-# undef BOOST_PP_SLOT_4_DIGIT_7\r
-# undef BOOST_PP_SLOT_4_DIGIT_8\r
-# undef BOOST_PP_SLOT_4_DIGIT_9\r
-# undef BOOST_PP_SLOT_4_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_10 == 0\r
-#    define BOOST_PP_SLOT_4_DIGIT_10 0\r
-# elif BOOST_PP_SLOT_TEMP_10 == 1\r
-#    define BOOST_PP_SLOT_4_DIGIT_10 1\r
-# elif BOOST_PP_SLOT_TEMP_10 == 2\r
-#    define BOOST_PP_SLOT_4_DIGIT_10 2\r
-# elif BOOST_PP_SLOT_TEMP_10 == 3\r
-#    define BOOST_PP_SLOT_4_DIGIT_10 3\r
-# elif BOOST_PP_SLOT_TEMP_10 == 4\r
-#    define BOOST_PP_SLOT_4_DIGIT_10 4\r
-# elif BOOST_PP_SLOT_TEMP_10 == 5\r
-#    define BOOST_PP_SLOT_4_DIGIT_10 5\r
-# elif BOOST_PP_SLOT_TEMP_10 == 6\r
-#    define BOOST_PP_SLOT_4_DIGIT_10 6\r
-# elif BOOST_PP_SLOT_TEMP_10 == 7\r
-#    define BOOST_PP_SLOT_4_DIGIT_10 7\r
-# elif BOOST_PP_SLOT_TEMP_10 == 8\r
-#    define BOOST_PP_SLOT_4_DIGIT_10 8\r
-# elif BOOST_PP_SLOT_TEMP_10 == 9\r
-#    define BOOST_PP_SLOT_4_DIGIT_10 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_9 == 0\r
-#    define BOOST_PP_SLOT_4_DIGIT_9 0\r
-# elif BOOST_PP_SLOT_TEMP_9 == 1\r
-#    define BOOST_PP_SLOT_4_DIGIT_9 1\r
-# elif BOOST_PP_SLOT_TEMP_9 == 2\r
-#    define BOOST_PP_SLOT_4_DIGIT_9 2\r
-# elif BOOST_PP_SLOT_TEMP_9 == 3\r
-#    define BOOST_PP_SLOT_4_DIGIT_9 3\r
-# elif BOOST_PP_SLOT_TEMP_9 == 4\r
-#    define BOOST_PP_SLOT_4_DIGIT_9 4\r
-# elif BOOST_PP_SLOT_TEMP_9 == 5\r
-#    define BOOST_PP_SLOT_4_DIGIT_9 5\r
-# elif BOOST_PP_SLOT_TEMP_9 == 6\r
-#    define BOOST_PP_SLOT_4_DIGIT_9 6\r
-# elif BOOST_PP_SLOT_TEMP_9 == 7\r
-#    define BOOST_PP_SLOT_4_DIGIT_9 7\r
-# elif BOOST_PP_SLOT_TEMP_9 == 8\r
-#    define BOOST_PP_SLOT_4_DIGIT_9 8\r
-# elif BOOST_PP_SLOT_TEMP_9 == 9\r
-#    define BOOST_PP_SLOT_4_DIGIT_9 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_8 == 0\r
-#    define BOOST_PP_SLOT_4_DIGIT_8 0\r
-# elif BOOST_PP_SLOT_TEMP_8 == 1\r
-#    define BOOST_PP_SLOT_4_DIGIT_8 1\r
-# elif BOOST_PP_SLOT_TEMP_8 == 2\r
-#    define BOOST_PP_SLOT_4_DIGIT_8 2\r
-# elif BOOST_PP_SLOT_TEMP_8 == 3\r
-#    define BOOST_PP_SLOT_4_DIGIT_8 3\r
-# elif BOOST_PP_SLOT_TEMP_8 == 4\r
-#    define BOOST_PP_SLOT_4_DIGIT_8 4\r
-# elif BOOST_PP_SLOT_TEMP_8 == 5\r
-#    define BOOST_PP_SLOT_4_DIGIT_8 5\r
-# elif BOOST_PP_SLOT_TEMP_8 == 6\r
-#    define BOOST_PP_SLOT_4_DIGIT_8 6\r
-# elif BOOST_PP_SLOT_TEMP_8 == 7\r
-#    define BOOST_PP_SLOT_4_DIGIT_8 7\r
-# elif BOOST_PP_SLOT_TEMP_8 == 8\r
-#    define BOOST_PP_SLOT_4_DIGIT_8 8\r
-# elif BOOST_PP_SLOT_TEMP_8 == 9\r
-#    define BOOST_PP_SLOT_4_DIGIT_8 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_7 == 0\r
-#    define BOOST_PP_SLOT_4_DIGIT_7 0\r
-# elif BOOST_PP_SLOT_TEMP_7 == 1\r
-#    define BOOST_PP_SLOT_4_DIGIT_7 1\r
-# elif BOOST_PP_SLOT_TEMP_7 == 2\r
-#    define BOOST_PP_SLOT_4_DIGIT_7 2\r
-# elif BOOST_PP_SLOT_TEMP_7 == 3\r
-#    define BOOST_PP_SLOT_4_DIGIT_7 3\r
-# elif BOOST_PP_SLOT_TEMP_7 == 4\r
-#    define BOOST_PP_SLOT_4_DIGIT_7 4\r
-# elif BOOST_PP_SLOT_TEMP_7 == 5\r
-#    define BOOST_PP_SLOT_4_DIGIT_7 5\r
-# elif BOOST_PP_SLOT_TEMP_7 == 6\r
-#    define BOOST_PP_SLOT_4_DIGIT_7 6\r
-# elif BOOST_PP_SLOT_TEMP_7 == 7\r
-#    define BOOST_PP_SLOT_4_DIGIT_7 7\r
-# elif BOOST_PP_SLOT_TEMP_7 == 8\r
-#    define BOOST_PP_SLOT_4_DIGIT_7 8\r
-# elif BOOST_PP_SLOT_TEMP_7 == 9\r
-#    define BOOST_PP_SLOT_4_DIGIT_7 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_6 == 0\r
-#    define BOOST_PP_SLOT_4_DIGIT_6 0\r
-# elif BOOST_PP_SLOT_TEMP_6 == 1\r
-#    define BOOST_PP_SLOT_4_DIGIT_6 1\r
-# elif BOOST_PP_SLOT_TEMP_6 == 2\r
-#    define BOOST_PP_SLOT_4_DIGIT_6 2\r
-# elif BOOST_PP_SLOT_TEMP_6 == 3\r
-#    define BOOST_PP_SLOT_4_DIGIT_6 3\r
-# elif BOOST_PP_SLOT_TEMP_6 == 4\r
-#    define BOOST_PP_SLOT_4_DIGIT_6 4\r
-# elif BOOST_PP_SLOT_TEMP_6 == 5\r
-#    define BOOST_PP_SLOT_4_DIGIT_6 5\r
-# elif BOOST_PP_SLOT_TEMP_6 == 6\r
-#    define BOOST_PP_SLOT_4_DIGIT_6 6\r
-# elif BOOST_PP_SLOT_TEMP_6 == 7\r
-#    define BOOST_PP_SLOT_4_DIGIT_6 7\r
-# elif BOOST_PP_SLOT_TEMP_6 == 8\r
-#    define BOOST_PP_SLOT_4_DIGIT_6 8\r
-# elif BOOST_PP_SLOT_TEMP_6 == 9\r
-#    define BOOST_PP_SLOT_4_DIGIT_6 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_5 == 0\r
-#    define BOOST_PP_SLOT_4_DIGIT_5 0\r
-# elif BOOST_PP_SLOT_TEMP_5 == 1\r
-#    define BOOST_PP_SLOT_4_DIGIT_5 1\r
-# elif BOOST_PP_SLOT_TEMP_5 == 2\r
-#    define BOOST_PP_SLOT_4_DIGIT_5 2\r
-# elif BOOST_PP_SLOT_TEMP_5 == 3\r
-#    define BOOST_PP_SLOT_4_DIGIT_5 3\r
-# elif BOOST_PP_SLOT_TEMP_5 == 4\r
-#    define BOOST_PP_SLOT_4_DIGIT_5 4\r
-# elif BOOST_PP_SLOT_TEMP_5 == 5\r
-#    define BOOST_PP_SLOT_4_DIGIT_5 5\r
-# elif BOOST_PP_SLOT_TEMP_5 == 6\r
-#    define BOOST_PP_SLOT_4_DIGIT_5 6\r
-# elif BOOST_PP_SLOT_TEMP_5 == 7\r
-#    define BOOST_PP_SLOT_4_DIGIT_5 7\r
-# elif BOOST_PP_SLOT_TEMP_5 == 8\r
-#    define BOOST_PP_SLOT_4_DIGIT_5 8\r
-# elif BOOST_PP_SLOT_TEMP_5 == 9\r
-#    define BOOST_PP_SLOT_4_DIGIT_5 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_4 == 0\r
-#    define BOOST_PP_SLOT_4_DIGIT_4 0\r
-# elif BOOST_PP_SLOT_TEMP_4 == 1\r
-#    define BOOST_PP_SLOT_4_DIGIT_4 1\r
-# elif BOOST_PP_SLOT_TEMP_4 == 2\r
-#    define BOOST_PP_SLOT_4_DIGIT_4 2\r
-# elif BOOST_PP_SLOT_TEMP_4 == 3\r
-#    define BOOST_PP_SLOT_4_DIGIT_4 3\r
-# elif BOOST_PP_SLOT_TEMP_4 == 4\r
-#    define BOOST_PP_SLOT_4_DIGIT_4 4\r
-# elif BOOST_PP_SLOT_TEMP_4 == 5\r
-#    define BOOST_PP_SLOT_4_DIGIT_4 5\r
-# elif BOOST_PP_SLOT_TEMP_4 == 6\r
-#    define BOOST_PP_SLOT_4_DIGIT_4 6\r
-# elif BOOST_PP_SLOT_TEMP_4 == 7\r
-#    define BOOST_PP_SLOT_4_DIGIT_4 7\r
-# elif BOOST_PP_SLOT_TEMP_4 == 8\r
-#    define BOOST_PP_SLOT_4_DIGIT_4 8\r
-# elif BOOST_PP_SLOT_TEMP_4 == 9\r
-#    define BOOST_PP_SLOT_4_DIGIT_4 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_SLOT_4_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_SLOT_4_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_SLOT_4_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_SLOT_4_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_SLOT_4_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_SLOT_4_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_SLOT_4_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_SLOT_4_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_SLOT_4_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_SLOT_4_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_SLOT_4_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_SLOT_4_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_SLOT_4_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_SLOT_4_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_SLOT_4_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_SLOT_4_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_SLOT_4_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_SLOT_4_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_SLOT_4_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_SLOT_4_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_SLOT_4_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_SLOT_4_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_SLOT_4_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_SLOT_4_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_SLOT_4_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_SLOT_4_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_SLOT_4_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_SLOT_4_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_SLOT_4_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_SLOT_4_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_4_DIGIT_10\r
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_4_DIGIT_10, BOOST_PP_SLOT_4_DIGIT_9, BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
-# elif BOOST_PP_SLOT_4_DIGIT_9\r
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_4_DIGIT_9, BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
-# elif BOOST_PP_SLOT_4_DIGIT_8\r
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
-# elif BOOST_PP_SLOT_4_DIGIT_7\r
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
-# elif BOOST_PP_SLOT_4_DIGIT_6\r
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
-# elif BOOST_PP_SLOT_4_DIGIT_5\r
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
-# elif BOOST_PP_SLOT_4_DIGIT_4\r
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
-# elif BOOST_PP_SLOT_4_DIGIT_3\r
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
-# elif BOOST_PP_SLOT_4_DIGIT_2\r
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_4_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_SLOT_4
+#
+# undef BOOST_PP_SLOT_4_DIGIT_1
+# undef BOOST_PP_SLOT_4_DIGIT_2
+# undef BOOST_PP_SLOT_4_DIGIT_3
+# undef BOOST_PP_SLOT_4_DIGIT_4
+# undef BOOST_PP_SLOT_4_DIGIT_5
+# undef BOOST_PP_SLOT_4_DIGIT_6
+# undef BOOST_PP_SLOT_4_DIGIT_7
+# undef BOOST_PP_SLOT_4_DIGIT_8
+# undef BOOST_PP_SLOT_4_DIGIT_9
+# undef BOOST_PP_SLOT_4_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_10 == 0
+#    define BOOST_PP_SLOT_4_DIGIT_10 0
+# elif BOOST_PP_SLOT_TEMP_10 == 1
+#    define BOOST_PP_SLOT_4_DIGIT_10 1
+# elif BOOST_PP_SLOT_TEMP_10 == 2
+#    define BOOST_PP_SLOT_4_DIGIT_10 2
+# elif BOOST_PP_SLOT_TEMP_10 == 3
+#    define BOOST_PP_SLOT_4_DIGIT_10 3
+# elif BOOST_PP_SLOT_TEMP_10 == 4
+#    define BOOST_PP_SLOT_4_DIGIT_10 4
+# elif BOOST_PP_SLOT_TEMP_10 == 5
+#    define BOOST_PP_SLOT_4_DIGIT_10 5
+# elif BOOST_PP_SLOT_TEMP_10 == 6
+#    define BOOST_PP_SLOT_4_DIGIT_10 6
+# elif BOOST_PP_SLOT_TEMP_10 == 7
+#    define BOOST_PP_SLOT_4_DIGIT_10 7
+# elif BOOST_PP_SLOT_TEMP_10 == 8
+#    define BOOST_PP_SLOT_4_DIGIT_10 8
+# elif BOOST_PP_SLOT_TEMP_10 == 9
+#    define BOOST_PP_SLOT_4_DIGIT_10 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_9 == 0
+#    define BOOST_PP_SLOT_4_DIGIT_9 0
+# elif BOOST_PP_SLOT_TEMP_9 == 1
+#    define BOOST_PP_SLOT_4_DIGIT_9 1
+# elif BOOST_PP_SLOT_TEMP_9 == 2
+#    define BOOST_PP_SLOT_4_DIGIT_9 2
+# elif BOOST_PP_SLOT_TEMP_9 == 3
+#    define BOOST_PP_SLOT_4_DIGIT_9 3
+# elif BOOST_PP_SLOT_TEMP_9 == 4
+#    define BOOST_PP_SLOT_4_DIGIT_9 4
+# elif BOOST_PP_SLOT_TEMP_9 == 5
+#    define BOOST_PP_SLOT_4_DIGIT_9 5
+# elif BOOST_PP_SLOT_TEMP_9 == 6
+#    define BOOST_PP_SLOT_4_DIGIT_9 6
+# elif BOOST_PP_SLOT_TEMP_9 == 7
+#    define BOOST_PP_SLOT_4_DIGIT_9 7
+# elif BOOST_PP_SLOT_TEMP_9 == 8
+#    define BOOST_PP_SLOT_4_DIGIT_9 8
+# elif BOOST_PP_SLOT_TEMP_9 == 9
+#    define BOOST_PP_SLOT_4_DIGIT_9 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_8 == 0
+#    define BOOST_PP_SLOT_4_DIGIT_8 0
+# elif BOOST_PP_SLOT_TEMP_8 == 1
+#    define BOOST_PP_SLOT_4_DIGIT_8 1
+# elif BOOST_PP_SLOT_TEMP_8 == 2
+#    define BOOST_PP_SLOT_4_DIGIT_8 2
+# elif BOOST_PP_SLOT_TEMP_8 == 3
+#    define BOOST_PP_SLOT_4_DIGIT_8 3
+# elif BOOST_PP_SLOT_TEMP_8 == 4
+#    define BOOST_PP_SLOT_4_DIGIT_8 4
+# elif BOOST_PP_SLOT_TEMP_8 == 5
+#    define BOOST_PP_SLOT_4_DIGIT_8 5
+# elif BOOST_PP_SLOT_TEMP_8 == 6
+#    define BOOST_PP_SLOT_4_DIGIT_8 6
+# elif BOOST_PP_SLOT_TEMP_8 == 7
+#    define BOOST_PP_SLOT_4_DIGIT_8 7
+# elif BOOST_PP_SLOT_TEMP_8 == 8
+#    define BOOST_PP_SLOT_4_DIGIT_8 8
+# elif BOOST_PP_SLOT_TEMP_8 == 9
+#    define BOOST_PP_SLOT_4_DIGIT_8 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_7 == 0
+#    define BOOST_PP_SLOT_4_DIGIT_7 0
+# elif BOOST_PP_SLOT_TEMP_7 == 1
+#    define BOOST_PP_SLOT_4_DIGIT_7 1
+# elif BOOST_PP_SLOT_TEMP_7 == 2
+#    define BOOST_PP_SLOT_4_DIGIT_7 2
+# elif BOOST_PP_SLOT_TEMP_7 == 3
+#    define BOOST_PP_SLOT_4_DIGIT_7 3
+# elif BOOST_PP_SLOT_TEMP_7 == 4
+#    define BOOST_PP_SLOT_4_DIGIT_7 4
+# elif BOOST_PP_SLOT_TEMP_7 == 5
+#    define BOOST_PP_SLOT_4_DIGIT_7 5
+# elif BOOST_PP_SLOT_TEMP_7 == 6
+#    define BOOST_PP_SLOT_4_DIGIT_7 6
+# elif BOOST_PP_SLOT_TEMP_7 == 7
+#    define BOOST_PP_SLOT_4_DIGIT_7 7
+# elif BOOST_PP_SLOT_TEMP_7 == 8
+#    define BOOST_PP_SLOT_4_DIGIT_7 8
+# elif BOOST_PP_SLOT_TEMP_7 == 9
+#    define BOOST_PP_SLOT_4_DIGIT_7 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_6 == 0
+#    define BOOST_PP_SLOT_4_DIGIT_6 0
+# elif BOOST_PP_SLOT_TEMP_6 == 1
+#    define BOOST_PP_SLOT_4_DIGIT_6 1
+# elif BOOST_PP_SLOT_TEMP_6 == 2
+#    define BOOST_PP_SLOT_4_DIGIT_6 2
+# elif BOOST_PP_SLOT_TEMP_6 == 3
+#    define BOOST_PP_SLOT_4_DIGIT_6 3
+# elif BOOST_PP_SLOT_TEMP_6 == 4
+#    define BOOST_PP_SLOT_4_DIGIT_6 4
+# elif BOOST_PP_SLOT_TEMP_6 == 5
+#    define BOOST_PP_SLOT_4_DIGIT_6 5
+# elif BOOST_PP_SLOT_TEMP_6 == 6
+#    define BOOST_PP_SLOT_4_DIGIT_6 6
+# elif BOOST_PP_SLOT_TEMP_6 == 7
+#    define BOOST_PP_SLOT_4_DIGIT_6 7
+# elif BOOST_PP_SLOT_TEMP_6 == 8
+#    define BOOST_PP_SLOT_4_DIGIT_6 8
+# elif BOOST_PP_SLOT_TEMP_6 == 9
+#    define BOOST_PP_SLOT_4_DIGIT_6 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_5 == 0
+#    define BOOST_PP_SLOT_4_DIGIT_5 0
+# elif BOOST_PP_SLOT_TEMP_5 == 1
+#    define BOOST_PP_SLOT_4_DIGIT_5 1
+# elif BOOST_PP_SLOT_TEMP_5 == 2
+#    define BOOST_PP_SLOT_4_DIGIT_5 2
+# elif BOOST_PP_SLOT_TEMP_5 == 3
+#    define BOOST_PP_SLOT_4_DIGIT_5 3
+# elif BOOST_PP_SLOT_TEMP_5 == 4
+#    define BOOST_PP_SLOT_4_DIGIT_5 4
+# elif BOOST_PP_SLOT_TEMP_5 == 5
+#    define BOOST_PP_SLOT_4_DIGIT_5 5
+# elif BOOST_PP_SLOT_TEMP_5 == 6
+#    define BOOST_PP_SLOT_4_DIGIT_5 6
+# elif BOOST_PP_SLOT_TEMP_5 == 7
+#    define BOOST_PP_SLOT_4_DIGIT_5 7
+# elif BOOST_PP_SLOT_TEMP_5 == 8
+#    define BOOST_PP_SLOT_4_DIGIT_5 8
+# elif BOOST_PP_SLOT_TEMP_5 == 9
+#    define BOOST_PP_SLOT_4_DIGIT_5 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_4 == 0
+#    define BOOST_PP_SLOT_4_DIGIT_4 0
+# elif BOOST_PP_SLOT_TEMP_4 == 1
+#    define BOOST_PP_SLOT_4_DIGIT_4 1
+# elif BOOST_PP_SLOT_TEMP_4 == 2
+#    define BOOST_PP_SLOT_4_DIGIT_4 2
+# elif BOOST_PP_SLOT_TEMP_4 == 3
+#    define BOOST_PP_SLOT_4_DIGIT_4 3
+# elif BOOST_PP_SLOT_TEMP_4 == 4
+#    define BOOST_PP_SLOT_4_DIGIT_4 4
+# elif BOOST_PP_SLOT_TEMP_4 == 5
+#    define BOOST_PP_SLOT_4_DIGIT_4 5
+# elif BOOST_PP_SLOT_TEMP_4 == 6
+#    define BOOST_PP_SLOT_4_DIGIT_4 6
+# elif BOOST_PP_SLOT_TEMP_4 == 7
+#    define BOOST_PP_SLOT_4_DIGIT_4 7
+# elif BOOST_PP_SLOT_TEMP_4 == 8
+#    define BOOST_PP_SLOT_4_DIGIT_4 8
+# elif BOOST_PP_SLOT_TEMP_4 == 9
+#    define BOOST_PP_SLOT_4_DIGIT_4 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_SLOT_4_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_SLOT_4_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_SLOT_4_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_SLOT_4_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_SLOT_4_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_SLOT_4_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_SLOT_4_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_SLOT_4_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_SLOT_4_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_SLOT_4_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_SLOT_4_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_SLOT_4_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_SLOT_4_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_SLOT_4_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_SLOT_4_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_SLOT_4_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_SLOT_4_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_SLOT_4_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_SLOT_4_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_SLOT_4_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_SLOT_4_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_SLOT_4_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_SLOT_4_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_SLOT_4_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_SLOT_4_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_SLOT_4_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_SLOT_4_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_SLOT_4_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_SLOT_4_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_SLOT_4_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_SLOT_4_DIGIT_10
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_4_DIGIT_10, BOOST_PP_SLOT_4_DIGIT_9, BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
+# elif BOOST_PP_SLOT_4_DIGIT_9
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_4_DIGIT_9, BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
+# elif BOOST_PP_SLOT_4_DIGIT_8
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
+# elif BOOST_PP_SLOT_4_DIGIT_7
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
+# elif BOOST_PP_SLOT_4_DIGIT_6
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
+# elif BOOST_PP_SLOT_4_DIGIT_5
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
+# elif BOOST_PP_SLOT_4_DIGIT_4
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
+# elif BOOST_PP_SLOT_4_DIGIT_3
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
+# elif BOOST_PP_SLOT_4_DIGIT_2
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
+# else
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_4_DIGIT_1
+# endif
index 9763461d8ab228265cc672dfd5f93e468fe50ba4..d17535daf4b413b6ffdb95ea769a7ab61ee03339 100644 (file)
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# include <boost/preprocessor/slot/detail/shared.hpp>\r
-#\r
-# undef BOOST_PP_SLOT_5\r
-#\r
-# undef BOOST_PP_SLOT_5_DIGIT_1\r
-# undef BOOST_PP_SLOT_5_DIGIT_2\r
-# undef BOOST_PP_SLOT_5_DIGIT_3\r
-# undef BOOST_PP_SLOT_5_DIGIT_4\r
-# undef BOOST_PP_SLOT_5_DIGIT_5\r
-# undef BOOST_PP_SLOT_5_DIGIT_6\r
-# undef BOOST_PP_SLOT_5_DIGIT_7\r
-# undef BOOST_PP_SLOT_5_DIGIT_8\r
-# undef BOOST_PP_SLOT_5_DIGIT_9\r
-# undef BOOST_PP_SLOT_5_DIGIT_10\r
-#\r
-# if BOOST_PP_SLOT_TEMP_10 == 0\r
-#    define BOOST_PP_SLOT_5_DIGIT_10 0\r
-# elif BOOST_PP_SLOT_TEMP_10 == 1\r
-#    define BOOST_PP_SLOT_5_DIGIT_10 1\r
-# elif BOOST_PP_SLOT_TEMP_10 == 2\r
-#    define BOOST_PP_SLOT_5_DIGIT_10 2\r
-# elif BOOST_PP_SLOT_TEMP_10 == 3\r
-#    define BOOST_PP_SLOT_5_DIGIT_10 3\r
-# elif BOOST_PP_SLOT_TEMP_10 == 4\r
-#    define BOOST_PP_SLOT_5_DIGIT_10 4\r
-# elif BOOST_PP_SLOT_TEMP_10 == 5\r
-#    define BOOST_PP_SLOT_5_DIGIT_10 5\r
-# elif BOOST_PP_SLOT_TEMP_10 == 6\r
-#    define BOOST_PP_SLOT_5_DIGIT_10 6\r
-# elif BOOST_PP_SLOT_TEMP_10 == 7\r
-#    define BOOST_PP_SLOT_5_DIGIT_10 7\r
-# elif BOOST_PP_SLOT_TEMP_10 == 8\r
-#    define BOOST_PP_SLOT_5_DIGIT_10 8\r
-# elif BOOST_PP_SLOT_TEMP_10 == 9\r
-#    define BOOST_PP_SLOT_5_DIGIT_10 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_9 == 0\r
-#    define BOOST_PP_SLOT_5_DIGIT_9 0\r
-# elif BOOST_PP_SLOT_TEMP_9 == 1\r
-#    define BOOST_PP_SLOT_5_DIGIT_9 1\r
-# elif BOOST_PP_SLOT_TEMP_9 == 2\r
-#    define BOOST_PP_SLOT_5_DIGIT_9 2\r
-# elif BOOST_PP_SLOT_TEMP_9 == 3\r
-#    define BOOST_PP_SLOT_5_DIGIT_9 3\r
-# elif BOOST_PP_SLOT_TEMP_9 == 4\r
-#    define BOOST_PP_SLOT_5_DIGIT_9 4\r
-# elif BOOST_PP_SLOT_TEMP_9 == 5\r
-#    define BOOST_PP_SLOT_5_DIGIT_9 5\r
-# elif BOOST_PP_SLOT_TEMP_9 == 6\r
-#    define BOOST_PP_SLOT_5_DIGIT_9 6\r
-# elif BOOST_PP_SLOT_TEMP_9 == 7\r
-#    define BOOST_PP_SLOT_5_DIGIT_9 7\r
-# elif BOOST_PP_SLOT_TEMP_9 == 8\r
-#    define BOOST_PP_SLOT_5_DIGIT_9 8\r
-# elif BOOST_PP_SLOT_TEMP_9 == 9\r
-#    define BOOST_PP_SLOT_5_DIGIT_9 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_8 == 0\r
-#    define BOOST_PP_SLOT_5_DIGIT_8 0\r
-# elif BOOST_PP_SLOT_TEMP_8 == 1\r
-#    define BOOST_PP_SLOT_5_DIGIT_8 1\r
-# elif BOOST_PP_SLOT_TEMP_8 == 2\r
-#    define BOOST_PP_SLOT_5_DIGIT_8 2\r
-# elif BOOST_PP_SLOT_TEMP_8 == 3\r
-#    define BOOST_PP_SLOT_5_DIGIT_8 3\r
-# elif BOOST_PP_SLOT_TEMP_8 == 4\r
-#    define BOOST_PP_SLOT_5_DIGIT_8 4\r
-# elif BOOST_PP_SLOT_TEMP_8 == 5\r
-#    define BOOST_PP_SLOT_5_DIGIT_8 5\r
-# elif BOOST_PP_SLOT_TEMP_8 == 6\r
-#    define BOOST_PP_SLOT_5_DIGIT_8 6\r
-# elif BOOST_PP_SLOT_TEMP_8 == 7\r
-#    define BOOST_PP_SLOT_5_DIGIT_8 7\r
-# elif BOOST_PP_SLOT_TEMP_8 == 8\r
-#    define BOOST_PP_SLOT_5_DIGIT_8 8\r
-# elif BOOST_PP_SLOT_TEMP_8 == 9\r
-#    define BOOST_PP_SLOT_5_DIGIT_8 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_7 == 0\r
-#    define BOOST_PP_SLOT_5_DIGIT_7 0\r
-# elif BOOST_PP_SLOT_TEMP_7 == 1\r
-#    define BOOST_PP_SLOT_5_DIGIT_7 1\r
-# elif BOOST_PP_SLOT_TEMP_7 == 2\r
-#    define BOOST_PP_SLOT_5_DIGIT_7 2\r
-# elif BOOST_PP_SLOT_TEMP_7 == 3\r
-#    define BOOST_PP_SLOT_5_DIGIT_7 3\r
-# elif BOOST_PP_SLOT_TEMP_7 == 4\r
-#    define BOOST_PP_SLOT_5_DIGIT_7 4\r
-# elif BOOST_PP_SLOT_TEMP_7 == 5\r
-#    define BOOST_PP_SLOT_5_DIGIT_7 5\r
-# elif BOOST_PP_SLOT_TEMP_7 == 6\r
-#    define BOOST_PP_SLOT_5_DIGIT_7 6\r
-# elif BOOST_PP_SLOT_TEMP_7 == 7\r
-#    define BOOST_PP_SLOT_5_DIGIT_7 7\r
-# elif BOOST_PP_SLOT_TEMP_7 == 8\r
-#    define BOOST_PP_SLOT_5_DIGIT_7 8\r
-# elif BOOST_PP_SLOT_TEMP_7 == 9\r
-#    define BOOST_PP_SLOT_5_DIGIT_7 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_6 == 0\r
-#    define BOOST_PP_SLOT_5_DIGIT_6 0\r
-# elif BOOST_PP_SLOT_TEMP_6 == 1\r
-#    define BOOST_PP_SLOT_5_DIGIT_6 1\r
-# elif BOOST_PP_SLOT_TEMP_6 == 2\r
-#    define BOOST_PP_SLOT_5_DIGIT_6 2\r
-# elif BOOST_PP_SLOT_TEMP_6 == 3\r
-#    define BOOST_PP_SLOT_5_DIGIT_6 3\r
-# elif BOOST_PP_SLOT_TEMP_6 == 4\r
-#    define BOOST_PP_SLOT_5_DIGIT_6 4\r
-# elif BOOST_PP_SLOT_TEMP_6 == 5\r
-#    define BOOST_PP_SLOT_5_DIGIT_6 5\r
-# elif BOOST_PP_SLOT_TEMP_6 == 6\r
-#    define BOOST_PP_SLOT_5_DIGIT_6 6\r
-# elif BOOST_PP_SLOT_TEMP_6 == 7\r
-#    define BOOST_PP_SLOT_5_DIGIT_6 7\r
-# elif BOOST_PP_SLOT_TEMP_6 == 8\r
-#    define BOOST_PP_SLOT_5_DIGIT_6 8\r
-# elif BOOST_PP_SLOT_TEMP_6 == 9\r
-#    define BOOST_PP_SLOT_5_DIGIT_6 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_5 == 0\r
-#    define BOOST_PP_SLOT_5_DIGIT_5 0\r
-# elif BOOST_PP_SLOT_TEMP_5 == 1\r
-#    define BOOST_PP_SLOT_5_DIGIT_5 1\r
-# elif BOOST_PP_SLOT_TEMP_5 == 2\r
-#    define BOOST_PP_SLOT_5_DIGIT_5 2\r
-# elif BOOST_PP_SLOT_TEMP_5 == 3\r
-#    define BOOST_PP_SLOT_5_DIGIT_5 3\r
-# elif BOOST_PP_SLOT_TEMP_5 == 4\r
-#    define BOOST_PP_SLOT_5_DIGIT_5 4\r
-# elif BOOST_PP_SLOT_TEMP_5 == 5\r
-#    define BOOST_PP_SLOT_5_DIGIT_5 5\r
-# elif BOOST_PP_SLOT_TEMP_5 == 6\r
-#    define BOOST_PP_SLOT_5_DIGIT_5 6\r
-# elif BOOST_PP_SLOT_TEMP_5 == 7\r
-#    define BOOST_PP_SLOT_5_DIGIT_5 7\r
-# elif BOOST_PP_SLOT_TEMP_5 == 8\r
-#    define BOOST_PP_SLOT_5_DIGIT_5 8\r
-# elif BOOST_PP_SLOT_TEMP_5 == 9\r
-#    define BOOST_PP_SLOT_5_DIGIT_5 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_4 == 0\r
-#    define BOOST_PP_SLOT_5_DIGIT_4 0\r
-# elif BOOST_PP_SLOT_TEMP_4 == 1\r
-#    define BOOST_PP_SLOT_5_DIGIT_4 1\r
-# elif BOOST_PP_SLOT_TEMP_4 == 2\r
-#    define BOOST_PP_SLOT_5_DIGIT_4 2\r
-# elif BOOST_PP_SLOT_TEMP_4 == 3\r
-#    define BOOST_PP_SLOT_5_DIGIT_4 3\r
-# elif BOOST_PP_SLOT_TEMP_4 == 4\r
-#    define BOOST_PP_SLOT_5_DIGIT_4 4\r
-# elif BOOST_PP_SLOT_TEMP_4 == 5\r
-#    define BOOST_PP_SLOT_5_DIGIT_4 5\r
-# elif BOOST_PP_SLOT_TEMP_4 == 6\r
-#    define BOOST_PP_SLOT_5_DIGIT_4 6\r
-# elif BOOST_PP_SLOT_TEMP_4 == 7\r
-#    define BOOST_PP_SLOT_5_DIGIT_4 7\r
-# elif BOOST_PP_SLOT_TEMP_4 == 8\r
-#    define BOOST_PP_SLOT_5_DIGIT_4 8\r
-# elif BOOST_PP_SLOT_TEMP_4 == 9\r
-#    define BOOST_PP_SLOT_5_DIGIT_4 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_3 == 0\r
-#    define BOOST_PP_SLOT_5_DIGIT_3 0\r
-# elif BOOST_PP_SLOT_TEMP_3 == 1\r
-#    define BOOST_PP_SLOT_5_DIGIT_3 1\r
-# elif BOOST_PP_SLOT_TEMP_3 == 2\r
-#    define BOOST_PP_SLOT_5_DIGIT_3 2\r
-# elif BOOST_PP_SLOT_TEMP_3 == 3\r
-#    define BOOST_PP_SLOT_5_DIGIT_3 3\r
-# elif BOOST_PP_SLOT_TEMP_3 == 4\r
-#    define BOOST_PP_SLOT_5_DIGIT_3 4\r
-# elif BOOST_PP_SLOT_TEMP_3 == 5\r
-#    define BOOST_PP_SLOT_5_DIGIT_3 5\r
-# elif BOOST_PP_SLOT_TEMP_3 == 6\r
-#    define BOOST_PP_SLOT_5_DIGIT_3 6\r
-# elif BOOST_PP_SLOT_TEMP_3 == 7\r
-#    define BOOST_PP_SLOT_5_DIGIT_3 7\r
-# elif BOOST_PP_SLOT_TEMP_3 == 8\r
-#    define BOOST_PP_SLOT_5_DIGIT_3 8\r
-# elif BOOST_PP_SLOT_TEMP_3 == 9\r
-#    define BOOST_PP_SLOT_5_DIGIT_3 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_2 == 0\r
-#    define BOOST_PP_SLOT_5_DIGIT_2 0\r
-# elif BOOST_PP_SLOT_TEMP_2 == 1\r
-#    define BOOST_PP_SLOT_5_DIGIT_2 1\r
-# elif BOOST_PP_SLOT_TEMP_2 == 2\r
-#    define BOOST_PP_SLOT_5_DIGIT_2 2\r
-# elif BOOST_PP_SLOT_TEMP_2 == 3\r
-#    define BOOST_PP_SLOT_5_DIGIT_2 3\r
-# elif BOOST_PP_SLOT_TEMP_2 == 4\r
-#    define BOOST_PP_SLOT_5_DIGIT_2 4\r
-# elif BOOST_PP_SLOT_TEMP_2 == 5\r
-#    define BOOST_PP_SLOT_5_DIGIT_2 5\r
-# elif BOOST_PP_SLOT_TEMP_2 == 6\r
-#    define BOOST_PP_SLOT_5_DIGIT_2 6\r
-# elif BOOST_PP_SLOT_TEMP_2 == 7\r
-#    define BOOST_PP_SLOT_5_DIGIT_2 7\r
-# elif BOOST_PP_SLOT_TEMP_2 == 8\r
-#    define BOOST_PP_SLOT_5_DIGIT_2 8\r
-# elif BOOST_PP_SLOT_TEMP_2 == 9\r
-#    define BOOST_PP_SLOT_5_DIGIT_2 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_TEMP_1 == 0\r
-#    define BOOST_PP_SLOT_5_DIGIT_1 0\r
-# elif BOOST_PP_SLOT_TEMP_1 == 1\r
-#    define BOOST_PP_SLOT_5_DIGIT_1 1\r
-# elif BOOST_PP_SLOT_TEMP_1 == 2\r
-#    define BOOST_PP_SLOT_5_DIGIT_1 2\r
-# elif BOOST_PP_SLOT_TEMP_1 == 3\r
-#    define BOOST_PP_SLOT_5_DIGIT_1 3\r
-# elif BOOST_PP_SLOT_TEMP_1 == 4\r
-#    define BOOST_PP_SLOT_5_DIGIT_1 4\r
-# elif BOOST_PP_SLOT_TEMP_1 == 5\r
-#    define BOOST_PP_SLOT_5_DIGIT_1 5\r
-# elif BOOST_PP_SLOT_TEMP_1 == 6\r
-#    define BOOST_PP_SLOT_5_DIGIT_1 6\r
-# elif BOOST_PP_SLOT_TEMP_1 == 7\r
-#    define BOOST_PP_SLOT_5_DIGIT_1 7\r
-# elif BOOST_PP_SLOT_TEMP_1 == 8\r
-#    define BOOST_PP_SLOT_5_DIGIT_1 8\r
-# elif BOOST_PP_SLOT_TEMP_1 == 9\r
-#    define BOOST_PP_SLOT_5_DIGIT_1 9\r
-# endif\r
-#\r
-# if BOOST_PP_SLOT_5_DIGIT_10\r
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_5_DIGIT_10, BOOST_PP_SLOT_5_DIGIT_9, BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
-# elif BOOST_PP_SLOT_5_DIGIT_9\r
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_5_DIGIT_9, BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
-# elif BOOST_PP_SLOT_5_DIGIT_8\r
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
-# elif BOOST_PP_SLOT_5_DIGIT_7\r
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
-# elif BOOST_PP_SLOT_5_DIGIT_6\r
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
-# elif BOOST_PP_SLOT_5_DIGIT_5\r
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
-# elif BOOST_PP_SLOT_5_DIGIT_4\r
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
-# elif BOOST_PP_SLOT_5_DIGIT_3\r
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
-# elif BOOST_PP_SLOT_5_DIGIT_2\r
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
-# else\r
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_5_DIGIT_1\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# include <boost/preprocessor/slot/detail/shared.hpp>
+#
+# undef BOOST_PP_SLOT_5
+#
+# undef BOOST_PP_SLOT_5_DIGIT_1
+# undef BOOST_PP_SLOT_5_DIGIT_2
+# undef BOOST_PP_SLOT_5_DIGIT_3
+# undef BOOST_PP_SLOT_5_DIGIT_4
+# undef BOOST_PP_SLOT_5_DIGIT_5
+# undef BOOST_PP_SLOT_5_DIGIT_6
+# undef BOOST_PP_SLOT_5_DIGIT_7
+# undef BOOST_PP_SLOT_5_DIGIT_8
+# undef BOOST_PP_SLOT_5_DIGIT_9
+# undef BOOST_PP_SLOT_5_DIGIT_10
+#
+# if BOOST_PP_SLOT_TEMP_10 == 0
+#    define BOOST_PP_SLOT_5_DIGIT_10 0
+# elif BOOST_PP_SLOT_TEMP_10 == 1
+#    define BOOST_PP_SLOT_5_DIGIT_10 1
+# elif BOOST_PP_SLOT_TEMP_10 == 2
+#    define BOOST_PP_SLOT_5_DIGIT_10 2
+# elif BOOST_PP_SLOT_TEMP_10 == 3
+#    define BOOST_PP_SLOT_5_DIGIT_10 3
+# elif BOOST_PP_SLOT_TEMP_10 == 4
+#    define BOOST_PP_SLOT_5_DIGIT_10 4
+# elif BOOST_PP_SLOT_TEMP_10 == 5
+#    define BOOST_PP_SLOT_5_DIGIT_10 5
+# elif BOOST_PP_SLOT_TEMP_10 == 6
+#    define BOOST_PP_SLOT_5_DIGIT_10 6
+# elif BOOST_PP_SLOT_TEMP_10 == 7
+#    define BOOST_PP_SLOT_5_DIGIT_10 7
+# elif BOOST_PP_SLOT_TEMP_10 == 8
+#    define BOOST_PP_SLOT_5_DIGIT_10 8
+# elif BOOST_PP_SLOT_TEMP_10 == 9
+#    define BOOST_PP_SLOT_5_DIGIT_10 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_9 == 0
+#    define BOOST_PP_SLOT_5_DIGIT_9 0
+# elif BOOST_PP_SLOT_TEMP_9 == 1
+#    define BOOST_PP_SLOT_5_DIGIT_9 1
+# elif BOOST_PP_SLOT_TEMP_9 == 2
+#    define BOOST_PP_SLOT_5_DIGIT_9 2
+# elif BOOST_PP_SLOT_TEMP_9 == 3
+#    define BOOST_PP_SLOT_5_DIGIT_9 3
+# elif BOOST_PP_SLOT_TEMP_9 == 4
+#    define BOOST_PP_SLOT_5_DIGIT_9 4
+# elif BOOST_PP_SLOT_TEMP_9 == 5
+#    define BOOST_PP_SLOT_5_DIGIT_9 5
+# elif BOOST_PP_SLOT_TEMP_9 == 6
+#    define BOOST_PP_SLOT_5_DIGIT_9 6
+# elif BOOST_PP_SLOT_TEMP_9 == 7
+#    define BOOST_PP_SLOT_5_DIGIT_9 7
+# elif BOOST_PP_SLOT_TEMP_9 == 8
+#    define BOOST_PP_SLOT_5_DIGIT_9 8
+# elif BOOST_PP_SLOT_TEMP_9 == 9
+#    define BOOST_PP_SLOT_5_DIGIT_9 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_8 == 0
+#    define BOOST_PP_SLOT_5_DIGIT_8 0
+# elif BOOST_PP_SLOT_TEMP_8 == 1
+#    define BOOST_PP_SLOT_5_DIGIT_8 1
+# elif BOOST_PP_SLOT_TEMP_8 == 2
+#    define BOOST_PP_SLOT_5_DIGIT_8 2
+# elif BOOST_PP_SLOT_TEMP_8 == 3
+#    define BOOST_PP_SLOT_5_DIGIT_8 3
+# elif BOOST_PP_SLOT_TEMP_8 == 4
+#    define BOOST_PP_SLOT_5_DIGIT_8 4
+# elif BOOST_PP_SLOT_TEMP_8 == 5
+#    define BOOST_PP_SLOT_5_DIGIT_8 5
+# elif BOOST_PP_SLOT_TEMP_8 == 6
+#    define BOOST_PP_SLOT_5_DIGIT_8 6
+# elif BOOST_PP_SLOT_TEMP_8 == 7
+#    define BOOST_PP_SLOT_5_DIGIT_8 7
+# elif BOOST_PP_SLOT_TEMP_8 == 8
+#    define BOOST_PP_SLOT_5_DIGIT_8 8
+# elif BOOST_PP_SLOT_TEMP_8 == 9
+#    define BOOST_PP_SLOT_5_DIGIT_8 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_7 == 0
+#    define BOOST_PP_SLOT_5_DIGIT_7 0
+# elif BOOST_PP_SLOT_TEMP_7 == 1
+#    define BOOST_PP_SLOT_5_DIGIT_7 1
+# elif BOOST_PP_SLOT_TEMP_7 == 2
+#    define BOOST_PP_SLOT_5_DIGIT_7 2
+# elif BOOST_PP_SLOT_TEMP_7 == 3
+#    define BOOST_PP_SLOT_5_DIGIT_7 3
+# elif BOOST_PP_SLOT_TEMP_7 == 4
+#    define BOOST_PP_SLOT_5_DIGIT_7 4
+# elif BOOST_PP_SLOT_TEMP_7 == 5
+#    define BOOST_PP_SLOT_5_DIGIT_7 5
+# elif BOOST_PP_SLOT_TEMP_7 == 6
+#    define BOOST_PP_SLOT_5_DIGIT_7 6
+# elif BOOST_PP_SLOT_TEMP_7 == 7
+#    define BOOST_PP_SLOT_5_DIGIT_7 7
+# elif BOOST_PP_SLOT_TEMP_7 == 8
+#    define BOOST_PP_SLOT_5_DIGIT_7 8
+# elif BOOST_PP_SLOT_TEMP_7 == 9
+#    define BOOST_PP_SLOT_5_DIGIT_7 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_6 == 0
+#    define BOOST_PP_SLOT_5_DIGIT_6 0
+# elif BOOST_PP_SLOT_TEMP_6 == 1
+#    define BOOST_PP_SLOT_5_DIGIT_6 1
+# elif BOOST_PP_SLOT_TEMP_6 == 2
+#    define BOOST_PP_SLOT_5_DIGIT_6 2
+# elif BOOST_PP_SLOT_TEMP_6 == 3
+#    define BOOST_PP_SLOT_5_DIGIT_6 3
+# elif BOOST_PP_SLOT_TEMP_6 == 4
+#    define BOOST_PP_SLOT_5_DIGIT_6 4
+# elif BOOST_PP_SLOT_TEMP_6 == 5
+#    define BOOST_PP_SLOT_5_DIGIT_6 5
+# elif BOOST_PP_SLOT_TEMP_6 == 6
+#    define BOOST_PP_SLOT_5_DIGIT_6 6
+# elif BOOST_PP_SLOT_TEMP_6 == 7
+#    define BOOST_PP_SLOT_5_DIGIT_6 7
+# elif BOOST_PP_SLOT_TEMP_6 == 8
+#    define BOOST_PP_SLOT_5_DIGIT_6 8
+# elif BOOST_PP_SLOT_TEMP_6 == 9
+#    define BOOST_PP_SLOT_5_DIGIT_6 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_5 == 0
+#    define BOOST_PP_SLOT_5_DIGIT_5 0
+# elif BOOST_PP_SLOT_TEMP_5 == 1
+#    define BOOST_PP_SLOT_5_DIGIT_5 1
+# elif BOOST_PP_SLOT_TEMP_5 == 2
+#    define BOOST_PP_SLOT_5_DIGIT_5 2
+# elif BOOST_PP_SLOT_TEMP_5 == 3
+#    define BOOST_PP_SLOT_5_DIGIT_5 3
+# elif BOOST_PP_SLOT_TEMP_5 == 4
+#    define BOOST_PP_SLOT_5_DIGIT_5 4
+# elif BOOST_PP_SLOT_TEMP_5 == 5
+#    define BOOST_PP_SLOT_5_DIGIT_5 5
+# elif BOOST_PP_SLOT_TEMP_5 == 6
+#    define BOOST_PP_SLOT_5_DIGIT_5 6
+# elif BOOST_PP_SLOT_TEMP_5 == 7
+#    define BOOST_PP_SLOT_5_DIGIT_5 7
+# elif BOOST_PP_SLOT_TEMP_5 == 8
+#    define BOOST_PP_SLOT_5_DIGIT_5 8
+# elif BOOST_PP_SLOT_TEMP_5 == 9
+#    define BOOST_PP_SLOT_5_DIGIT_5 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_4 == 0
+#    define BOOST_PP_SLOT_5_DIGIT_4 0
+# elif BOOST_PP_SLOT_TEMP_4 == 1
+#    define BOOST_PP_SLOT_5_DIGIT_4 1
+# elif BOOST_PP_SLOT_TEMP_4 == 2
+#    define BOOST_PP_SLOT_5_DIGIT_4 2
+# elif BOOST_PP_SLOT_TEMP_4 == 3
+#    define BOOST_PP_SLOT_5_DIGIT_4 3
+# elif BOOST_PP_SLOT_TEMP_4 == 4
+#    define BOOST_PP_SLOT_5_DIGIT_4 4
+# elif BOOST_PP_SLOT_TEMP_4 == 5
+#    define BOOST_PP_SLOT_5_DIGIT_4 5
+# elif BOOST_PP_SLOT_TEMP_4 == 6
+#    define BOOST_PP_SLOT_5_DIGIT_4 6
+# elif BOOST_PP_SLOT_TEMP_4 == 7
+#    define BOOST_PP_SLOT_5_DIGIT_4 7
+# elif BOOST_PP_SLOT_TEMP_4 == 8
+#    define BOOST_PP_SLOT_5_DIGIT_4 8
+# elif BOOST_PP_SLOT_TEMP_4 == 9
+#    define BOOST_PP_SLOT_5_DIGIT_4 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_3 == 0
+#    define BOOST_PP_SLOT_5_DIGIT_3 0
+# elif BOOST_PP_SLOT_TEMP_3 == 1
+#    define BOOST_PP_SLOT_5_DIGIT_3 1
+# elif BOOST_PP_SLOT_TEMP_3 == 2
+#    define BOOST_PP_SLOT_5_DIGIT_3 2
+# elif BOOST_PP_SLOT_TEMP_3 == 3
+#    define BOOST_PP_SLOT_5_DIGIT_3 3
+# elif BOOST_PP_SLOT_TEMP_3 == 4
+#    define BOOST_PP_SLOT_5_DIGIT_3 4
+# elif BOOST_PP_SLOT_TEMP_3 == 5
+#    define BOOST_PP_SLOT_5_DIGIT_3 5
+# elif BOOST_PP_SLOT_TEMP_3 == 6
+#    define BOOST_PP_SLOT_5_DIGIT_3 6
+# elif BOOST_PP_SLOT_TEMP_3 == 7
+#    define BOOST_PP_SLOT_5_DIGIT_3 7
+# elif BOOST_PP_SLOT_TEMP_3 == 8
+#    define BOOST_PP_SLOT_5_DIGIT_3 8
+# elif BOOST_PP_SLOT_TEMP_3 == 9
+#    define BOOST_PP_SLOT_5_DIGIT_3 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_2 == 0
+#    define BOOST_PP_SLOT_5_DIGIT_2 0
+# elif BOOST_PP_SLOT_TEMP_2 == 1
+#    define BOOST_PP_SLOT_5_DIGIT_2 1
+# elif BOOST_PP_SLOT_TEMP_2 == 2
+#    define BOOST_PP_SLOT_5_DIGIT_2 2
+# elif BOOST_PP_SLOT_TEMP_2 == 3
+#    define BOOST_PP_SLOT_5_DIGIT_2 3
+# elif BOOST_PP_SLOT_TEMP_2 == 4
+#    define BOOST_PP_SLOT_5_DIGIT_2 4
+# elif BOOST_PP_SLOT_TEMP_2 == 5
+#    define BOOST_PP_SLOT_5_DIGIT_2 5
+# elif BOOST_PP_SLOT_TEMP_2 == 6
+#    define BOOST_PP_SLOT_5_DIGIT_2 6
+# elif BOOST_PP_SLOT_TEMP_2 == 7
+#    define BOOST_PP_SLOT_5_DIGIT_2 7
+# elif BOOST_PP_SLOT_TEMP_2 == 8
+#    define BOOST_PP_SLOT_5_DIGIT_2 8
+# elif BOOST_PP_SLOT_TEMP_2 == 9
+#    define BOOST_PP_SLOT_5_DIGIT_2 9
+# endif
+#
+# if BOOST_PP_SLOT_TEMP_1 == 0
+#    define BOOST_PP_SLOT_5_DIGIT_1 0
+# elif BOOST_PP_SLOT_TEMP_1 == 1
+#    define BOOST_PP_SLOT_5_DIGIT_1 1
+# elif BOOST_PP_SLOT_TEMP_1 == 2
+#    define BOOST_PP_SLOT_5_DIGIT_1 2
+# elif BOOST_PP_SLOT_TEMP_1 == 3
+#    define BOOST_PP_SLOT_5_DIGIT_1 3
+# elif BOOST_PP_SLOT_TEMP_1 == 4
+#    define BOOST_PP_SLOT_5_DIGIT_1 4
+# elif BOOST_PP_SLOT_TEMP_1 == 5
+#    define BOOST_PP_SLOT_5_DIGIT_1 5
+# elif BOOST_PP_SLOT_TEMP_1 == 6
+#    define BOOST_PP_SLOT_5_DIGIT_1 6
+# elif BOOST_PP_SLOT_TEMP_1 == 7
+#    define BOOST_PP_SLOT_5_DIGIT_1 7
+# elif BOOST_PP_SLOT_TEMP_1 == 8
+#    define BOOST_PP_SLOT_5_DIGIT_1 8
+# elif BOOST_PP_SLOT_TEMP_1 == 9
+#    define BOOST_PP_SLOT_5_DIGIT_1 9
+# endif
+#
+# if BOOST_PP_SLOT_5_DIGIT_10
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_5_DIGIT_10, BOOST_PP_SLOT_5_DIGIT_9, BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
+# elif BOOST_PP_SLOT_5_DIGIT_9
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_5_DIGIT_9, BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
+# elif BOOST_PP_SLOT_5_DIGIT_8
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
+# elif BOOST_PP_SLOT_5_DIGIT_7
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
+# elif BOOST_PP_SLOT_5_DIGIT_6
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
+# elif BOOST_PP_SLOT_5_DIGIT_5
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
+# elif BOOST_PP_SLOT_5_DIGIT_4
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
+# elif BOOST_PP_SLOT_5_DIGIT_3
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
+# elif BOOST_PP_SLOT_5_DIGIT_2
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
+# else
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_5_DIGIT_1
+# endif
index efb421fb5b0142398a634e615075cebb453a299f..22f8434d7fab4f7688459d0d544dfdfd510f91a8 100644 (file)
@@ -1,60 +1,60 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_TUPLE_TO_SEQ_HPP\r
-# define BOOST_PREPROCESSOR_TUPLE_TO_SEQ_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-#\r
-# /* BOOST_PP_TUPLE_TO_SEQ */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_TUPLE_TO_SEQ(size, tuple) BOOST_PP_TUPLE_TO_SEQ_I(size, tuple)\r
-#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
-#        define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_ ## s t\r
-#    else\r
-#        define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_II(BOOST_PP_TUPLE_TO_SEQ_ ## s t)\r
-#        define BOOST_PP_TUPLE_TO_SEQ_II(res) res\r
-#    endif\r
-# else\r
-#    define BOOST_PP_TUPLE_TO_SEQ(size, tuple) BOOST_PP_TUPLE_TO_SEQ_OO((size, tuple))\r
-#    define BOOST_PP_TUPLE_TO_SEQ_OO(par) BOOST_PP_TUPLE_TO_SEQ_I ## par\r
-#    define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_ ## s ## t\r
-# endif\r
-#\r
-# define BOOST_PP_TUPLE_TO_SEQ_0()\r
-# define BOOST_PP_TUPLE_TO_SEQ_1(a) (a)\r
-# define BOOST_PP_TUPLE_TO_SEQ_2(a, b) (a)(b)\r
-# define BOOST_PP_TUPLE_TO_SEQ_3(a, b, c) (a)(b)(c)\r
-# define BOOST_PP_TUPLE_TO_SEQ_4(a, b, c, d) (a)(b)(c)(d)\r
-# define BOOST_PP_TUPLE_TO_SEQ_5(a, b, c, d, e) (a)(b)(c)(d)(e)\r
-# define BOOST_PP_TUPLE_TO_SEQ_6(a, b, c, d, e, f) (a)(b)(c)(d)(e)(f)\r
-# define BOOST_PP_TUPLE_TO_SEQ_7(a, b, c, d, e, f, g) (a)(b)(c)(d)(e)(f)(g)\r
-# define BOOST_PP_TUPLE_TO_SEQ_8(a, b, c, d, e, f, g, h) (a)(b)(c)(d)(e)(f)(g)(h)\r
-# define BOOST_PP_TUPLE_TO_SEQ_9(a, b, c, d, e, f, g, h, i) (a)(b)(c)(d)(e)(f)(g)(h)(i)\r
-# define BOOST_PP_TUPLE_TO_SEQ_10(a, b, c, d, e, f, g, h, i, j) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)\r
-# define BOOST_PP_TUPLE_TO_SEQ_11(a, b, c, d, e, f, g, h, i, j, k) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\r
-# define BOOST_PP_TUPLE_TO_SEQ_12(a, b, c, d, e, f, g, h, i, j, k, l) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\r
-# define BOOST_PP_TUPLE_TO_SEQ_13(a, b, c, d, e, f, g, h, i, j, k, l, m) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)\r
-# define BOOST_PP_TUPLE_TO_SEQ_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)\r
-# define BOOST_PP_TUPLE_TO_SEQ_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)\r
-# define BOOST_PP_TUPLE_TO_SEQ_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)\r
-# define BOOST_PP_TUPLE_TO_SEQ_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)\r
-# define BOOST_PP_TUPLE_TO_SEQ_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)\r
-# define BOOST_PP_TUPLE_TO_SEQ_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)\r
-# define BOOST_PP_TUPLE_TO_SEQ_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)\r
-# define BOOST_PP_TUPLE_TO_SEQ_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)\r
-# define BOOST_PP_TUPLE_TO_SEQ_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)\r
-# define BOOST_PP_TUPLE_TO_SEQ_23(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)\r
-# define BOOST_PP_TUPLE_TO_SEQ_24(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)\r
-# define BOOST_PP_TUPLE_TO_SEQ_25(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y)\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_TUPLE_TO_SEQ_HPP
+# define BOOST_PREPROCESSOR_TUPLE_TO_SEQ_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+#
+# /* BOOST_PP_TUPLE_TO_SEQ */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_TUPLE_TO_SEQ(size, tuple) BOOST_PP_TUPLE_TO_SEQ_I(size, tuple)
+#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+#        define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_ ## s t
+#    else
+#        define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_II(BOOST_PP_TUPLE_TO_SEQ_ ## s t)
+#        define BOOST_PP_TUPLE_TO_SEQ_II(res) res
+#    endif
+# else
+#    define BOOST_PP_TUPLE_TO_SEQ(size, tuple) BOOST_PP_TUPLE_TO_SEQ_OO((size, tuple))
+#    define BOOST_PP_TUPLE_TO_SEQ_OO(par) BOOST_PP_TUPLE_TO_SEQ_I ## par
+#    define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_ ## s ## t
+# endif
+#
+# define BOOST_PP_TUPLE_TO_SEQ_0()
+# define BOOST_PP_TUPLE_TO_SEQ_1(a) (a)
+# define BOOST_PP_TUPLE_TO_SEQ_2(a, b) (a)(b)
+# define BOOST_PP_TUPLE_TO_SEQ_3(a, b, c) (a)(b)(c)
+# define BOOST_PP_TUPLE_TO_SEQ_4(a, b, c, d) (a)(b)(c)(d)
+# define BOOST_PP_TUPLE_TO_SEQ_5(a, b, c, d, e) (a)(b)(c)(d)(e)
+# define BOOST_PP_TUPLE_TO_SEQ_6(a, b, c, d, e, f) (a)(b)(c)(d)(e)(f)
+# define BOOST_PP_TUPLE_TO_SEQ_7(a, b, c, d, e, f, g) (a)(b)(c)(d)(e)(f)(g)
+# define BOOST_PP_TUPLE_TO_SEQ_8(a, b, c, d, e, f, g, h) (a)(b)(c)(d)(e)(f)(g)(h)
+# define BOOST_PP_TUPLE_TO_SEQ_9(a, b, c, d, e, f, g, h, i) (a)(b)(c)(d)(e)(f)(g)(h)(i)
+# define BOOST_PP_TUPLE_TO_SEQ_10(a, b, c, d, e, f, g, h, i, j) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)
+# define BOOST_PP_TUPLE_TO_SEQ_11(a, b, c, d, e, f, g, h, i, j, k) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)
+# define BOOST_PP_TUPLE_TO_SEQ_12(a, b, c, d, e, f, g, h, i, j, k, l) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)
+# define BOOST_PP_TUPLE_TO_SEQ_13(a, b, c, d, e, f, g, h, i, j, k, l, m) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)
+# define BOOST_PP_TUPLE_TO_SEQ_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)
+# define BOOST_PP_TUPLE_TO_SEQ_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)
+# define BOOST_PP_TUPLE_TO_SEQ_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)
+# define BOOST_PP_TUPLE_TO_SEQ_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)
+# define BOOST_PP_TUPLE_TO_SEQ_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)
+# define BOOST_PP_TUPLE_TO_SEQ_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)
+# define BOOST_PP_TUPLE_TO_SEQ_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)
+# define BOOST_PP_TUPLE_TO_SEQ_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)
+# define BOOST_PP_TUPLE_TO_SEQ_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)
+# define BOOST_PP_TUPLE_TO_SEQ_23(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)
+# define BOOST_PP_TUPLE_TO_SEQ_24(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)
+# define BOOST_PP_TUPLE_TO_SEQ_25(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y)
+#
+# endif
index 126b43e97dc6bda52db7b3d72027d777bc72097e..5d1a83aa2e0c685f81509f184fad555f2fbf9be9 100644 (file)
@@ -1,29 +1,29 @@
-# /* **************************************************************************\r
-#  *                                                                          *\r
-#  *     (C) Copyright Paul Mensonides 2002.\r
-#  *     Distributed under the Boost Software License, Version 1.0. (See\r
-#  *     accompanying file LICENSE_1_0.txt or copy at\r
-#  *     http://www.boost.org/LICENSE_1_0.txt)\r
-#  *                                                                          *\r
-#  ************************************************************************** */\r
-#\r
-# /* See http://www.boost.org for most recent version. */\r
-#\r
-# ifndef BOOST_PREPROCESSOR_WSTRINGIZE_HPP\r
-# define BOOST_PREPROCESSOR_WSTRINGIZE_HPP\r
-#\r
-# include <boost/preprocessor/config/config.hpp>\r
-#\r
-# /* BOOST_PP_WSTRINGIZE */\r
-#\r
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
-#    define BOOST_PP_WSTRINGIZE(text) BOOST_PP_WSTRINGIZE_I(text)\r
-# else\r
-#    define BOOST_PP_WSTRINGIZE(text) BOOST_PP_WSTRINGIZE_OO((text))\r
-#    define BOOST_PP_WSTRINGIZE_OO(par) BOOST_PP_WSTRINGIZE_I ## par\r
-# endif\r
-#\r
-# define BOOST_PP_WSTRINGIZE_I(text) BOOST_PP_WSTRINGIZE_II(#text)\r
-# define BOOST_PP_WSTRINGIZE_II(str) L ## str\r
-#\r
-# endif\r
+# /* **************************************************************************
+#  *                                                                          *
+#  *     (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. */
+#
+# ifndef BOOST_PREPROCESSOR_WSTRINGIZE_HPP
+# define BOOST_PREPROCESSOR_WSTRINGIZE_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+#
+# /* BOOST_PP_WSTRINGIZE */
+#
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+#    define BOOST_PP_WSTRINGIZE(text) BOOST_PP_WSTRINGIZE_I(text)
+# else
+#    define BOOST_PP_WSTRINGIZE(text) BOOST_PP_WSTRINGIZE_OO((text))
+#    define BOOST_PP_WSTRINGIZE_OO(par) BOOST_PP_WSTRINGIZE_I ## par
+# endif
+#
+# define BOOST_PP_WSTRINGIZE_I(text) BOOST_PP_WSTRINGIZE_II(#text)
+# define BOOST_PP_WSTRINGIZE_II(str) L ## str
+#
+# endif
index 00a38ab3f11bf570f5323967a22ee795487c9a40..98fd59413fd4d795d2acbea1e9c56f88ea2df7bf 100644 (file)
-/*\r
- *\r
- * Copyright (c) 2004\r
- * John Maddock\r
- *\r
- * Use, modification and distribution are subject to the \r
- * Boost Software License, Version 1.0. (See accompanying file \r
- * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
- *\r
- */\r
\r
- /*\r
-  *   LOCATION:    see http://www.boost.org for most recent version.\r
-  *   FILE         concepts.hpp\r
-  *   VERSION      see <boost/version.hpp>\r
-  *   DESCRIPTION: Declares regular expression concepts.\r
-  */\r
-\r
-#ifndef BOOST_REGEX_CONCEPTS_HPP_INCLUDED\r
-#define BOOST_REGEX_CONCEPTS_HPP_INCLUDED\r
-\r
-#include <boost/concept_archetype.hpp>\r
-#include <boost/concept_check.hpp>\r
-#include <boost/type_traits/is_enum.hpp>\r
-#include <boost/type_traits/is_base_and_derived.hpp>\r
-#include <boost/static_assert.hpp>\r
-#ifndef BOOST_TEST_TR1_REGEX\r
-#include <boost/regex.hpp>\r
-#endif\r
-#include <bitset>\r
-#include <vector>\r
-#include <iostream>\r
-\r
-namespace boost{\r
-\r
-//\r
-// bitmask_archetype:\r
-// this can be either an integer type, an enum, or a std::bitset,\r
-// we use the latter as the architype as it offers the "strictest"\r
-// of the possible interfaces:\r
-//\r
-typedef std::bitset<512> bitmask_archetype;\r
-//\r
-// char_architype:\r
-// A strict model for the character type interface.\r
-//\r
-struct char_architype\r
-{\r
-   // default constructable:\r
-   char_architype();\r
-   // copy constructable / assignable:\r
-   char_architype(const char_architype&);\r
-   char_architype& operator=(const char_architype&);\r
-   // constructable from an integral value:\r
-   char_architype(unsigned long val);\r
-   // comparable:\r
-   bool operator==(const char_architype&)const;\r
-   bool operator!=(const char_architype&)const;\r
-   bool operator<(const char_architype&)const;\r
-   bool operator<=(const char_architype&)const;\r
-   bool operator>=(const char_architype&)const;\r
-   bool operator>(const char_architype&)const;\r
-   // conversion to integral type:\r
-   operator long()const;\r
-};\r
-//\r
-// char_architype can not be used with basic_string:\r
-//\r
-} // namespace boost\r
-namespace std{\r
-   template<> struct char_traits<boost::char_architype>\r
-   {\r
-      // The intent is that this template is not instantiated,\r
-      // but this typedef gives us a chance of compilation in\r
-      // case it is:\r
-      typedef boost::char_architype char_type;\r
-   };\r
-}\r
-namespace boost{\r
-//\r
-// regex_traits_architype:\r
-// A strict interpretation of the regular expression traits class requirements.\r
-//\r
-template <class charT>\r
-struct regex_traits_architype\r
-{\r
-public:\r
-   regex_traits_architype();\r
-   typedef charT char_type;\r
-   // typedef std::size_t size_type;\r
-   typedef std::vector<char_type> string_type;\r
-   typedef copy_constructible_archetype<assignable_archetype<> > locale_type;\r
-   typedef bitmask_archetype char_class_type;\r
-\r
-   static std::size_t length(const char_type* ) { return 0; }\r
-\r
-   charT translate(charT ) const { return charT(); }\r
-   charT translate_nocase(charT ) const { return static_object<charT>::get(); }\r
-\r
-   template <class ForwardIterator>\r
-   string_type transform(ForwardIterator , ForwardIterator ) const\r
-   { return static_object<string_type>::get(); }\r
-   template <class ForwardIterator>\r
-   string_type transform_primary(ForwardIterator , ForwardIterator ) const\r
-   { return static_object<string_type>::get(); }\r
-\r
-   template <class ForwardIterator>\r
-   char_class_type lookup_classname(ForwardIterator , ForwardIterator ) const\r
-   { return static_object<char_class_type>::get(); }\r
-   template <class ForwardIterator>\r
-   string_type lookup_collatename(ForwardIterator , ForwardIterator ) const\r
-   { return static_object<string_type>::get(); }\r
-\r
-   bool isctype(charT, char_class_type) const\r
-   { return false; }\r
-   int value(charT, int) const\r
-   { return 0; }\r
-\r
-   locale_type imbue(locale_type l)\r
-   { return l; }\r
-   locale_type getloc()const\r
-   { return static_object<locale_type>::get(); }\r
-\r
-private:\r
-   // this type is not copyable:\r
-   regex_traits_architype(const regex_traits_architype&);\r
-   regex_traits_architype& operator=(const regex_traits_architype&);\r
-};\r
-\r
-//\r
-// alter this to std::tr1, to test a std implementation:\r
-//\r
-#ifndef BOOST_TEST_TR1_REGEX\r
-namespace global_regex_namespace = ::boost;\r
-#else\r
-namespace global_regex_namespace = ::std::tr1;\r
-#endif\r
-\r
-template <class Bitmask>\r
-struct BitmaskConcept\r
-{\r
-   void constraints() \r
-   {\r
-      function_requires<CopyConstructibleConcept<Bitmask> >();\r
-      function_requires<AssignableConcept<Bitmask> >();\r
-\r
-      m_mask1 = m_mask2 | m_mask3;\r
-      m_mask1 = m_mask2 & m_mask3;\r
-      m_mask1 = m_mask2 ^ m_mask3;\r
-\r
-      m_mask1 = ~m_mask2;\r
-\r
-      m_mask1 |= m_mask2;\r
-      m_mask1 &= m_mask2;\r
-      m_mask1 ^= m_mask2;\r
-   }\r
-   Bitmask m_mask1, m_mask2, m_mask3;\r
-};\r
-\r
-template <class traits>\r
-struct RegexTraitsConcept\r
-{\r
-   RegexTraitsConcept();\r
-   // required typedefs:\r
-   typedef typename traits::char_type char_type;\r
-   // typedef typename traits::size_type size_type;\r
-   typedef typename traits::string_type string_type;\r
-   typedef typename traits::locale_type locale_type;\r
-   typedef typename traits::char_class_type char_class_type;\r
-\r
-   void constraints() \r
-   {\r
-      //function_requires<UnsignedIntegerConcept<size_type> >();\r
-      function_requires<RandomAccessContainerConcept<string_type> >();\r
-      function_requires<DefaultConstructibleConcept<locale_type> >();\r
-      function_requires<CopyConstructibleConcept<locale_type> >();\r
-      function_requires<AssignableConcept<locale_type> >();\r
-      function_requires<BitmaskConcept<char_class_type> >();\r
-\r
-      std::size_t n = traits::length(m_pointer);\r
-      ignore_unused_variable_warning(n);\r
-\r
-      char_type c = m_ctraits.translate(m_char);\r
-      ignore_unused_variable_warning(c);\r
-      c = m_ctraits.translate_nocase(m_char);\r
-      \r
-      //string_type::foobar bar;\r
-      string_type s1 = m_ctraits.transform(m_pointer, m_pointer);\r
-      ignore_unused_variable_warning(s1);\r
-\r
-      string_type s2 = m_ctraits.transform_primary(m_pointer, m_pointer);\r
-      ignore_unused_variable_warning(s2);\r
-\r
-      char_class_type cc = m_ctraits.lookup_classname(m_pointer, m_pointer);\r
-      ignore_unused_variable_warning(cc);\r
-\r
-      string_type s3 = m_ctraits.lookup_collatename(m_pointer, m_pointer);\r
-      ignore_unused_variable_warning(s3);\r
-\r
-      bool b = m_ctraits.isctype(m_char, cc);\r
-      ignore_unused_variable_warning(b);\r
-\r
-      int v = m_ctraits.value(m_char, 16);\r
-      ignore_unused_variable_warning(v);\r
-\r
-      locale_type l(m_ctraits.getloc());\r
-      m_traits.imbue(l);\r
-      ignore_unused_variable_warning(l);\r
-   }\r
-   traits m_traits;\r
-   const traits m_ctraits;\r
-   const char_type* m_pointer;\r
-   char_type m_char;\r
-private:\r
-   RegexTraitsConcept& operator=(RegexTraitsConcept&);\r
-};\r
-\r
-//\r
-// helper class to compute what traits class a regular expression type is using:\r
-//\r
-template <class Regex>\r
-struct regex_traits_computer;\r
-\r
-template <class charT, class traits>\r
-struct regex_traits_computer< global_regex_namespace::basic_regex<charT, traits> >\r
-{\r
-   typedef traits type;\r
-};\r
-\r
-//\r
-// BaseRegexConcept does not test anything dependent on basic_string,\r
-// in case our charT does not have an associated char_traits:\r
-//\r
-template <class Regex>\r
-struct BaseRegexConcept\r
-{\r
-   typedef typename Regex::value_type value_type;\r
-   //typedef typename Regex::size_type size_type;\r
-   typedef typename Regex::flag_type flag_type;\r
-   typedef typename Regex::locale_type locale_type;\r
-   typedef input_iterator_archetype<value_type> input_iterator_type;\r
-\r
-   // derived test types:\r
-   typedef const value_type* pointer_type;\r
-   typedef bidirectional_iterator_archetype<value_type> BidiIterator;\r
-   typedef global_regex_namespace::sub_match<BidiIterator> sub_match_type;\r
-   typedef global_regex_namespace::match_results<BidiIterator> match_results_type;\r
-   typedef output_iterator_archetype<value_type> OutIterator;\r
-   typedef typename regex_traits_computer<Regex>::type traits_type;\r
-   typedef global_regex_namespace::regex_iterator<BidiIterator, value_type, traits_type> regex_iterator_type;\r
-   typedef global_regex_namespace::regex_token_iterator<BidiIterator, value_type, traits_type> regex_token_iterator_type;\r
-\r
-   void global_constraints()\r
-   {\r
-      //\r
-      // test non-template components:\r
-      //\r
-      function_requires<BitmaskConcept<global_regex_namespace::regex_constants::syntax_option_type> >();\r
-      global_regex_namespace::regex_constants::syntax_option_type opts\r
-         = global_regex_namespace::regex_constants::icase\r
-         | global_regex_namespace::regex_constants::nosubs\r
-         | global_regex_namespace::regex_constants::optimize\r
-         | global_regex_namespace::regex_constants::collate\r
-         | global_regex_namespace::regex_constants::ECMAScript\r
-         | global_regex_namespace::regex_constants::basic\r
-         | global_regex_namespace::regex_constants::extended\r
-         | global_regex_namespace::regex_constants::awk\r
-         | global_regex_namespace::regex_constants::grep\r
-         | global_regex_namespace::regex_constants::egrep;\r
-      ignore_unused_variable_warning(opts);\r
-\r
-      function_requires<BitmaskConcept<global_regex_namespace::regex_constants::match_flag_type> >();\r
-      global_regex_namespace::regex_constants::match_flag_type mopts\r
-         = global_regex_namespace::regex_constants::match_default\r
-         | global_regex_namespace::regex_constants::match_not_bol\r
-         | global_regex_namespace::regex_constants::match_not_eol\r
-         | global_regex_namespace::regex_constants::match_not_bow\r
-         | global_regex_namespace::regex_constants::match_not_eow\r
-         | global_regex_namespace::regex_constants::match_any\r
-         | global_regex_namespace::regex_constants::match_not_null\r
-         | global_regex_namespace::regex_constants::match_continuous\r
-         | global_regex_namespace::regex_constants::match_prev_avail\r
-         | global_regex_namespace::regex_constants::format_default\r
-         | global_regex_namespace::regex_constants::format_sed\r
-         | global_regex_namespace::regex_constants::format_no_copy\r
-         | global_regex_namespace::regex_constants::format_first_only;\r
-      ignore_unused_variable_warning(mopts);\r
-\r
-      BOOST_STATIC_ASSERT((::boost::is_enum<global_regex_namespace::regex_constants::error_type>::value));\r
-      global_regex_namespace::regex_constants::error_type e1 = global_regex_namespace::regex_constants::error_collate;\r
-      ignore_unused_variable_warning(e1);\r
-      e1 = global_regex_namespace::regex_constants::error_ctype;\r
-      ignore_unused_variable_warning(e1);\r
-      e1 = global_regex_namespace::regex_constants::error_escape;\r
-      ignore_unused_variable_warning(e1);\r
-      e1 = global_regex_namespace::regex_constants::error_backref;\r
-      ignore_unused_variable_warning(e1);\r
-      e1 = global_regex_namespace::regex_constants::error_brack;\r
-      ignore_unused_variable_warning(e1);\r
-      e1 = global_regex_namespace::regex_constants::error_paren;\r
-      ignore_unused_variable_warning(e1);\r
-      e1 = global_regex_namespace::regex_constants::error_brace;\r
-      ignore_unused_variable_warning(e1);\r
-      e1 = global_regex_namespace::regex_constants::error_badbrace;\r
-      ignore_unused_variable_warning(e1);\r
-      e1 = global_regex_namespace::regex_constants::error_range;\r
-      ignore_unused_variable_warning(e1);\r
-      e1 = global_regex_namespace::regex_constants::error_space;\r
-      ignore_unused_variable_warning(e1);\r
-      e1 = global_regex_namespace::regex_constants::error_badrepeat;\r
-      ignore_unused_variable_warning(e1);\r
-      e1 = global_regex_namespace::regex_constants::error_complexity;\r
-      ignore_unused_variable_warning(e1);\r
-      e1 = global_regex_namespace::regex_constants::error_stack;\r
-      ignore_unused_variable_warning(e1);\r
-\r
-      BOOST_STATIC_ASSERT((::boost::is_base_and_derived<std::runtime_error, global_regex_namespace::regex_error>::value  ));\r
-      const global_regex_namespace::regex_error except(e1);\r
-      e1 = except.code();\r
-\r
-      typedef typename Regex::value_type value_type;\r
-      function_requires< RegexTraitsConcept<global_regex_namespace::regex_traits<char> > >();\r
-      function_requires< BaseRegexConcept<global_regex_namespace::basic_regex<char> > >();\r
-   }\r
-   void constraints() \r
-   {\r
-      global_constraints();\r
-\r
-      BOOST_STATIC_ASSERT((::boost::is_same< flag_type, global_regex_namespace::regex_constants::syntax_option_type>::value));\r
-      flag_type opts\r
-         = Regex::icase\r
-         | Regex::nosubs\r
-         | Regex::optimize\r
-         | Regex::collate\r
-         | Regex::ECMAScript\r
-         | Regex::basic\r
-         | Regex::extended\r
-         | Regex::awk\r
-         | Regex::grep\r
-         | Regex::egrep;\r
-      ignore_unused_variable_warning(opts);\r
-\r
-      function_requires<DefaultConstructibleConcept<Regex> >();\r
-      function_requires<CopyConstructibleConcept<Regex> >();\r
-\r
-      // Regex constructors:\r
-      Regex e1(m_pointer);\r
-      ignore_unused_variable_warning(e1);\r
-      Regex e2(m_pointer, m_flags);\r
-      ignore_unused_variable_warning(e2);\r
-      Regex e3(m_pointer, m_size, m_flags);\r
-      ignore_unused_variable_warning(e3);\r
-      Regex e4(in1, in2);\r
-      ignore_unused_variable_warning(e4);\r
-      Regex e5(in1, in2, m_flags);\r
-      ignore_unused_variable_warning(e5);\r
-\r
-      // assign etc:\r
-      Regex e;\r
-      e = m_pointer;\r
-      e = e1;\r
-      e.assign(e1);\r
-      e.assign(m_pointer);\r
-      e.assign(m_pointer, m_flags);\r
-      e.assign(m_pointer, m_size, m_flags);\r
-      e.assign(in1, in2);\r
-      e.assign(in1, in2, m_flags);\r
-\r
-      // access:\r
-      const Regex ce;\r
-      unsigned i = ce.mark_count();\r
-      ignore_unused_variable_warning(i);\r
-      m_flags = ce.flags();\r
-      e.imbue(ce.getloc());\r
-      e.swap(e1);\r
-      \r
-      global_regex_namespace::swap(e, e1);\r
-\r
-      // sub_match:\r
-      BOOST_STATIC_ASSERT((::boost::is_base_and_derived<std::pair<BidiIterator, BidiIterator>, sub_match_type>::value));\r
-      typedef typename sub_match_type::value_type sub_value_type;\r
-      typedef typename sub_match_type::difference_type sub_diff_type;\r
-      typedef typename sub_match_type::iterator sub_iter_type;\r
-      BOOST_STATIC_ASSERT((::boost::is_same<sub_value_type, value_type>::value));\r
-      BOOST_STATIC_ASSERT((::boost::is_same<sub_iter_type, BidiIterator>::value));\r
-      bool b = m_sub.matched;\r
-      ignore_unused_variable_warning(b);\r
-      BidiIterator bi = m_sub.first;\r
-      ignore_unused_variable_warning(bi);\r
-      bi = m_sub.second;\r
-      ignore_unused_variable_warning(bi);\r
-      sub_diff_type diff = m_sub.length();\r
-      ignore_unused_variable_warning(diff);\r
-      // match_results tests:\r
-      typedef typename match_results_type::value_type mr_value_type;\r
-      typedef typename match_results_type::const_reference mr_const_reference;\r
-      typedef typename match_results_type::reference mr_reference;\r
-      typedef typename match_results_type::const_iterator mr_const_iterator;\r
-      typedef typename match_results_type::iterator mr_iterator;\r
-      typedef typename match_results_type::difference_type mr_difference_type;\r
-      typedef typename match_results_type::size_type mr_size_type;\r
-      typedef typename match_results_type::allocator_type mr_allocator_type;\r
-      typedef typename match_results_type::char_type mr_char_type;\r
-      typedef typename match_results_type::string_type mr_string_type;\r
-\r
-      match_results_type m1;\r
-      mr_allocator_type at;\r
-      match_results_type m2(at);\r
-      match_results_type m3(m1);\r
-      m1 = m2;\r
-\r
-      int ival = 0;\r
-\r
-      mr_size_type mrs = m_cresults.size();\r
-      ignore_unused_variable_warning(mrs);\r
-      mrs = m_cresults.max_size();\r
-      ignore_unused_variable_warning(mrs);\r
-      b = m_cresults.empty();\r
-      ignore_unused_variable_warning(b);\r
-      mr_difference_type mrd = m_cresults.length();\r
-      ignore_unused_variable_warning(mrd);\r
-      mrd = m_cresults.length(ival);\r
-      ignore_unused_variable_warning(mrd);\r
-      mrd = m_cresults.position();\r
-      ignore_unused_variable_warning(mrd);\r
-      mrd = m_cresults.position(mrs);\r
-      ignore_unused_variable_warning(mrd);\r
-\r
-      mr_const_reference mrcr = m_cresults[ival];\r
-      ignore_unused_variable_warning(mrcr);\r
-      mr_const_reference mrcr2 = m_cresults.prefix();\r
-      ignore_unused_variable_warning(mrcr2);\r
-      mr_const_reference mrcr3 = m_cresults.suffix();\r
-      ignore_unused_variable_warning(mrcr3);\r
-      mr_const_iterator mrci = m_cresults.begin();\r
-      ignore_unused_variable_warning(mrci);\r
-      mrci = m_cresults.end();\r
-      ignore_unused_variable_warning(mrci);\r
-\r
-      mr_allocator_type at2 = m_cresults.get_allocator();\r
-      m_results.swap(m_results);\r
-      global_regex_namespace::swap(m_results, m_results);\r
-\r
-      // regex_match:\r
-      b = global_regex_namespace::regex_match(m_in, m_in, m_results, e);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_match(m_in, m_in, m_results, e, m_mft);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_match(m_in, m_in, e);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_match(m_in, m_in, e, m_mft);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_match(m_pointer, m_pmatch, e);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_match(m_pointer, m_pmatch, e, m_mft);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_match(m_pointer, e);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_match(m_pointer, e, m_mft);\r
-      ignore_unused_variable_warning(b);\r
-      // regex_search:\r
-      b = global_regex_namespace::regex_search(m_in, m_in, m_results, e);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_search(m_in, m_in, m_results, e, m_mft);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_search(m_in, m_in, e);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_search(m_in, m_in, e, m_mft);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_search(m_pointer, m_pmatch, e);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_search(m_pointer, m_pmatch, e, m_mft);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_search(m_pointer, e);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_search(m_pointer, e, m_mft);\r
-      ignore_unused_variable_warning(b);\r
-\r
-      // regex_iterator:\r
-      typedef typename regex_iterator_type::regex_type rit_regex_type;\r
-      typedef typename regex_iterator_type::value_type rit_value_type;\r
-      typedef typename regex_iterator_type::difference_type rit_difference_type;\r
-      typedef typename regex_iterator_type::pointer rit_pointer;\r
-      typedef typename regex_iterator_type::reference rit_reference;\r
-      typedef typename regex_iterator_type::iterator_category rit_iterator_category;\r
-      BOOST_STATIC_ASSERT((::boost::is_same<rit_regex_type, Regex>::value));\r
-      BOOST_STATIC_ASSERT((::boost::is_same<rit_value_type, match_results_type>::value));\r
-      BOOST_STATIC_ASSERT((::boost::is_same<rit_difference_type, std::ptrdiff_t>::value));\r
-      BOOST_STATIC_ASSERT((::boost::is_same<rit_pointer, const match_results_type*>::value));\r
-      BOOST_STATIC_ASSERT((::boost::is_same<rit_reference, const match_results_type&>::value));\r
-      BOOST_STATIC_ASSERT((::boost::is_convertible<rit_iterator_category*, std::forward_iterator_tag*>::value));\r
-      // this takes care of most of the checks needed:\r
-      function_requires<ForwardIteratorConcept<regex_iterator_type> >();\r
-      regex_iterator_type iter1(m_in, m_in, e);\r
-      ignore_unused_variable_warning(iter1);\r
-      regex_iterator_type iter2(m_in, m_in, e, m_mft);\r
-      ignore_unused_variable_warning(iter2);\r
-\r
-      // regex_token_iterator:\r
-      typedef typename regex_token_iterator_type::regex_type rtit_regex_type;\r
-      typedef typename regex_token_iterator_type::value_type rtit_value_type;\r
-      typedef typename regex_token_iterator_type::difference_type rtit_difference_type;\r
-      typedef typename regex_token_iterator_type::pointer rtit_pointer;\r
-      typedef typename regex_token_iterator_type::reference rtit_reference;\r
-      typedef typename regex_token_iterator_type::iterator_category rtit_iterator_category;\r
-      BOOST_STATIC_ASSERT((::boost::is_same<rtit_regex_type, Regex>::value));\r
-      BOOST_STATIC_ASSERT((::boost::is_same<rtit_value_type, sub_match_type>::value));\r
-      BOOST_STATIC_ASSERT((::boost::is_same<rtit_difference_type, std::ptrdiff_t>::value));\r
-      BOOST_STATIC_ASSERT((::boost::is_same<rtit_pointer, const sub_match_type*>::value));\r
-      BOOST_STATIC_ASSERT((::boost::is_same<rtit_reference, const sub_match_type&>::value));\r
-      BOOST_STATIC_ASSERT((::boost::is_convertible<rtit_iterator_category*, std::forward_iterator_tag*>::value));\r
-      // this takes care of most of the checks needed:\r
-      function_requires<ForwardIteratorConcept<regex_token_iterator_type> >();\r
-      regex_token_iterator_type ti1(m_in, m_in, e);\r
-      ignore_unused_variable_warning(ti1);\r
-      regex_token_iterator_type ti2(m_in, m_in, e, 0);\r
-      ignore_unused_variable_warning(ti2);\r
-      regex_token_iterator_type ti3(m_in, m_in, e, 0, m_mft);\r
-      ignore_unused_variable_warning(ti3);\r
-      std::vector<int> subs;\r
-      regex_token_iterator_type ti4(m_in, m_in, e, subs);\r
-      ignore_unused_variable_warning(ti4);\r
-      regex_token_iterator_type ti5(m_in, m_in, e, subs, m_mft);\r
-      ignore_unused_variable_warning(ti5);\r
-      static const int i_array[3] = { 1, 2, 3, };\r
-      regex_token_iterator_type ti6(m_in, m_in, e, i_array);\r
-      ignore_unused_variable_warning(ti6);\r
-      regex_token_iterator_type ti7(m_in, m_in, e, i_array, m_mft);\r
-      ignore_unused_variable_warning(ti7);\r
-   }\r
-\r
-   pointer_type m_pointer;\r
-   flag_type m_flags;\r
-   std::size_t m_size;\r
-   input_iterator_type in1, in2;\r
-   const sub_match_type m_sub;\r
-   const value_type m_char;\r
-   match_results_type m_results;\r
-   const match_results_type m_cresults;\r
-   OutIterator m_out;\r
-   BidiIterator m_in;\r
-   global_regex_namespace::regex_constants::match_flag_type m_mft;\r
-   global_regex_namespace::match_results<pointer_type> m_pmatch;\r
-\r
-   BaseRegexConcept();\r
-   BaseRegexConcept(const BaseRegexConcept&);\r
-   BaseRegexConcept& operator=(const BaseRegexConcept&);\r
-};\r
-\r
-//\r
-// RegexConcept:\r
-// Test every interface in the std:\r
-//\r
-template <class Regex>\r
-struct RegexConcept\r
-{\r
-   typedef typename Regex::value_type value_type;\r
-   //typedef typename Regex::size_type size_type;\r
-   typedef typename Regex::flag_type flag_type;\r
-   typedef typename Regex::locale_type locale_type;\r
-\r
-   // derived test types:\r
-   typedef const value_type* pointer_type;\r
-   typedef std::basic_string<value_type> string_type;\r
-   typedef boost::bidirectional_iterator_archetype<value_type> BidiIterator;\r
-   typedef global_regex_namespace::sub_match<BidiIterator> sub_match_type;\r
-   typedef global_regex_namespace::match_results<BidiIterator> match_results_type;\r
-   typedef output_iterator_archetype<value_type> OutIterator;\r
-\r
-\r
-   void constraints() \r
-   {\r
-      function_requires<BaseRegexConcept<Regex> >();\r
-      // string based construct:\r
-      Regex e1(m_string);\r
-      ignore_unused_variable_warning(e1);\r
-      Regex e2(m_string, m_flags);\r
-      ignore_unused_variable_warning(e2);\r
-\r
-      // assign etc:\r
-      Regex e;\r
-      e = m_string;\r
-      e.assign(m_string);\r
-      e.assign(m_string, m_flags);\r
-\r
-      // sub_match:\r
-      string_type s(m_sub);\r
-      ignore_unused_variable_warning(s);\r
-      s = m_sub.str();\r
-      ignore_unused_variable_warning(s);\r
-      int i = m_sub.compare(m_string);\r
-      ignore_unused_variable_warning(i);\r
-\r
-      int i2 = m_sub.compare(m_sub);\r
-      ignore_unused_variable_warning(i2);\r
-      i2 = m_sub.compare(m_pointer);\r
-      ignore_unused_variable_warning(i2);\r
-\r
-      bool b = m_sub == m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub != m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub <= m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub <= m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub > m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub >= m_sub;\r
-      ignore_unused_variable_warning(b);\r
-\r
-      b = m_sub == m_pointer;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub != m_pointer;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub <= m_pointer;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub <= m_pointer;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub > m_pointer;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub >= m_pointer;\r
-      ignore_unused_variable_warning(b);\r
-\r
-      b = m_pointer == m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_pointer != m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_pointer <= m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_pointer <= m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_pointer > m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_pointer >= m_sub;\r
-      ignore_unused_variable_warning(b);\r
-\r
-      b = m_sub == m_char;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub != m_char;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub <= m_char;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub <= m_char;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub > m_char;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub >= m_char;\r
-      ignore_unused_variable_warning(b);\r
-\r
-      b = m_char == m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_char != m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_char <= m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_char <= m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_char > m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_char >= m_sub;\r
-      ignore_unused_variable_warning(b);\r
-\r
-      b = m_sub == m_string;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub != m_string;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub <= m_string;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub <= m_string;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub > m_string;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_sub >= m_string;\r
-      ignore_unused_variable_warning(b);\r
-\r
-      b = m_string == m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_string != m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_string <= m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_string <= m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_string > m_sub;\r
-      ignore_unused_variable_warning(b);\r
-      b = m_string >= m_sub;\r
-      ignore_unused_variable_warning(b);\r
-\r
-      // match results:\r
-      m_string = m_results.str();\r
-      ignore_unused_variable_warning(m_string);\r
-      m_string = m_results.str(0);\r
-      ignore_unused_variable_warning(m_string);\r
-      m_out = m_cresults.format(m_out, m_string);\r
-      m_out = m_cresults.format(m_out, m_string, m_mft);\r
-      m_string = m_cresults.format(m_string);\r
-      ignore_unused_variable_warning(m_string);\r
-      m_string = m_cresults.format(m_string, m_mft);\r
-      ignore_unused_variable_warning(m_string);\r
-\r
-      // regex_match:\r
-      b = global_regex_namespace::regex_match(m_string, m_smatch, e);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_match(m_string, m_smatch, e, m_mft);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_match(m_string, e);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_match(m_string, e, m_mft);\r
-      ignore_unused_variable_warning(b);\r
-\r
-      // regex_search:\r
-      b = global_regex_namespace::regex_search(m_string, m_smatch, e);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_search(m_string, m_smatch, e, m_mft);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_search(m_string, e);\r
-      ignore_unused_variable_warning(b);\r
-      b = global_regex_namespace::regex_search(m_string, e, m_mft);\r
-      ignore_unused_variable_warning(b);\r
-\r
-      // regex_replace:\r
-      m_out = global_regex_namespace::regex_replace(m_out, m_in, m_in, e, m_string, m_mft);\r
-      m_out = global_regex_namespace::regex_replace(m_out, m_in, m_in, e, m_string);\r
-      m_string = global_regex_namespace::regex_replace(m_string, e, m_string, m_mft);\r
-      ignore_unused_variable_warning(m_string);\r
-      m_string = global_regex_namespace::regex_replace(m_string, e, m_string);\r
-      ignore_unused_variable_warning(m_string);\r
-\r
-   }\r
-\r
-   flag_type m_flags;\r
-   string_type m_string;\r
-   const sub_match_type m_sub;\r
-   match_results_type m_results;\r
-   pointer_type m_pointer;\r
-   value_type m_char;\r
-   const match_results_type m_cresults;\r
-   OutIterator m_out;\r
-   BidiIterator m_in;\r
-   global_regex_namespace::regex_constants::match_flag_type m_mft;\r
-   global_regex_namespace::match_results<typename string_type::const_iterator> m_smatch;\r
-\r
-   RegexConcept();\r
-   RegexConcept(const RegexConcept&);\r
-   RegexConcept& operator=(const RegexConcept&);\r
-};\r
-\r
-#ifndef BOOST_REGEX_TEST_STD\r
-//\r
-// BoostRegexConcept:\r
-// Test every interface in the Boost implementation:\r
-//\r
-template <class Regex>\r
-struct BoostRegexConcept\r
-{\r
-   typedef typename Regex::value_type value_type;\r
-   typedef typename Regex::size_type size_type;\r
-   typedef typename Regex::flag_type flag_type;\r
-   typedef typename Regex::locale_type locale_type;\r
-\r
-   // derived test types:\r
-   typedef const value_type* pointer_type;\r
-   typedef std::basic_string<value_type> string_type;\r
-   typedef typename Regex::const_iterator const_iterator;\r
-   typedef bidirectional_iterator_archetype<value_type> BidiIterator;\r
-   typedef global_regex_namespace::sub_match<BidiIterator> sub_match_type;\r
-   typedef global_regex_namespace::match_results<BidiIterator> match_results_type;\r
-\r
-   void constraints() \r
-   {\r
-      global_regex_namespace::regex_constants::match_flag_type mopts\r
-         = global_regex_namespace::regex_constants::match_default\r
-         | global_regex_namespace::regex_constants::match_not_bol\r
-         | global_regex_namespace::regex_constants::match_not_eol\r
-         | global_regex_namespace::regex_constants::match_not_bow\r
-         | global_regex_namespace::regex_constants::match_not_eow\r
-         | global_regex_namespace::regex_constants::match_any\r
-         | global_regex_namespace::regex_constants::match_not_null\r
-         | global_regex_namespace::regex_constants::match_continuous\r
-         | global_regex_namespace::regex_constants::match_partial\r
-         | global_regex_namespace::regex_constants::match_prev_avail\r
-         | global_regex_namespace::regex_constants::format_default\r
-         | global_regex_namespace::regex_constants::format_sed\r
-         | global_regex_namespace::regex_constants::format_perl\r
-         | global_regex_namespace::regex_constants::format_no_copy\r
-         | global_regex_namespace::regex_constants::format_first_only;\r
-\r
-      (void)mopts;\r
-\r
-      function_requires<RegexConcept<Regex> >();\r
-      const global_regex_namespace::regex_error except(global_regex_namespace::regex_constants::error_collate);\r
-      std::ptrdiff_t pt = except.position();\r
-      ignore_unused_variable_warning(pt);\r
-      const Regex ce, ce2;\r
-#ifndef BOOST_NO_STD_LOCALE\r
-      m_stream << ce;\r
-#endif\r
-      unsigned i = ce.error_code();\r
-      ignore_unused_variable_warning(i);\r
-      pointer_type p = ce.expression();\r
-      ignore_unused_variable_warning(p);\r
-      int i2 = ce.compare(ce2);\r
-      ignore_unused_variable_warning(i2);\r
-      bool b = ce == ce2;\r
-      ignore_unused_variable_warning(b);\r
-      b = ce.empty();\r
-      ignore_unused_variable_warning(b);\r
-      b = ce != ce2;\r
-      ignore_unused_variable_warning(b);\r
-      b = ce < ce2;\r
-      ignore_unused_variable_warning(b);\r
-      b = ce > ce2;\r
-      ignore_unused_variable_warning(b);\r
-      b = ce <= ce2;\r
-      ignore_unused_variable_warning(b);\r
-      b = ce >= ce2;\r
-      ignore_unused_variable_warning(b);\r
-      i = ce.status();\r
-      ignore_unused_variable_warning(i);\r
-      size_type s = ce.max_size();\r
-      ignore_unused_variable_warning(s);\r
-      s = ce.size();\r
-      ignore_unused_variable_warning(s);\r
-      const_iterator pi = ce.begin();\r
-      ignore_unused_variable_warning(pi);\r
-      pi = ce.end();\r
-      ignore_unused_variable_warning(pi);\r
-      string_type s2 = ce.str();\r
-      ignore_unused_variable_warning(s2);\r
-\r
-      m_string = m_sub + m_sub;\r
-      ignore_unused_variable_warning(m_string);\r
-      m_string = m_sub + m_pointer;\r
-      ignore_unused_variable_warning(m_string);\r
-      m_string = m_pointer + m_sub;\r
-      ignore_unused_variable_warning(m_string);\r
-      m_string = m_sub + m_string;\r
-      ignore_unused_variable_warning(m_string);\r
-      m_string = m_string + m_sub;\r
-      ignore_unused_variable_warning(m_string);\r
-      m_string = m_sub + m_char;\r
-      ignore_unused_variable_warning(m_string);\r
-      m_string = m_char + m_sub;\r
-      ignore_unused_variable_warning(m_string);\r
-\r
-      // Named sub-expressions:\r
-      m_sub = m_cresults[&m_char];\r
-      ignore_unused_variable_warning(m_sub);\r
-      m_sub = m_cresults[m_string];\r
-      ignore_unused_variable_warning(m_sub);\r
-      m_sub = m_cresults[""];\r
-      ignore_unused_variable_warning(m_sub);\r
-      m_sub = m_cresults[std::string("")];\r
-      ignore_unused_variable_warning(m_sub);\r
-      m_string = m_cresults.str(&m_char);\r
-      ignore_unused_variable_warning(m_string);\r
-      m_string = m_cresults.str(m_string);\r
-      ignore_unused_variable_warning(m_string);\r
-      m_string = m_cresults.str("");\r
-      ignore_unused_variable_warning(m_string);\r
-      m_string = m_cresults.str(std::string(""));\r
-      ignore_unused_variable_warning(m_string);\r
-\r
-      typename match_results_type::difference_type diff;\r
-      diff = m_cresults.length(&m_char);\r
-      ignore_unused_variable_warning(diff);\r
-      diff = m_cresults.length(m_string);\r
-      ignore_unused_variable_warning(diff);\r
-      diff = m_cresults.length("");\r
-      ignore_unused_variable_warning(diff);\r
-      diff = m_cresults.length(std::string(""));\r
-      ignore_unused_variable_warning(diff);\r
-      diff = m_cresults.position(&m_char);\r
-      ignore_unused_variable_warning(diff);\r
-      diff = m_cresults.position(m_string);\r
-      ignore_unused_variable_warning(diff);\r
-      diff = m_cresults.position("");\r
-      ignore_unused_variable_warning(diff);\r
-      diff = m_cresults.position(std::string(""));\r
-      ignore_unused_variable_warning(diff);\r
-\r
-#ifndef BOOST_NO_STD_LOCALE\r
-      m_stream << m_sub;\r
-      m_stream << m_cresults;\r
-#endif\r
-   }\r
-\r
-   std::basic_ostream<value_type> m_stream;\r
-   sub_match_type m_sub;\r
-   pointer_type m_pointer;\r
-   string_type m_string;\r
-   const value_type m_char;\r
-   match_results_type m_results;\r
-   const match_results_type m_cresults;\r
-\r
-   BoostRegexConcept();\r
-   BoostRegexConcept(const BoostRegexConcept&);\r
-   BoostRegexConcept& operator=(const BoostRegexConcept&);\r
-};\r
-\r
-#endif // BOOST_REGEX_TEST_STD\r
-\r
-}\r
-\r
-#endif\r
+/*
+ *
+ * Copyright (c) 2004
+ * John Maddock
+ *
+ * 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)
+ *
+ */
+ /*
+  *   LOCATION:    see http://www.boost.org for most recent version.
+  *   FILE         concepts.hpp
+  *   VERSION      see <boost/version.hpp>
+  *   DESCRIPTION: Declares regular expression concepts.
+  */
+
+#ifndef BOOST_REGEX_CONCEPTS_HPP_INCLUDED
+#define BOOST_REGEX_CONCEPTS_HPP_INCLUDED
+
+#include <boost/concept_archetype.hpp>
+#include <boost/concept_check.hpp>
+#include <boost/type_traits/is_enum.hpp>
+#include <boost/type_traits/is_base_and_derived.hpp>
+#include <boost/static_assert.hpp>
+#ifndef BOOST_TEST_TR1_REGEX
+#include <boost/regex.hpp>
+#endif
+#include <bitset>
+#include <vector>
+#include <iostream>
+
+namespace boost{
+
+//
+// bitmask_archetype:
+// this can be either an integer type, an enum, or a std::bitset,
+// we use the latter as the architype as it offers the "strictest"
+// of the possible interfaces:
+//
+typedef std::bitset<512> bitmask_archetype;
+//
+// char_architype:
+// A strict model for the character type interface.
+//
+struct char_architype
+{
+   // default constructable:
+   char_architype();
+   // copy constructable / assignable:
+   char_architype(const char_architype&);
+   char_architype& operator=(const char_architype&);
+   // constructable from an integral value:
+   char_architype(unsigned long val);
+   // comparable:
+   bool operator==(const char_architype&)const;
+   bool operator!=(const char_architype&)const;
+   bool operator<(const char_architype&)const;
+   bool operator<=(const char_architype&)const;
+   bool operator>=(const char_architype&)const;
+   bool operator>(const char_architype&)const;
+   // conversion to integral type:
+   operator long()const;
+};
+//
+// char_architype can not be used with basic_string:
+//
+} // namespace boost
+namespace std{
+   template<> struct char_traits<boost::char_architype>
+   {
+      // The intent is that this template is not instantiated,
+      // but this typedef gives us a chance of compilation in
+      // case it is:
+      typedef boost::char_architype char_type;
+   };
+}
+namespace boost{
+//
+// regex_traits_architype:
+// A strict interpretation of the regular expression traits class requirements.
+//
+template <class charT>
+struct regex_traits_architype
+{
+public:
+   regex_traits_architype();
+   typedef charT char_type;
+   // typedef std::size_t size_type;
+   typedef std::vector<char_type> string_type;
+   typedef copy_constructible_archetype<assignable_archetype<> > locale_type;
+   typedef bitmask_archetype char_class_type;
+
+   static std::size_t length(const char_type* ) { return 0; }
+
+   charT translate(charT ) const { return charT(); }
+   charT translate_nocase(charT ) const { return static_object<charT>::get(); }
+
+   template <class ForwardIterator>
+   string_type transform(ForwardIterator , ForwardIterator ) const
+   { return static_object<string_type>::get(); }
+   template <class ForwardIterator>
+   string_type transform_primary(ForwardIterator , ForwardIterator ) const
+   { return static_object<string_type>::get(); }
+
+   template <class ForwardIterator>
+   char_class_type lookup_classname(ForwardIterator , ForwardIterator ) const
+   { return static_object<char_class_type>::get(); }
+   template <class ForwardIterator>
+   string_type lookup_collatename(ForwardIterator , ForwardIterator ) const
+   { return static_object<string_type>::get(); }
+
+   bool isctype(charT, char_class_type) const
+   { return false; }
+   int value(charT, int) const
+   { return 0; }
+
+   locale_type imbue(locale_type l)
+   { return l; }
+   locale_type getloc()const
+   { return static_object<locale_type>::get(); }
+
+private:
+   // this type is not copyable:
+   regex_traits_architype(const regex_traits_architype&);
+   regex_traits_architype& operator=(const regex_traits_architype&);
+};
+
+//
+// alter this to std::tr1, to test a std implementation:
+//
+#ifndef BOOST_TEST_TR1_REGEX
+namespace global_regex_namespace = ::boost;
+#else
+namespace global_regex_namespace = ::std::tr1;
+#endif
+
+template <class Bitmask>
+struct BitmaskConcept
+{
+   void constraints() 
+   {
+      function_requires<CopyConstructibleConcept<Bitmask> >();
+      function_requires<AssignableConcept<Bitmask> >();
+
+      m_mask1 = m_mask2 | m_mask3;
+      m_mask1 = m_mask2 & m_mask3;
+      m_mask1 = m_mask2 ^ m_mask3;
+
+      m_mask1 = ~m_mask2;
+
+      m_mask1 |= m_mask2;
+      m_mask1 &= m_mask2;
+      m_mask1 ^= m_mask2;
+   }
+   Bitmask m_mask1, m_mask2, m_mask3;
+};
+
+template <class traits>
+struct RegexTraitsConcept
+{
+   RegexTraitsConcept();
+   // required typedefs:
+   typedef typename traits::char_type char_type;
+   // typedef typename traits::size_type size_type;
+   typedef typename traits::string_type string_type;
+   typedef typename traits::locale_type locale_type;
+   typedef typename traits::char_class_type char_class_type;
+
+   void constraints() 
+   {
+      //function_requires<UnsignedIntegerConcept<size_type> >();
+      function_requires<RandomAccessContainerConcept<string_type> >();
+      function_requires<DefaultConstructibleConcept<locale_type> >();
+      function_requires<CopyConstructibleConcept<locale_type> >();
+      function_requires<AssignableConcept<locale_type> >();
+      function_requires<BitmaskConcept<char_class_type> >();
+
+      std::size_t n = traits::length(m_pointer);
+      ignore_unused_variable_warning(n);
+
+      char_type c = m_ctraits.translate(m_char);
+      ignore_unused_variable_warning(c);
+      c = m_ctraits.translate_nocase(m_char);
+      
+      //string_type::foobar bar;
+      string_type s1 = m_ctraits.transform(m_pointer, m_pointer);
+      ignore_unused_variable_warning(s1);
+
+      string_type s2 = m_ctraits.transform_primary(m_pointer, m_pointer);
+      ignore_unused_variable_warning(s2);
+
+      char_class_type cc = m_ctraits.lookup_classname(m_pointer, m_pointer);
+      ignore_unused_variable_warning(cc);
+
+      string_type s3 = m_ctraits.lookup_collatename(m_pointer, m_pointer);
+      ignore_unused_variable_warning(s3);
+
+      bool b = m_ctraits.isctype(m_char, cc);
+      ignore_unused_variable_warning(b);
+
+      int v = m_ctraits.value(m_char, 16);
+      ignore_unused_variable_warning(v);
+
+      locale_type l(m_ctraits.getloc());
+      m_traits.imbue(l);
+      ignore_unused_variable_warning(l);
+   }
+   traits m_traits;
+   const traits m_ctraits;
+   const char_type* m_pointer;
+   char_type m_char;
+private:
+   RegexTraitsConcept& operator=(RegexTraitsConcept&);
+};
+
+//
+// helper class to compute what traits class a regular expression type is using:
+//
+template <class Regex>
+struct regex_traits_computer;
+
+template <class charT, class traits>
+struct regex_traits_computer< global_regex_namespace::basic_regex<charT, traits> >
+{
+   typedef traits type;
+};
+
+//
+// BaseRegexConcept does not test anything dependent on basic_string,
+// in case our charT does not have an associated char_traits:
+//
+template <class Regex>
+struct BaseRegexConcept
+{
+   typedef typename Regex::value_type value_type;
+   //typedef typename Regex::size_type size_type;
+   typedef typename Regex::flag_type flag_type;
+   typedef typename Regex::locale_type locale_type;
+   typedef input_iterator_archetype<value_type> input_iterator_type;
+
+   // derived test types:
+   typedef const value_type* pointer_type;
+   typedef bidirectional_iterator_archetype<value_type> BidiIterator;
+   typedef global_regex_namespace::sub_match<BidiIterator> sub_match_type;
+   typedef global_regex_namespace::match_results<BidiIterator> match_results_type;
+   typedef output_iterator_archetype<value_type> OutIterator;
+   typedef typename regex_traits_computer<Regex>::type traits_type;
+   typedef global_regex_namespace::regex_iterator<BidiIterator, value_type, traits_type> regex_iterator_type;
+   typedef global_regex_namespace::regex_token_iterator<BidiIterator, value_type, traits_type> regex_token_iterator_type;
+
+   void global_constraints()
+   {
+      //
+      // test non-template components:
+      //
+      function_requires<BitmaskConcept<global_regex_namespace::regex_constants::syntax_option_type> >();
+      global_regex_namespace::regex_constants::syntax_option_type opts
+         = global_regex_namespace::regex_constants::icase
+         | global_regex_namespace::regex_constants::nosubs
+         | global_regex_namespace::regex_constants::optimize
+         | global_regex_namespace::regex_constants::collate
+         | global_regex_namespace::regex_constants::ECMAScript
+         | global_regex_namespace::regex_constants::basic
+         | global_regex_namespace::regex_constants::extended
+         | global_regex_namespace::regex_constants::awk
+         | global_regex_namespace::regex_constants::grep
+         | global_regex_namespace::regex_constants::egrep;
+      ignore_unused_variable_warning(opts);
+
+      function_requires<BitmaskConcept<global_regex_namespace::regex_constants::match_flag_type> >();
+      global_regex_namespace::regex_constants::match_flag_type mopts
+         = global_regex_namespace::regex_constants::match_default
+         | global_regex_namespace::regex_constants::match_not_bol
+         | global_regex_namespace::regex_constants::match_not_eol
+         | global_regex_namespace::regex_constants::match_not_bow
+         | global_regex_namespace::regex_constants::match_not_eow
+         | global_regex_namespace::regex_constants::match_any
+         | global_regex_namespace::regex_constants::match_not_null
+         | global_regex_namespace::regex_constants::match_continuous
+         | global_regex_namespace::regex_constants::match_prev_avail
+         | global_regex_namespace::regex_constants::format_default
+         | global_regex_namespace::regex_constants::format_sed
+         | global_regex_namespace::regex_constants::format_no_copy
+         | global_regex_namespace::regex_constants::format_first_only;
+      ignore_unused_variable_warning(mopts);
+
+      BOOST_STATIC_ASSERT((::boost::is_enum<global_regex_namespace::regex_constants::error_type>::value));
+      global_regex_namespace::regex_constants::error_type e1 = global_regex_namespace::regex_constants::error_collate;
+      ignore_unused_variable_warning(e1);
+      e1 = global_regex_namespace::regex_constants::error_ctype;
+      ignore_unused_variable_warning(e1);
+      e1 = global_regex_namespace::regex_constants::error_escape;
+      ignore_unused_variable_warning(e1);
+      e1 = global_regex_namespace::regex_constants::error_backref;
+      ignore_unused_variable_warning(e1);
+      e1 = global_regex_namespace::regex_constants::error_brack;
+      ignore_unused_variable_warning(e1);
+      e1 = global_regex_namespace::regex_constants::error_paren;
+      ignore_unused_variable_warning(e1);
+      e1 = global_regex_namespace::regex_constants::error_brace;
+      ignore_unused_variable_warning(e1);
+      e1 = global_regex_namespace::regex_constants::error_badbrace;
+      ignore_unused_variable_warning(e1);
+      e1 = global_regex_namespace::regex_constants::error_range;
+      ignore_unused_variable_warning(e1);
+      e1 = global_regex_namespace::regex_constants::error_space;
+      ignore_unused_variable_warning(e1);
+      e1 = global_regex_namespace::regex_constants::error_badrepeat;
+      ignore_unused_variable_warning(e1);
+      e1 = global_regex_namespace::regex_constants::error_complexity;
+      ignore_unused_variable_warning(e1);
+      e1 = global_regex_namespace::regex_constants::error_stack;
+      ignore_unused_variable_warning(e1);
+
+      BOOST_STATIC_ASSERT((::boost::is_base_and_derived<std::runtime_error, global_regex_namespace::regex_error>::value  ));
+      const global_regex_namespace::regex_error except(e1);
+      e1 = except.code();
+
+      typedef typename Regex::value_type value_type;
+      function_requires< RegexTraitsConcept<global_regex_namespace::regex_traits<char> > >();
+      function_requires< BaseRegexConcept<global_regex_namespace::basic_regex<char> > >();
+   }
+   void constraints() 
+   {
+      global_constraints();
+
+      BOOST_STATIC_ASSERT((::boost::is_same< flag_type, global_regex_namespace::regex_constants::syntax_option_type>::value));
+      flag_type opts
+         = Regex::icase
+         | Regex::nosubs
+         | Regex::optimize
+         | Regex::collate
+         | Regex::ECMAScript
+         | Regex::basic
+         | Regex::extended
+         | Regex::awk
+         | Regex::grep
+         | Regex::egrep;
+      ignore_unused_variable_warning(opts);
+
+      function_requires<DefaultConstructibleConcept<Regex> >();
+      function_requires<CopyConstructibleConcept<Regex> >();
+
+      // Regex constructors:
+      Regex e1(m_pointer);
+      ignore_unused_variable_warning(e1);
+      Regex e2(m_pointer, m_flags);
+      ignore_unused_variable_warning(e2);
+      Regex e3(m_pointer, m_size, m_flags);
+      ignore_unused_variable_warning(e3);
+      Regex e4(in1, in2);
+      ignore_unused_variable_warning(e4);
+      Regex e5(in1, in2, m_flags);
+      ignore_unused_variable_warning(e5);
+
+      // assign etc:
+      Regex e;
+      e = m_pointer;
+      e = e1;
+      e.assign(e1);
+      e.assign(m_pointer);
+      e.assign(m_pointer, m_flags);
+      e.assign(m_pointer, m_size, m_flags);
+      e.assign(in1, in2);
+      e.assign(in1, in2, m_flags);
+
+      // access:
+      const Regex ce;
+      unsigned i = ce.mark_count();
+      ignore_unused_variable_warning(i);
+      m_flags = ce.flags();
+      e.imbue(ce.getloc());
+      e.swap(e1);
+      
+      global_regex_namespace::swap(e, e1);
+
+      // sub_match:
+      BOOST_STATIC_ASSERT((::boost::is_base_and_derived<std::pair<BidiIterator, BidiIterator>, sub_match_type>::value));
+      typedef typename sub_match_type::value_type sub_value_type;
+      typedef typename sub_match_type::difference_type sub_diff_type;
+      typedef typename sub_match_type::iterator sub_iter_type;
+      BOOST_STATIC_ASSERT((::boost::is_same<sub_value_type, value_type>::value));
+      BOOST_STATIC_ASSERT((::boost::is_same<sub_iter_type, BidiIterator>::value));
+      bool b = m_sub.matched;
+      ignore_unused_variable_warning(b);
+      BidiIterator bi = m_sub.first;
+      ignore_unused_variable_warning(bi);
+      bi = m_sub.second;
+      ignore_unused_variable_warning(bi);
+      sub_diff_type diff = m_sub.length();
+      ignore_unused_variable_warning(diff);
+      // match_results tests:
+      typedef typename match_results_type::value_type mr_value_type;
+      typedef typename match_results_type::const_reference mr_const_reference;
+      typedef typename match_results_type::reference mr_reference;
+      typedef typename match_results_type::const_iterator mr_const_iterator;
+      typedef typename match_results_type::iterator mr_iterator;
+      typedef typename match_results_type::difference_type mr_difference_type;
+      typedef typename match_results_type::size_type mr_size_type;
+      typedef typename match_results_type::allocator_type mr_allocator_type;
+      typedef typename match_results_type::char_type mr_char_type;
+      typedef typename match_results_type::string_type mr_string_type;
+
+      match_results_type m1;
+      mr_allocator_type at;
+      match_results_type m2(at);
+      match_results_type m3(m1);
+      m1 = m2;
+
+      int ival = 0;
+
+      mr_size_type mrs = m_cresults.size();
+      ignore_unused_variable_warning(mrs);
+      mrs = m_cresults.max_size();
+      ignore_unused_variable_warning(mrs);
+      b = m_cresults.empty();
+      ignore_unused_variable_warning(b);
+      mr_difference_type mrd = m_cresults.length();
+      ignore_unused_variable_warning(mrd);
+      mrd = m_cresults.length(ival);
+      ignore_unused_variable_warning(mrd);
+      mrd = m_cresults.position();
+      ignore_unused_variable_warning(mrd);
+      mrd = m_cresults.position(mrs);
+      ignore_unused_variable_warning(mrd);
+
+      mr_const_reference mrcr = m_cresults[ival];
+      ignore_unused_variable_warning(mrcr);
+      mr_const_reference mrcr2 = m_cresults.prefix();
+      ignore_unused_variable_warning(mrcr2);
+      mr_const_reference mrcr3 = m_cresults.suffix();
+      ignore_unused_variable_warning(mrcr3);
+      mr_const_iterator mrci = m_cresults.begin();
+      ignore_unused_variable_warning(mrci);
+      mrci = m_cresults.end();
+      ignore_unused_variable_warning(mrci);
+
+      mr_allocator_type at2 = m_cresults.get_allocator();
+      m_results.swap(m_results);
+      global_regex_namespace::swap(m_results, m_results);
+
+      // regex_match:
+      b = global_regex_namespace::regex_match(m_in, m_in, m_results, e);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_match(m_in, m_in, m_results, e, m_mft);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_match(m_in, m_in, e);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_match(m_in, m_in, e, m_mft);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_match(m_pointer, m_pmatch, e);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_match(m_pointer, m_pmatch, e, m_mft);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_match(m_pointer, e);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_match(m_pointer, e, m_mft);
+      ignore_unused_variable_warning(b);
+      // regex_search:
+      b = global_regex_namespace::regex_search(m_in, m_in, m_results, e);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_search(m_in, m_in, m_results, e, m_mft);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_search(m_in, m_in, e);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_search(m_in, m_in, e, m_mft);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_search(m_pointer, m_pmatch, e);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_search(m_pointer, m_pmatch, e, m_mft);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_search(m_pointer, e);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_search(m_pointer, e, m_mft);
+      ignore_unused_variable_warning(b);
+
+      // regex_iterator:
+      typedef typename regex_iterator_type::regex_type rit_regex_type;
+      typedef typename regex_iterator_type::value_type rit_value_type;
+      typedef typename regex_iterator_type::difference_type rit_difference_type;
+      typedef typename regex_iterator_type::pointer rit_pointer;
+      typedef typename regex_iterator_type::reference rit_reference;
+      typedef typename regex_iterator_type::iterator_category rit_iterator_category;
+      BOOST_STATIC_ASSERT((::boost::is_same<rit_regex_type, Regex>::value));
+      BOOST_STATIC_ASSERT((::boost::is_same<rit_value_type, match_results_type>::value));
+      BOOST_STATIC_ASSERT((::boost::is_same<rit_difference_type, std::ptrdiff_t>::value));
+      BOOST_STATIC_ASSERT((::boost::is_same<rit_pointer, const match_results_type*>::value));
+      BOOST_STATIC_ASSERT((::boost::is_same<rit_reference, const match_results_type&>::value));
+      BOOST_STATIC_ASSERT((::boost::is_convertible<rit_iterator_category*, std::forward_iterator_tag*>::value));
+      // this takes care of most of the checks needed:
+      function_requires<ForwardIteratorConcept<regex_iterator_type> >();
+      regex_iterator_type iter1(m_in, m_in, e);
+      ignore_unused_variable_warning(iter1);
+      regex_iterator_type iter2(m_in, m_in, e, m_mft);
+      ignore_unused_variable_warning(iter2);
+
+      // regex_token_iterator:
+      typedef typename regex_token_iterator_type::regex_type rtit_regex_type;
+      typedef typename regex_token_iterator_type::value_type rtit_value_type;
+      typedef typename regex_token_iterator_type::difference_type rtit_difference_type;
+      typedef typename regex_token_iterator_type::pointer rtit_pointer;
+      typedef typename regex_token_iterator_type::reference rtit_reference;
+      typedef typename regex_token_iterator_type::iterator_category rtit_iterator_category;
+      BOOST_STATIC_ASSERT((::boost::is_same<rtit_regex_type, Regex>::value));
+      BOOST_STATIC_ASSERT((::boost::is_same<rtit_value_type, sub_match_type>::value));
+      BOOST_STATIC_ASSERT((::boost::is_same<rtit_difference_type, std::ptrdiff_t>::value));
+      BOOST_STATIC_ASSERT((::boost::is_same<rtit_pointer, const sub_match_type*>::value));
+      BOOST_STATIC_ASSERT((::boost::is_same<rtit_reference, const sub_match_type&>::value));
+      BOOST_STATIC_ASSERT((::boost::is_convertible<rtit_iterator_category*, std::forward_iterator_tag*>::value));
+      // this takes care of most of the checks needed:
+      function_requires<ForwardIteratorConcept<regex_token_iterator_type> >();
+      regex_token_iterator_type ti1(m_in, m_in, e);
+      ignore_unused_variable_warning(ti1);
+      regex_token_iterator_type ti2(m_in, m_in, e, 0);
+      ignore_unused_variable_warning(ti2);
+      regex_token_iterator_type ti3(m_in, m_in, e, 0, m_mft);
+      ignore_unused_variable_warning(ti3);
+      std::vector<int> subs;
+      regex_token_iterator_type ti4(m_in, m_in, e, subs);
+      ignore_unused_variable_warning(ti4);
+      regex_token_iterator_type ti5(m_in, m_in, e, subs, m_mft);
+      ignore_unused_variable_warning(ti5);
+      static const int i_array[3] = { 1, 2, 3, };
+      regex_token_iterator_type ti6(m_in, m_in, e, i_array);
+      ignore_unused_variable_warning(ti6);
+      regex_token_iterator_type ti7(m_in, m_in, e, i_array, m_mft);
+      ignore_unused_variable_warning(ti7);
+   }
+
+   pointer_type m_pointer;
+   flag_type m_flags;
+   std::size_t m_size;
+   input_iterator_type in1, in2;
+   const sub_match_type m_sub;
+   const value_type m_char;
+   match_results_type m_results;
+   const match_results_type m_cresults;
+   OutIterator m_out;
+   BidiIterator m_in;
+   global_regex_namespace::regex_constants::match_flag_type m_mft;
+   global_regex_namespace::match_results<pointer_type> m_pmatch;
+
+   BaseRegexConcept();
+   BaseRegexConcept(const BaseRegexConcept&);
+   BaseRegexConcept& operator=(const BaseRegexConcept&);
+};
+
+//
+// RegexConcept:
+// Test every interface in the std:
+//
+template <class Regex>
+struct RegexConcept
+{
+   typedef typename Regex::value_type value_type;
+   //typedef typename Regex::size_type size_type;
+   typedef typename Regex::flag_type flag_type;
+   typedef typename Regex::locale_type locale_type;
+
+   // derived test types:
+   typedef const value_type* pointer_type;
+   typedef std::basic_string<value_type> string_type;
+   typedef boost::bidirectional_iterator_archetype<value_type> BidiIterator;
+   typedef global_regex_namespace::sub_match<BidiIterator> sub_match_type;
+   typedef global_regex_namespace::match_results<BidiIterator> match_results_type;
+   typedef output_iterator_archetype<value_type> OutIterator;
+
+
+   void constraints() 
+   {
+      function_requires<BaseRegexConcept<Regex> >();
+      // string based construct:
+      Regex e1(m_string);
+      ignore_unused_variable_warning(e1);
+      Regex e2(m_string, m_flags);
+      ignore_unused_variable_warning(e2);
+
+      // assign etc:
+      Regex e;
+      e = m_string;
+      e.assign(m_string);
+      e.assign(m_string, m_flags);
+
+      // sub_match:
+      string_type s(m_sub);
+      ignore_unused_variable_warning(s);
+      s = m_sub.str();
+      ignore_unused_variable_warning(s);
+      int i = m_sub.compare(m_string);
+      ignore_unused_variable_warning(i);
+
+      int i2 = m_sub.compare(m_sub);
+      ignore_unused_variable_warning(i2);
+      i2 = m_sub.compare(m_pointer);
+      ignore_unused_variable_warning(i2);
+
+      bool b = m_sub == m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_sub != m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_sub <= m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_sub <= m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_sub > m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_sub >= m_sub;
+      ignore_unused_variable_warning(b);
+
+      b = m_sub == m_pointer;
+      ignore_unused_variable_warning(b);
+      b = m_sub != m_pointer;
+      ignore_unused_variable_warning(b);
+      b = m_sub <= m_pointer;
+      ignore_unused_variable_warning(b);
+      b = m_sub <= m_pointer;
+      ignore_unused_variable_warning(b);
+      b = m_sub > m_pointer;
+      ignore_unused_variable_warning(b);
+      b = m_sub >= m_pointer;
+      ignore_unused_variable_warning(b);
+
+      b = m_pointer == m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_pointer != m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_pointer <= m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_pointer <= m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_pointer > m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_pointer >= m_sub;
+      ignore_unused_variable_warning(b);
+
+      b = m_sub == m_char;
+      ignore_unused_variable_warning(b);
+      b = m_sub != m_char;
+      ignore_unused_variable_warning(b);
+      b = m_sub <= m_char;
+      ignore_unused_variable_warning(b);
+      b = m_sub <= m_char;
+      ignore_unused_variable_warning(b);
+      b = m_sub > m_char;
+      ignore_unused_variable_warning(b);
+      b = m_sub >= m_char;
+      ignore_unused_variable_warning(b);
+
+      b = m_char == m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_char != m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_char <= m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_char <= m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_char > m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_char >= m_sub;
+      ignore_unused_variable_warning(b);
+
+      b = m_sub == m_string;
+      ignore_unused_variable_warning(b);
+      b = m_sub != m_string;
+      ignore_unused_variable_warning(b);
+      b = m_sub <= m_string;
+      ignore_unused_variable_warning(b);
+      b = m_sub <= m_string;
+      ignore_unused_variable_warning(b);
+      b = m_sub > m_string;
+      ignore_unused_variable_warning(b);
+      b = m_sub >= m_string;
+      ignore_unused_variable_warning(b);
+
+      b = m_string == m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_string != m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_string <= m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_string <= m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_string > m_sub;
+      ignore_unused_variable_warning(b);
+      b = m_string >= m_sub;
+      ignore_unused_variable_warning(b);
+
+      // match results:
+      m_string = m_results.str();
+      ignore_unused_variable_warning(m_string);
+      m_string = m_results.str(0);
+      ignore_unused_variable_warning(m_string);
+      m_out = m_cresults.format(m_out, m_string);
+      m_out = m_cresults.format(m_out, m_string, m_mft);
+      m_string = m_cresults.format(m_string);
+      ignore_unused_variable_warning(m_string);
+      m_string = m_cresults.format(m_string, m_mft);
+      ignore_unused_variable_warning(m_string);
+
+      // regex_match:
+      b = global_regex_namespace::regex_match(m_string, m_smatch, e);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_match(m_string, m_smatch, e, m_mft);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_match(m_string, e);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_match(m_string, e, m_mft);
+      ignore_unused_variable_warning(b);
+
+      // regex_search:
+      b = global_regex_namespace::regex_search(m_string, m_smatch, e);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_search(m_string, m_smatch, e, m_mft);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_search(m_string, e);
+      ignore_unused_variable_warning(b);
+      b = global_regex_namespace::regex_search(m_string, e, m_mft);
+      ignore_unused_variable_warning(b);
+
+      // regex_replace:
+      m_out = global_regex_namespace::regex_replace(m_out, m_in, m_in, e, m_string, m_mft);
+      m_out = global_regex_namespace::regex_replace(m_out, m_in, m_in, e, m_string);
+      m_string = global_regex_namespace::regex_replace(m_string, e, m_string, m_mft);
+      ignore_unused_variable_warning(m_string);
+      m_string = global_regex_namespace::regex_replace(m_string, e, m_string);
+      ignore_unused_variable_warning(m_string);
+
+   }
+
+   flag_type m_flags;
+   string_type m_string;
+   const sub_match_type m_sub;
+   match_results_type m_results;
+   pointer_type m_pointer;
+   value_type m_char;
+   const match_results_type m_cresults;
+   OutIterator m_out;
+   BidiIterator m_in;
+   global_regex_namespace::regex_constants::match_flag_type m_mft;
+   global_regex_namespace::match_results<typename string_type::const_iterator> m_smatch;
+
+   RegexConcept();
+   RegexConcept(const RegexConcept&);
+   RegexConcept& operator=(const RegexConcept&);
+};
+
+#ifndef BOOST_REGEX_TEST_STD
+//
+// BoostRegexConcept:
+// Test every interface in the Boost implementation:
+//
+template <class Regex>
+struct BoostRegexConcept
+{
+   typedef typename Regex::value_type value_type;
+   typedef typename Regex::size_type size_type;
+   typedef typename Regex::flag_type flag_type;
+   typedef typename Regex::locale_type locale_type;
+
+   // derived test types:
+   typedef const value_type* pointer_type;
+   typedef std::basic_string<value_type> string_type;
+   typedef typename Regex::const_iterator const_iterator;
+   typedef bidirectional_iterator_archetype<value_type> BidiIterator;
+   typedef global_regex_namespace::sub_match<BidiIterator> sub_match_type;
+   typedef global_regex_namespace::match_results<BidiIterator> match_results_type;
+
+   void constraints() 
+   {
+      global_regex_namespace::regex_constants::match_flag_type mopts
+         = global_regex_namespace::regex_constants::match_default
+         | global_regex_namespace::regex_constants::match_not_bol
+         | global_regex_namespace::regex_constants::match_not_eol
+         | global_regex_namespace::regex_constants::match_not_bow
+         | global_regex_namespace::regex_constants::match_not_eow
+         | global_regex_namespace::regex_constants::match_any
+         | global_regex_namespace::regex_constants::match_not_null
+         | global_regex_namespace::regex_constants::match_continuous
+         | global_regex_namespace::regex_constants::match_partial
+         | global_regex_namespace::regex_constants::match_prev_avail
+         | global_regex_namespace::regex_constants::format_default
+         | global_regex_namespace::regex_constants::format_sed
+         | global_regex_namespace::regex_constants::format_perl
+         | global_regex_namespace::regex_constants::format_no_copy
+         | global_regex_namespace::regex_constants::format_first_only;
+
+      (void)mopts;
+
+      function_requires<RegexConcept<Regex> >();
+      const global_regex_namespace::regex_error except(global_regex_namespace::regex_constants::error_collate);
+      std::ptrdiff_t pt = except.position();
+      ignore_unused_variable_warning(pt);
+      const Regex ce, ce2;
+#ifndef BOOST_NO_STD_LOCALE
+      m_stream << ce;
+#endif
+      unsigned i = ce.error_code();
+      ignore_unused_variable_warning(i);
+      pointer_type p = ce.expression();
+      ignore_unused_variable_warning(p);
+      int i2 = ce.compare(ce2);
+      ignore_unused_variable_warning(i2);
+      bool b = ce == ce2;
+      ignore_unused_variable_warning(b);
+      b = ce.empty();
+      ignore_unused_variable_warning(b);
+      b = ce != ce2;
+      ignore_unused_variable_warning(b);
+      b = ce < ce2;
+      ignore_unused_variable_warning(b);
+      b = ce > ce2;
+      ignore_unused_variable_warning(b);
+      b = ce <= ce2;
+      ignore_unused_variable_warning(b);
+      b = ce >= ce2;
+      ignore_unused_variable_warning(b);
+      i = ce.status();
+      ignore_unused_variable_warning(i);
+      size_type s = ce.max_size();
+      ignore_unused_variable_warning(s);
+      s = ce.size();
+      ignore_unused_variable_warning(s);
+      const_iterator pi = ce.begin();
+      ignore_unused_variable_warning(pi);
+      pi = ce.end();
+      ignore_unused_variable_warning(pi);
+      string_type s2 = ce.str();
+      ignore_unused_variable_warning(s2);
+
+      m_string = m_sub + m_sub;
+      ignore_unused_variable_warning(m_string);
+      m_string = m_sub + m_pointer;
+      ignore_unused_variable_warning(m_string);
+      m_string = m_pointer + m_sub;
+      ignore_unused_variable_warning(m_string);
+      m_string = m_sub + m_string;
+      ignore_unused_variable_warning(m_string);
+      m_string = m_string + m_sub;
+      ignore_unused_variable_warning(m_string);
+      m_string = m_sub + m_char;
+      ignore_unused_variable_warning(m_string);
+      m_string = m_char + m_sub;
+      ignore_unused_variable_warning(m_string);
+
+      // Named sub-expressions:
+      m_sub = m_cresults[&m_char];
+      ignore_unused_variable_warning(m_sub);
+      m_sub = m_cresults[m_string];
+      ignore_unused_variable_warning(m_sub);
+      m_sub = m_cresults[""];
+      ignore_unused_variable_warning(m_sub);
+      m_sub = m_cresults[std::string("")];
+      ignore_unused_variable_warning(m_sub);
+      m_string = m_cresults.str(&m_char);
+      ignore_unused_variable_warning(m_string);
+      m_string = m_cresults.str(m_string);
+      ignore_unused_variable_warning(m_string);
+      m_string = m_cresults.str("");
+      ignore_unused_variable_warning(m_string);
+      m_string = m_cresults.str(std::string(""));
+      ignore_unused_variable_warning(m_string);
+
+      typename match_results_type::difference_type diff;
+      diff = m_cresults.length(&m_char);
+      ignore_unused_variable_warning(diff);
+      diff = m_cresults.length(m_string);
+      ignore_unused_variable_warning(diff);
+      diff = m_cresults.length("");
+      ignore_unused_variable_warning(diff);
+      diff = m_cresults.length(std::string(""));
+      ignore_unused_variable_warning(diff);
+      diff = m_cresults.position(&m_char);
+      ignore_unused_variable_warning(diff);
+      diff = m_cresults.position(m_string);
+      ignore_unused_variable_warning(diff);
+      diff = m_cresults.position("");
+      ignore_unused_variable_warning(diff);
+      diff = m_cresults.position(std::string(""));
+      ignore_unused_variable_warning(diff);
+
+#ifndef BOOST_NO_STD_LOCALE
+      m_stream << m_sub;
+      m_stream << m_cresults;
+#endif
+   }
+
+   std::basic_ostream<value_type> m_stream;
+   sub_match_type m_sub;
+   pointer_type m_pointer;
+   string_type m_string;
+   const value_type m_char;
+   match_results_type m_results;
+   const match_results_type m_cresults;
+
+   BoostRegexConcept();
+   BoostRegexConcept(const BoostRegexConcept&);
+   BoostRegexConcept& operator=(const BoostRegexConcept&);
+};
+
+#endif // BOOST_REGEX_TEST_STD
+
+}
+
+#endif
index 622ddc2275bc4086b307e8fd38e548469cf4e102..247155724e25a07e4d7bc7435d03c5412020322e 100644 (file)
-/*\r
- *\r
- * Copyright (c) 2004\r
- * John Maddock\r
- *\r
- * Use, modification and distribution are subject to the \r
- * Boost Software License, Version 1.0. (See accompanying file \r
- * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
- *\r
- */\r
-\r
- /*\r
-  *   LOCATION:    see http://www.boost.org for most recent version.\r
-  *   FILE         icu.hpp\r
-  *   VERSION      see <boost/version.hpp>\r
-  *   DESCRIPTION: Unicode regular expressions on top of the ICU Library.\r
-  */\r
-\r
-#ifndef BOOST_REGEX_ICU_HPP\r
-#define BOOST_REGEX_ICU_HPP\r
-\r
-#include <unicode/utypes.h>\r
-#include <unicode/uchar.h>\r
-#include <unicode/coll.h>\r
-#include <boost/regex.hpp>\r
-#include <boost/regex/pending/unicode_iterator.hpp>\r
-#include <boost/mpl/int_fwd.hpp>\r
-#include <bitset>\r
-\r
-\r
-namespace boost{\r
-\r
-namespace re_detail{\r
-\r
-// \r
-// Implementation details:\r
-//\r
-class BOOST_REGEX_DECL icu_regex_traits_implementation\r
-{\r
-   typedef UChar32                      char_type;\r
-   typedef std::size_t                  size_type;\r
-   typedef std::vector<char_type>       string_type;\r
-   typedef U_NAMESPACE_QUALIFIER Locale locale_type;\r
-   typedef boost::uint_least32_t        char_class_type;\r
-public:\r
-   icu_regex_traits_implementation(const U_NAMESPACE_QUALIFIER Locale& l)\r
-      : m_locale(l)\r
-   {\r
-      UErrorCode success = U_ZERO_ERROR;\r
-      m_collator.reset(U_NAMESPACE_QUALIFIER Collator::createInstance(l, success));\r
-      if(U_SUCCESS(success) == 0)\r
-         init_error();\r
-      m_collator->setStrength(U_NAMESPACE_QUALIFIER Collator::IDENTICAL);\r
-      success = U_ZERO_ERROR;\r
-      m_primary_collator.reset(U_NAMESPACE_QUALIFIER Collator::createInstance(l, success));\r
-      if(U_SUCCESS(success) == 0)\r
-         init_error();\r
-      m_primary_collator->setStrength(U_NAMESPACE_QUALIFIER Collator::PRIMARY);\r
-   }\r
-   U_NAMESPACE_QUALIFIER Locale getloc()const\r
-   {\r
-      return m_locale;\r
-   }\r
-   string_type do_transform(const char_type* p1, const char_type* p2, const U_NAMESPACE_QUALIFIER Collator* pcoll) const;\r
-   string_type transform(const char_type* p1, const char_type* p2) const\r
-   {\r
-      return do_transform(p1, p2, m_collator.get());\r
-   }\r
-   string_type transform_primary(const char_type* p1, const char_type* p2) const\r
-   {\r
-      return do_transform(p1, p2, m_primary_collator.get());\r
-   }\r
-private:\r
-   void init_error()\r
-   {\r
-      std::runtime_error e("Could not initialize ICU resources");\r
-      boost::throw_exception(e);\r
-   }\r
-   U_NAMESPACE_QUALIFIER Locale m_locale;                                  // The ICU locale that we're using\r
-   boost::scoped_ptr< U_NAMESPACE_QUALIFIER Collator> m_collator;          // The full collation object\r
-   boost::scoped_ptr< U_NAMESPACE_QUALIFIER Collator> m_primary_collator;  // The primary collation object\r
-};\r
-\r
-inline boost::shared_ptr<icu_regex_traits_implementation> get_icu_regex_traits_implementation(const U_NAMESPACE_QUALIFIER Locale& loc)\r
-{\r
-   return boost::shared_ptr<icu_regex_traits_implementation>(new icu_regex_traits_implementation(loc));\r
-}\r
-\r
-}\r
-\r
-class BOOST_REGEX_DECL icu_regex_traits\r
-{\r
-public:\r
-   typedef UChar32                      char_type;\r
-   typedef std::size_t                  size_type;\r
-   typedef std::vector<char_type>       string_type;\r
-   typedef U_NAMESPACE_QUALIFIER Locale locale_type;\r
-#ifdef BOOST_NO_INT64_T\r
-   typedef std::bitset<64>              char_class_type;\r
-#else\r
-   typedef boost::uint64_t              char_class_type;\r
-#endif\r
-\r
-   struct boost_extensions_tag{};\r
-\r
-   icu_regex_traits()\r
-      : m_pimpl(re_detail::get_icu_regex_traits_implementation(U_NAMESPACE_QUALIFIER Locale()))\r
-   {\r
-   }\r
-   static size_type length(const char_type* p);\r
-\r
-   ::boost::regex_constants::syntax_type syntax_type(char_type c)const\r
-   {\r
-      return ((c < 0x7f) && (c > 0)) ? re_detail::get_default_syntax_type(static_cast<char>(c)) : regex_constants::syntax_char;\r
-   }\r
-   ::boost::regex_constants::escape_syntax_type escape_syntax_type(char_type c) const\r
-   {\r
-      return ((c < 0x7f) && (c > 0)) ? re_detail::get_default_escape_syntax_type(static_cast<char>(c)) : regex_constants::syntax_char;\r
-   }\r
-   char_type translate(char_type c) const\r
-   {\r
-      return c;\r
-   }\r
-   char_type translate_nocase(char_type c) const\r
-   {\r
-      return ::u_tolower(c);\r
-   }\r
-   char_type translate(char_type c, bool icase) const\r
-   {\r
-      return icase ? translate_nocase(c) : translate(c);\r
-   }\r
-   char_type tolower(char_type c) const\r
-   {\r
-      return ::u_tolower(c);\r
-   }\r
-   char_type toupper(char_type c) const\r
-   {\r
-      return ::u_toupper(c);\r
-   }\r
-   string_type transform(const char_type* p1, const char_type* p2) const\r
-   {\r
-      return m_pimpl->transform(p1, p2);\r
-   }\r
-   string_type transform_primary(const char_type* p1, const char_type* p2) const\r
-   {\r
-      return m_pimpl->transform_primary(p1, p2);\r
-   }\r
-   char_class_type lookup_classname(const char_type* p1, const char_type* p2) const;\r
-   string_type lookup_collatename(const char_type* p1, const char_type* p2) const;\r
-   bool isctype(char_type c, char_class_type f) const;\r
-   int toi(const char_type*& p1, const char_type* p2, int radix)const\r
-   {\r
-      return re_detail::global_toi(p1, p2, radix, *this);\r
-   }\r
-   int value(char_type c, int radix)const\r
-   {\r
-      return u_digit(c, static_cast< ::int8_t>(radix));\r
-   }\r
-   locale_type imbue(locale_type l)\r
-   {\r
-      locale_type result(m_pimpl->getloc());\r
-      m_pimpl = re_detail::get_icu_regex_traits_implementation(l);\r
-      return result;\r
-   }\r
-   locale_type getloc()const\r
-   {\r
-      return locale_type();\r
-   }\r
-   std::string error_string(::boost::regex_constants::error_type n) const\r
-   {\r
-      return re_detail::get_default_error_string(n);\r
-   }\r
-private:\r
-   icu_regex_traits(const icu_regex_traits&);\r
-   icu_regex_traits& operator=(const icu_regex_traits&);\r
-\r
-   //\r
-   // define the bitmasks offsets we need for additional character properties:\r
-   //\r
-   enum{\r
-      offset_blank = U_CHAR_CATEGORY_COUNT,\r
-      offset_space = U_CHAR_CATEGORY_COUNT+1,\r
-      offset_xdigit = U_CHAR_CATEGORY_COUNT+2,\r
-      offset_underscore = U_CHAR_CATEGORY_COUNT+3,\r
-      offset_unicode = U_CHAR_CATEGORY_COUNT+4,\r
-      offset_any = U_CHAR_CATEGORY_COUNT+5,\r
-      offset_ascii = U_CHAR_CATEGORY_COUNT+6,\r
-      offset_horizontal = U_CHAR_CATEGORY_COUNT+7,\r
-      offset_vertical = U_CHAR_CATEGORY_COUNT+8\r
-   };\r
-\r
-   //\r
-   // and now the masks:\r
-   //\r
-   static const char_class_type mask_blank;\r
-   static const char_class_type mask_space;\r
-   static const char_class_type mask_xdigit;\r
-   static const char_class_type mask_underscore;\r
-   static const char_class_type mask_unicode;\r
-   static const char_class_type mask_any;\r
-   static const char_class_type mask_ascii;\r
-   static const char_class_type mask_horizontal;\r
-   static const char_class_type mask_vertical;\r
-\r
-   static char_class_type lookup_icu_mask(const ::UChar32* p1, const ::UChar32* p2);\r
-\r
-   boost::shared_ptr< ::boost::re_detail::icu_regex_traits_implementation> m_pimpl;\r
-};\r
-\r
-} // namespace boost\r
-\r
-//\r
-// template instances:\r
-//\r
-#define BOOST_REGEX_CHAR_T UChar32\r
-#undef BOOST_REGEX_TRAITS_T\r
-#define BOOST_REGEX_TRAITS_T , icu_regex_traits\r
-#define BOOST_REGEX_ICU_INSTANCES\r
-#ifdef BOOST_REGEX_ICU_INSTANTIATE\r
-#  define BOOST_REGEX_INSTANTIATE\r
-#endif\r
-#include <boost/regex/v4/instances.hpp>\r
-#undef BOOST_REGEX_CHAR_T\r
-#undef BOOST_REGEX_TRAITS_T\r
-#undef BOOST_REGEX_ICU_INSTANCES\r
-#ifdef BOOST_REGEX_INSTANTIATE\r
-#  undef BOOST_REGEX_INSTANTIATE\r
-#endif\r
-\r
-namespace boost{\r
-\r
-// types:\r
-typedef basic_regex< ::UChar32, icu_regex_traits> u32regex;\r
-typedef match_results<const ::UChar32*> u32match;\r
-typedef match_results<const ::UChar*> u16match;\r
-\r
-//\r
-// Construction of 32-bit regex types from UTF-8 and UTF-16 primitives:\r
-//\r
-namespace re_detail{\r
-\r
-#if !defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(__IBMCPP__)\r
-template <class InputIterator>\r
-inline u32regex do_make_u32regex(InputIterator i, \r
-                              InputIterator j, \r
-                              boost::regex_constants::syntax_option_type opt, \r
-                              const boost::mpl::int_<1>*)\r
-{\r
-   typedef boost::u8_to_u32_iterator<InputIterator, UChar32> conv_type;\r
-   return u32regex(conv_type(i), conv_type(j), opt);\r
-}\r
-\r
-template <class InputIterator>\r
-inline u32regex do_make_u32regex(InputIterator i, \r
-                              InputIterator j, \r
-                              boost::regex_constants::syntax_option_type opt, \r
-                              const boost::mpl::int_<2>*)\r
-{\r
-   typedef boost::u16_to_u32_iterator<InputIterator, UChar32> conv_type;\r
-   return u32regex(conv_type(i), conv_type(j), opt);\r
-}\r
-\r
-template <class InputIterator>\r
-inline u32regex do_make_u32regex(InputIterator i, \r
-                              InputIterator j, \r
-                              boost::regex_constants::syntax_option_type opt, \r
-                              const boost::mpl::int_<4>*)\r
-{\r
-   return u32regex(i, j, opt);\r
-}\r
-#else\r
-template <class InputIterator>\r
-inline u32regex do_make_u32regex(InputIterator i, \r
-                              InputIterator j, \r
-                              boost::regex_constants::syntax_option_type opt, \r
-                              const boost::mpl::int_<1>*)\r
-{\r
-   typedef boost::u8_to_u32_iterator<InputIterator, UChar32> conv_type;\r
-   typedef std::vector<UChar32> vector_type;\r
-   vector_type v;\r
-   conv_type a(i), b(j);\r
-   while(a != b)\r
-   {\r
-      v.push_back(*a);\r
-      ++a;\r
-   }\r
-   if(v.size())\r
-      return u32regex(&*v.begin(), v.size(), opt);\r
-   return u32regex(static_cast<UChar32 const*>(0), static_cast<u32regex::size_type>(0), opt);\r
-}\r
-\r
-template <class InputIterator>\r
-inline u32regex do_make_u32regex(InputIterator i, \r
-                              InputIterator j, \r
-                              boost::regex_constants::syntax_option_type opt, \r
-                              const boost::mpl::int_<2>*)\r
-{\r
-   typedef boost::u16_to_u32_iterator<InputIterator, UChar32> conv_type;\r
-   typedef std::vector<UChar32> vector_type;\r
-   vector_type v;\r
-   conv_type a(i), b(j);\r
-   while(a != b)\r
-   {\r
-      v.push_back(*a);\r
-      ++a;\r
-   }\r
-   if(v.size())\r
-      return u32regex(&*v.begin(), v.size(), opt);\r
-   return u32regex(static_cast<UChar32 const*>(0), static_cast<u32regex::size_type>(0), opt);\r
-}\r
-\r
-template <class InputIterator>\r
-inline u32regex do_make_u32regex(InputIterator i, \r
-                              InputIterator j, \r
-                              boost::regex_constants::syntax_option_type opt, \r
-                              const boost::mpl::int_<4>*)\r
-{\r
-   typedef std::vector<UChar32> vector_type;\r
-   vector_type v;\r
-   while(i != j)\r
-   {\r
-      v.push_back((UChar32)(*i));\r
-      ++i;\r
-   }\r
-   if(v.size())\r
-      return u32regex(&*v.begin(), v.size(), opt);\r
-   return u32regex(static_cast<UChar32 const*>(0), static_cast<u32regex::size_type>(0), opt);\r
-}\r
-#endif\r
-}\r
-\r
-//\r
-// Construction from an iterator pair:\r
-//\r
-template <class InputIterator>\r
-inline u32regex make_u32regex(InputIterator i, \r
-                              InputIterator j, \r
-                              boost::regex_constants::syntax_option_type opt)\r
-{\r
-   return re_detail::do_make_u32regex(i, j, opt, static_cast<boost::mpl::int_<sizeof(*i)> const*>(0));\r
-}\r
-//\r
-// construction from UTF-8 nul-terminated strings:\r
-//\r
-inline u32regex make_u32regex(const char* p, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)\r
-{\r
-   return re_detail::do_make_u32regex(p, p + std::strlen(p), opt, static_cast<boost::mpl::int_<1> const*>(0));\r
-}\r
-inline u32regex make_u32regex(const unsigned char* p, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)\r
-{\r
-   return re_detail::do_make_u32regex(p, p + std::strlen(reinterpret_cast<const char*>(p)), opt, static_cast<boost::mpl::int_<1> const*>(0));\r
-}\r
-//\r
-// construction from UTF-16 nul-terminated strings:\r
-//\r
-#ifndef BOOST_NO_WREGEX\r
-inline u32regex make_u32regex(const wchar_t* p, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)\r
-{\r
-   return re_detail::do_make_u32regex(p, p + std::wcslen(p), opt, static_cast<boost::mpl::int_<sizeof(wchar_t)> const*>(0));\r
-}\r
-#endif\r
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)\r
-inline u32regex make_u32regex(const UChar* p, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)\r
-{\r
-   return re_detail::do_make_u32regex(p, p + u_strlen(p), opt, static_cast<boost::mpl::int_<2> const*>(0));\r
-}\r
-#endif\r
-//\r
-// construction from basic_string class-template:\r
-//\r
-template<class C, class T, class A>\r
-inline u32regex make_u32regex(const std::basic_string<C, T, A>& s, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)\r
-{\r
-   return re_detail::do_make_u32regex(s.begin(), s.end(), opt, static_cast<boost::mpl::int_<sizeof(C)> const*>(0));\r
-}\r
-//\r
-// Construction from ICU string type:\r
-//\r
-inline u32regex make_u32regex(const UnicodeString& s, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)\r
-{\r
-   return re_detail::do_make_u32regex(s.getBuffer(), s.getBuffer() + s.length(), opt, static_cast<boost::mpl::int_<2> const*>(0));\r
-}\r
-\r
-//\r
-// regex_match overloads that widen the character type as appropriate:\r
-//\r
-namespace re_detail{\r
-template<class MR1, class MR2>\r
-void copy_results(MR1& out, MR2 const& in)\r
-{\r
-   // copy results from an adapted MR2 match_results:\r
-   out.set_size(in.size(), in.prefix().first.base(), in.suffix().second.base());\r
-   out.set_base(in.base().base());\r
-   for(int i = 0; i < (int)in.size(); ++i)\r
-   {\r
-      if(in[i].matched)\r
-      {\r
-         out.set_first(in[i].first.base(), i);\r
-         out.set_second(in[i].second.base(), i);\r
-      }\r
-   }\r
-}\r
-\r
-template <class BidiIterator, class Allocator>\r
-inline bool do_regex_match(BidiIterator first, BidiIterator last, \r
-                 match_results<BidiIterator, Allocator>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags,\r
-                 boost::mpl::int_<4> const*)\r
-{\r
-   return ::boost::regex_match(first, last, m, e, flags);\r
-}\r
-template <class BidiIterator, class Allocator>\r
-bool do_regex_match(BidiIterator first, BidiIterator last, \r
-                 match_results<BidiIterator, Allocator>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags,\r
-                 boost::mpl::int_<2> const*)\r
-{\r
-   typedef u16_to_u32_iterator<BidiIterator, UChar32> conv_type;\r
-   typedef match_results<conv_type>                   match_type;\r
-   typedef typename match_type::allocator_type        alloc_type;\r
-   match_type what;\r
-   bool result = ::boost::regex_match(conv_type(first), conv_type(last), what, e, flags);\r
-   // copy results across to m:\r
-   if(result) copy_results(m, what);\r
-   return result;\r
-}\r
-template <class BidiIterator, class Allocator>\r
-bool do_regex_match(BidiIterator first, BidiIterator last, \r
-                 match_results<BidiIterator, Allocator>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags,\r
-                 boost::mpl::int_<1> const*)\r
-{\r
-   typedef u8_to_u32_iterator<BidiIterator, UChar32>  conv_type;\r
-   typedef match_results<conv_type>                   match_type;\r
-   typedef typename match_type::allocator_type        alloc_type;\r
-   match_type what;\r
-   bool result = ::boost::regex_match(conv_type(first), conv_type(last), what, e, flags);\r
-   // copy results across to m:\r
-   if(result) copy_results(m, what);\r
-   return result;\r
-}\r
-} // namespace re_detail\r
-\r
-template <class BidiIterator, class Allocator>\r
-inline bool u32regex_match(BidiIterator first, BidiIterator last, \r
-                 match_results<BidiIterator, Allocator>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_match(first, last, m, e, flags, static_cast<mpl::int_<sizeof(*first)> const*>(0));\r
-}\r
-inline bool u32regex_match(const UChar* p, \r
-                 match_results<const UChar*>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_match(p, p+u_strlen(p), m, e, flags, static_cast<mpl::int_<2> const*>(0));\r
-}\r
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX)\r
-inline bool u32regex_match(const wchar_t* p, \r
-                 match_results<const wchar_t*>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_match(p, p+std::wcslen(p), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
-}\r
-#endif\r
-inline bool u32regex_match(const char* p, \r
-                 match_results<const char*>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_match(p, p+std::strlen(p), m, e, flags, static_cast<mpl::int_<1> const*>(0));\r
-}\r
-inline bool u32regex_match(const unsigned char* p, \r
-                 match_results<const unsigned char*>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_match(p, p+std::strlen((const char*)p), m, e, flags, static_cast<mpl::int_<1> const*>(0));\r
-}\r
-inline bool u32regex_match(const std::string& s, \r
-                        match_results<std::string::const_iterator>& m, \r
-                        const u32regex& e, \r
-                        match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<1> const*>(0));\r
-}\r
-#ifndef BOOST_NO_STD_WSTRING\r
-inline bool u32regex_match(const std::wstring& s, \r
-                        match_results<std::wstring::const_iterator>& m, \r
-                        const u32regex& e, \r
-                        match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
-}\r
-#endif\r
-inline bool u32regex_match(const UnicodeString& s, \r
-                        match_results<const UChar*>& m, \r
-                        const u32regex& e, \r
-                        match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_match(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
-}\r
-//\r
-// regex_match overloads that do not return what matched:\r
-//\r
-template <class BidiIterator>\r
-inline bool u32regex_match(BidiIterator first, BidiIterator last, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   match_results<BidiIterator> m;\r
-   return re_detail::do_regex_match(first, last, m, e, flags, static_cast<mpl::int_<sizeof(*first)> const*>(0));\r
-}\r
-inline bool u32regex_match(const UChar* p, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   match_results<const UChar*> m;\r
-   return re_detail::do_regex_match(p, p+u_strlen(p), m, e, flags, static_cast<mpl::int_<2> const*>(0));\r
-}\r
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX)\r
-inline bool u32regex_match(const wchar_t* p, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   match_results<const wchar_t*> m;\r
-   return re_detail::do_regex_match(p, p+std::wcslen(p), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
-}\r
-#endif\r
-inline bool u32regex_match(const char* p, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   match_results<const char*> m;\r
-   return re_detail::do_regex_match(p, p+std::strlen(p), m, e, flags, static_cast<mpl::int_<1> const*>(0));\r
-}\r
-inline bool u32regex_match(const unsigned char* p, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   match_results<const unsigned char*> m;\r
-   return re_detail::do_regex_match(p, p+std::strlen((const char*)p), m, e, flags, static_cast<mpl::int_<1> const*>(0));\r
-}\r
-inline bool u32regex_match(const std::string& s, \r
-                        const u32regex& e, \r
-                        match_flag_type flags = match_default)\r
-{\r
-   match_results<std::string::const_iterator> m;\r
-   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<1> const*>(0));\r
-}\r
-#ifndef BOOST_NO_STD_WSTRING\r
-inline bool u32regex_match(const std::wstring& s, \r
-                        const u32regex& e, \r
-                        match_flag_type flags = match_default)\r
-{\r
-   match_results<std::wstring::const_iterator> m;\r
-   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
-}\r
-#endif\r
-inline bool u32regex_match(const UnicodeString& s, \r
-                        const u32regex& e, \r
-                        match_flag_type flags = match_default)\r
-{\r
-   match_results<const UChar*> m;\r
-   return re_detail::do_regex_match(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
-}\r
-\r
-//\r
-// regex_search overloads that widen the character type as appropriate:\r
-//\r
-namespace re_detail{\r
-template <class BidiIterator, class Allocator>\r
-inline bool do_regex_search(BidiIterator first, BidiIterator last, \r
-                 match_results<BidiIterator, Allocator>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags,\r
-                 BidiIterator base,\r
-                 boost::mpl::int_<4> const*)\r
-{\r
-   return ::boost::regex_search(first, last, m, e, flags, base);\r
-}\r
-template <class BidiIterator, class Allocator>\r
-bool do_regex_search(BidiIterator first, BidiIterator last, \r
-                 match_results<BidiIterator, Allocator>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags,\r
-                 BidiIterator base,\r
-                 boost::mpl::int_<2> const*)\r
-{\r
-   typedef u16_to_u32_iterator<BidiIterator, UChar32> conv_type;\r
-   typedef match_results<conv_type>                   match_type;\r
-   typedef typename match_type::allocator_type        alloc_type;\r
-   match_type what;\r
-   bool result = ::boost::regex_search(conv_type(first), conv_type(last), what, e, flags, conv_type(base));\r
-   // copy results across to m:\r
-   if(result) copy_results(m, what);\r
-   return result;\r
-}\r
-template <class BidiIterator, class Allocator>\r
-bool do_regex_search(BidiIterator first, BidiIterator last, \r
-                 match_results<BidiIterator, Allocator>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags,\r
-                 BidiIterator base,\r
-                 boost::mpl::int_<1> const*)\r
-{\r
-   typedef u8_to_u32_iterator<BidiIterator, UChar32>  conv_type;\r
-   typedef match_results<conv_type>                   match_type;\r
-   typedef typename match_type::allocator_type        alloc_type;\r
-   match_type what;\r
-   bool result = ::boost::regex_search(conv_type(first), conv_type(last), what, e, flags, conv_type(base));\r
-   // copy results across to m:\r
-   if(result) copy_results(m, what);\r
-   return result;\r
-}\r
-}\r
-\r
-template <class BidiIterator, class Allocator>\r
-inline bool u32regex_search(BidiIterator first, BidiIterator last, \r
-                 match_results<BidiIterator, Allocator>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_search(first, last, m, e, flags, first, static_cast<mpl::int_<sizeof(*first)> const*>(0));\r
-}\r
-template <class BidiIterator, class Allocator>\r
-inline bool u32regex_search(BidiIterator first, BidiIterator last, \r
-                 match_results<BidiIterator, Allocator>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags,\r
-                 BidiIterator base)\r
-{\r
-   return re_detail::do_regex_search(first, last, m, e, flags, base, static_cast<mpl::int_<sizeof(*first)> const*>(0));\r
-}\r
-inline bool u32regex_search(const UChar* p, \r
-                 match_results<const UChar*>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_search(p, p+u_strlen(p), m, e, flags, p, static_cast<mpl::int_<2> const*>(0));\r
-}\r
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX)\r
-inline bool u32regex_search(const wchar_t* p, \r
-                 match_results<const wchar_t*>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_search(p, p+std::wcslen(p), m, e, flags, p, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
-}\r
-#endif\r
-inline bool u32regex_search(const char* p, \r
-                 match_results<const char*>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_search(p, p+std::strlen(p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));\r
-}\r
-inline bool u32regex_search(const unsigned char* p, \r
-                 match_results<const unsigned char*>& m, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_search(p, p+std::strlen((const char*)p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));\r
-}\r
-inline bool u32regex_search(const std::string& s, \r
-                        match_results<std::string::const_iterator>& m, \r
-                        const u32regex& e, \r
-                        match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<1> const*>(0));\r
-}\r
-#ifndef BOOST_NO_STD_WSTRING\r
-inline bool u32regex_search(const std::wstring& s, \r
-                        match_results<std::wstring::const_iterator>& m, \r
-                        const u32regex& e, \r
-                        match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
-}\r
-#endif\r
-inline bool u32regex_search(const UnicodeString& s, \r
-                        match_results<const UChar*>& m, \r
-                        const u32regex& e, \r
-                        match_flag_type flags = match_default)\r
-{\r
-   return re_detail::do_regex_search(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, s.getBuffer(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
-}\r
-template <class BidiIterator>\r
-inline bool u32regex_search(BidiIterator first, BidiIterator last, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   match_results<BidiIterator> m;\r
-   return re_detail::do_regex_search(first, last, m, e, flags, first, static_cast<mpl::int_<sizeof(*first)> const*>(0));\r
-}\r
-inline bool u32regex_search(const UChar* p, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   match_results<const UChar*> m;\r
-   return re_detail::do_regex_search(p, p+u_strlen(p), m, e, flags, p, static_cast<mpl::int_<2> const*>(0));\r
-}\r
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX)\r
-inline bool u32regex_search(const wchar_t* p, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   match_results<const wchar_t*> m;\r
-   return re_detail::do_regex_search(p, p+std::wcslen(p), m, e, flags, p, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
-}\r
-#endif\r
-inline bool u32regex_search(const char* p, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   match_results<const char*> m;\r
-   return re_detail::do_regex_search(p, p+std::strlen(p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));\r
-}\r
-inline bool u32regex_search(const unsigned char* p, \r
-                 const u32regex& e, \r
-                 match_flag_type flags = match_default)\r
-{\r
-   match_results<const unsigned char*> m;\r
-   return re_detail::do_regex_search(p, p+std::strlen((const char*)p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));\r
-}\r
-inline bool u32regex_search(const std::string& s, \r
-                        const u32regex& e, \r
-                        match_flag_type flags = match_default)\r
-{\r
-   match_results<std::string::const_iterator> m;\r
-   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<1> const*>(0));\r
-}\r
-#ifndef BOOST_NO_STD_WSTRING\r
-inline bool u32regex_search(const std::wstring& s, \r
-                        const u32regex& e, \r
-                        match_flag_type flags = match_default)\r
-{\r
-   match_results<std::wstring::const_iterator> m;\r
-   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
-}\r
-#endif\r
-inline bool u32regex_search(const UnicodeString& s, \r
-                        const u32regex& e, \r
-                        match_flag_type flags = match_default)\r
-{\r
-   match_results<const UChar*> m;\r
-   return re_detail::do_regex_search(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, s.getBuffer(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
-}\r
-\r
-//\r
-// overloads for regex_replace with utf-8 and utf-16 data types:\r
-//\r
-namespace re_detail{\r
-template <class I>\r
-inline std::pair< boost::u8_to_u32_iterator<I>, boost::u8_to_u32_iterator<I> >\r
-   make_utf32_seq(I i, I j, mpl::int_<1> const*)\r
-{\r
-   return std::pair< boost::u8_to_u32_iterator<I>, boost::u8_to_u32_iterator<I> >(boost::u8_to_u32_iterator<I>(i), boost::u8_to_u32_iterator<I>(j));\r
-}\r
-template <class I>\r
-inline std::pair< boost::u16_to_u32_iterator<I>, boost::u16_to_u32_iterator<I> >\r
-   make_utf32_seq(I i, I j, mpl::int_<2> const*)\r
-{\r
-   return std::pair< boost::u16_to_u32_iterator<I>, boost::u16_to_u32_iterator<I> >(boost::u16_to_u32_iterator<I>(i), boost::u16_to_u32_iterator<I>(j));\r
-}\r
-template <class I>\r
-inline std::pair< I, I >\r
-   make_utf32_seq(I i, I j, mpl::int_<4> const*)\r
-{\r
-   return std::pair< I, I >(i, j);\r
-}\r
-template <class charT>\r
-inline std::pair< boost::u8_to_u32_iterator<const charT*>, boost::u8_to_u32_iterator<const charT*> >\r
-   make_utf32_seq(const charT* p, mpl::int_<1> const*)\r
-{\r
-   return std::pair< boost::u8_to_u32_iterator<const charT*>, boost::u8_to_u32_iterator<const charT*> >(boost::u8_to_u32_iterator<const charT*>(p), boost::u8_to_u32_iterator<const charT*>(p+std::strlen((const char*)p)));\r
-}\r
-template <class charT>\r
-inline std::pair< boost::u16_to_u32_iterator<const charT*>, boost::u16_to_u32_iterator<const charT*> >\r
-   make_utf32_seq(const charT* p, mpl::int_<2> const*)\r
-{\r
-   return std::pair< boost::u16_to_u32_iterator<const charT*>, boost::u16_to_u32_iterator<const charT*> >(boost::u16_to_u32_iterator<const charT*>(p), boost::u16_to_u32_iterator<const charT*>(p+u_strlen((const UChar*)p)));\r
-}\r
-template <class charT>\r
-inline std::pair< const charT*, const charT* >\r
-   make_utf32_seq(const charT* p, mpl::int_<4> const*)\r
-{\r
-   return std::pair< const charT*, const charT* >(p, p+icu_regex_traits::length((UChar32 const*)p));\r
-}\r
-template <class OutputIterator>\r
-inline OutputIterator make_utf32_out(OutputIterator o, mpl::int_<4> const*)\r
-{\r
-   return o;\r
-}\r
-template <class OutputIterator>\r
-inline utf16_output_iterator<OutputIterator> make_utf32_out(OutputIterator o, mpl::int_<2> const*)\r
-{\r
-   return o;\r
-}\r
-template <class OutputIterator>\r
-inline utf8_output_iterator<OutputIterator> make_utf32_out(OutputIterator o, mpl::int_<1> const*)\r
-{\r
-   return o;\r
-}\r
-\r
-template <class OutputIterator, class I1, class I2>\r
-OutputIterator do_regex_replace(OutputIterator out,\r
-                                 std::pair<I1, I1> const& in,\r
-                                 const u32regex& e, \r
-                                 const std::pair<I2, I2>& fmt, \r
-                                 match_flag_type flags\r
-                                 )\r
-{\r
-   // unfortunately we have to copy the format string in order to pass in onward:\r
-   std::vector<UChar32> f;\r
-#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS\r
-   f.assign(fmt.first, fmt.second);\r
-#else\r
-   f.clear();\r
-   I2 pos = fmt.first;\r
-   while(pos != fmt.second)\r
-      f.push_back(*pos++);\r
-#endif\r
-   \r
-   regex_iterator<I1, UChar32, icu_regex_traits> i(in.first, in.second, e, flags);\r
-   regex_iterator<I1, UChar32, icu_regex_traits> j;\r
-   if(i == j)\r
-   {\r
-      if(!(flags & regex_constants::format_no_copy))\r
-         out = re_detail::copy(in.first, in.second, out);\r
-   }\r
-   else\r
-   {\r
-      I1 last_m = in.first;\r
-      while(i != j)\r
-      {\r
-         if(!(flags & regex_constants::format_no_copy))\r
-            out = re_detail::copy(i->prefix().first, i->prefix().second, out); \r
-         if(f.size())\r
-            out = ::boost::re_detail::regex_format_imp(out, *i, &*f.begin(), &*f.begin() + f.size(), flags, e.get_traits());\r
-         else\r
-            out = ::boost::re_detail::regex_format_imp(out, *i, static_cast<UChar32 const*>(0), static_cast<UChar32 const*>(0), flags, e.get_traits());\r
-         last_m = (*i)[0].second;\r
-         if(flags & regex_constants::format_first_only)\r
-            break;\r
-         ++i;\r
-      }\r
-      if(!(flags & regex_constants::format_no_copy))\r
-         out = re_detail::copy(last_m, in.second, out);\r
-   }\r
-   return out;\r
-}\r
-template <class BaseIterator>\r
-inline const BaseIterator& extract_output_base(const BaseIterator& b)\r
-{\r
-   return b;\r
-}\r
-template <class BaseIterator>\r
-inline BaseIterator extract_output_base(const utf8_output_iterator<BaseIterator>& b)\r
-{\r
-   return b.base();\r
-}\r
-template <class BaseIterator>\r
-inline BaseIterator extract_output_base(const utf16_output_iterator<BaseIterator>& b)\r
-{\r
-   return b.base();\r
-}\r
-}  // re_detail\r
-\r
-template <class OutputIterator, class BidirectionalIterator, class charT>\r
-inline OutputIterator u32regex_replace(OutputIterator out,\r
-                         BidirectionalIterator first,\r
-                         BidirectionalIterator last,\r
-                         const u32regex& e, \r
-                         const charT* fmt, \r
-                         match_flag_type flags = match_default)\r
-{\r
-   return re_detail::extract_output_base\r
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)\r
-   <OutputIterator>\r
-#endif\r
-    (\r
-      re_detail::do_regex_replace(\r
-         re_detail::make_utf32_out(out, static_cast<mpl::int_<sizeof(*first)> const*>(0)),\r
-         re_detail::make_utf32_seq(first, last, static_cast<mpl::int_<sizeof(*first)> const*>(0)),\r
-         e,\r
-         re_detail::make_utf32_seq(fmt, static_cast<mpl::int_<sizeof(*fmt)> const*>(0)),\r
-         flags)\r
-      );\r
-}\r
-\r
-template <class OutputIterator, class Iterator, class charT>\r
-inline OutputIterator u32regex_replace(OutputIterator out,\r
-                         Iterator first,\r
-                         Iterator last,\r
-                         const u32regex& e, \r
-                         const std::basic_string<charT>& fmt,\r
-                         match_flag_type flags = match_default)\r
-{\r
-   return re_detail::extract_output_base\r
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)\r
-   <OutputIterator>\r
-#endif\r
-    (\r
-      re_detail::do_regex_replace(\r
-         re_detail::make_utf32_out(out, static_cast<mpl::int_<sizeof(*first)> const*>(0)),\r
-         re_detail::make_utf32_seq(first, last, static_cast<mpl::int_<sizeof(*first)> const*>(0)),\r
-         e,\r
-         re_detail::make_utf32_seq(fmt.begin(), fmt.end(), static_cast<mpl::int_<sizeof(charT)> const*>(0)),\r
-         flags)\r
-      );\r
-}\r
-\r
-template <class OutputIterator, class Iterator>\r
-inline OutputIterator u32regex_replace(OutputIterator out,\r
-                         Iterator first,\r
-                         Iterator last,\r
-                         const u32regex& e, \r
-                         const UnicodeString& fmt,\r
-                         match_flag_type flags = match_default)\r
-{\r
-   return re_detail::extract_output_base\r
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)\r
-   <OutputIterator>\r
-#endif\r
-   (\r
-      re_detail::do_regex_replace(\r
-         re_detail::make_utf32_out(out, static_cast<mpl::int_<sizeof(*first)> const*>(0)),\r
-         re_detail::make_utf32_seq(first, last, static_cast<mpl::int_<sizeof(*first)> const*>(0)),\r
-         e,\r
-         re_detail::make_utf32_seq(fmt.getBuffer(), fmt.getBuffer() + fmt.length(), static_cast<mpl::int_<2> const*>(0)),\r
-         flags)\r
-      );\r
-}\r
-\r
-template <class charT>\r
-std::basic_string<charT> u32regex_replace(const std::basic_string<charT>& s,\r
-                         const u32regex& e, \r
-                         const charT* fmt,\r
-                         match_flag_type flags = match_default)\r
-{\r
-   std::basic_string<charT> result;\r
-   re_detail::string_out_iterator<std::basic_string<charT> > i(result);\r
-   u32regex_replace(i, s.begin(), s.end(), e, fmt, flags);\r
-   return result;\r
-}\r
-\r
-template <class charT>\r
-std::basic_string<charT> u32regex_replace(const std::basic_string<charT>& s,\r
-                         const u32regex& e, \r
-                         const std::basic_string<charT>& fmt,\r
-                         match_flag_type flags = match_default)\r
-{\r
-   std::basic_string<charT> result;\r
-   re_detail::string_out_iterator<std::basic_string<charT> > i(result);\r
-   u32regex_replace(i, s.begin(), s.end(), e, fmt.c_str(), flags);\r
-   return result;\r
-}\r
-\r
-namespace re_detail{\r
-\r
-class unicode_string_out_iterator\r
-{\r
-   UnicodeString* out;\r
-public:\r
-   unicode_string_out_iterator(UnicodeString& s) : out(&s) {}\r
-   unicode_string_out_iterator& operator++() { return *this; }\r
-   unicode_string_out_iterator& operator++(int) { return *this; }\r
-   unicode_string_out_iterator& operator*() { return *this; }\r
-   unicode_string_out_iterator& operator=(UChar v) \r
-   { \r
-      *out += v; \r
-      return *this; \r
-   }\r
-   typedef std::ptrdiff_t difference_type;\r
-   typedef UChar value_type;\r
-   typedef value_type* pointer;\r
-   typedef value_type& reference;\r
-   typedef std::output_iterator_tag iterator_category;\r
-};\r
-\r
-}\r
-\r
-inline UnicodeString u32regex_replace(const UnicodeString& s,\r
-                         const u32regex& e, \r
-                         const UChar* fmt,\r
-                         match_flag_type flags = match_default)\r
-{\r
-   UnicodeString result;\r
-   re_detail::unicode_string_out_iterator i(result);\r
-   u32regex_replace(i, s.getBuffer(), s.getBuffer()+s.length(), e, fmt, flags);\r
-   return result;\r
-}\r
-\r
-inline UnicodeString u32regex_replace(const UnicodeString& s,\r
-                         const u32regex& e, \r
-                         const UnicodeString& fmt,\r
-                         match_flag_type flags = match_default)\r
-{\r
-   UnicodeString result;\r
-   re_detail::unicode_string_out_iterator i(result);\r
-   re_detail::do_regex_replace(\r
-         re_detail::make_utf32_out(i, static_cast<mpl::int_<2> const*>(0)),\r
-         re_detail::make_utf32_seq(s.getBuffer(), s.getBuffer()+s.length(), static_cast<mpl::int_<2> const*>(0)),\r
-         e,\r
-         re_detail::make_utf32_seq(fmt.getBuffer(), fmt.getBuffer() + fmt.length(), static_cast<mpl::int_<2> const*>(0)),\r
-         flags);\r
-   return result;\r
-}\r
-\r
-} // namespace boost.\r
-\r
-#include <boost/regex/v4/u32regex_iterator.hpp>\r
-#include <boost/regex/v4/u32regex_token_iterator.hpp>\r
-\r
-#endif\r
+/*
+ *
+ * Copyright (c) 2004
+ * John Maddock
+ *
+ * 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)
+ *
+ */
+
+ /*
+  *   LOCATION:    see http://www.boost.org for most recent version.
+  *   FILE         icu.hpp
+  *   VERSION      see <boost/version.hpp>
+  *   DESCRIPTION: Unicode regular expressions on top of the ICU Library.
+  */
+
+#ifndef BOOST_REGEX_ICU_HPP
+#define BOOST_REGEX_ICU_HPP
+
+#include <unicode/utypes.h>
+#include <unicode/uchar.h>
+#include <unicode/coll.h>
+#include <boost/regex.hpp>
+#include <boost/regex/pending/unicode_iterator.hpp>
+#include <boost/mpl/int_fwd.hpp>
+#include <bitset>
+
+
+namespace boost{
+
+namespace re_detail{
+
+// 
+// Implementation details:
+//
+class BOOST_REGEX_DECL icu_regex_traits_implementation
+{
+   typedef UChar32                      char_type;
+   typedef std::size_t                  size_type;
+   typedef std::vector<char_type>       string_type;
+   typedef U_NAMESPACE_QUALIFIER Locale locale_type;
+   typedef boost::uint_least32_t        char_class_type;
+public:
+   icu_regex_traits_implementation(const U_NAMESPACE_QUALIFIER Locale& l)
+      : m_locale(l)
+   {
+      UErrorCode success = U_ZERO_ERROR;
+      m_collator.reset(U_NAMESPACE_QUALIFIER Collator::createInstance(l, success));
+      if(U_SUCCESS(success) == 0)
+         init_error();
+      m_collator->setStrength(U_NAMESPACE_QUALIFIER Collator::IDENTICAL);
+      success = U_ZERO_ERROR;
+      m_primary_collator.reset(U_NAMESPACE_QUALIFIER Collator::createInstance(l, success));
+      if(U_SUCCESS(success) == 0)
+         init_error();
+      m_primary_collator->setStrength(U_NAMESPACE_QUALIFIER Collator::PRIMARY);
+   }
+   U_NAMESPACE_QUALIFIER Locale getloc()const
+   {
+      return m_locale;
+   }
+   string_type do_transform(const char_type* p1, const char_type* p2, const U_NAMESPACE_QUALIFIER Collator* pcoll) const;
+   string_type transform(const char_type* p1, const char_type* p2) const
+   {
+      return do_transform(p1, p2, m_collator.get());
+   }
+   string_type transform_primary(const char_type* p1, const char_type* p2) const
+   {
+      return do_transform(p1, p2, m_primary_collator.get());
+   }
+private:
+   void init_error()
+   {
+      std::runtime_error e("Could not initialize ICU resources");
+      boost::throw_exception(e);
+   }
+   U_NAMESPACE_QUALIFIER Locale m_locale;                                  // The ICU locale that we're using
+   boost::scoped_ptr< U_NAMESPACE_QUALIFIER Collator> m_collator;          // The full collation object
+   boost::scoped_ptr< U_NAMESPACE_QUALIFIER Collator> m_primary_collator;  // The primary collation object
+};
+
+inline boost::shared_ptr<icu_regex_traits_implementation> get_icu_regex_traits_implementation(const U_NAMESPACE_QUALIFIER Locale& loc)
+{
+   return boost::shared_ptr<icu_regex_traits_implementation>(new icu_regex_traits_implementation(loc));
+}
+
+}
+
+class BOOST_REGEX_DECL icu_regex_traits
+{
+public:
+   typedef UChar32                      char_type;
+   typedef std::size_t                  size_type;
+   typedef std::vector<char_type>       string_type;
+   typedef U_NAMESPACE_QUALIFIER Locale locale_type;
+#ifdef BOOST_NO_INT64_T
+   typedef std::bitset<64>              char_class_type;
+#else
+   typedef boost::uint64_t              char_class_type;
+#endif
+
+   struct boost_extensions_tag{};
+
+   icu_regex_traits()
+      : m_pimpl(re_detail::get_icu_regex_traits_implementation(U_NAMESPACE_QUALIFIER Locale()))
+   {
+   }
+   static size_type length(const char_type* p);
+
+   ::boost::regex_constants::syntax_type syntax_type(char_type c)const
+   {
+      return ((c < 0x7f) && (c > 0)) ? re_detail::get_default_syntax_type(static_cast<char>(c)) : regex_constants::syntax_char;
+   }
+   ::boost::regex_constants::escape_syntax_type escape_syntax_type(char_type c) const
+   {
+      return ((c < 0x7f) && (c > 0)) ? re_detail::get_default_escape_syntax_type(static_cast<char>(c)) : regex_constants::syntax_char;
+   }
+   char_type translate(char_type c) const
+   {
+      return c;
+   }
+   char_type translate_nocase(char_type c) const
+   {
+      return ::u_tolower(c);
+   }
+   char_type translate(char_type c, bool icase) const
+   {
+      return icase ? translate_nocase(c) : translate(c);
+   }
+   char_type tolower(char_type c) const
+   {
+      return ::u_tolower(c);
+   }
+   char_type toupper(char_type c) const
+   {
+      return ::u_toupper(c);
+   }
+   string_type transform(const char_type* p1, const char_type* p2) const
+   {
+      return m_pimpl->transform(p1, p2);
+   }
+   string_type transform_primary(const char_type* p1, const char_type* p2) const
+   {
+      return m_pimpl->transform_primary(p1, p2);
+   }
+   char_class_type lookup_classname(const char_type* p1, const char_type* p2) const;
+   string_type lookup_collatename(const char_type* p1, const char_type* p2) const;
+   bool isctype(char_type c, char_class_type f) const;
+   int toi(const char_type*& p1, const char_type* p2, int radix)const
+   {
+      return re_detail::global_toi(p1, p2, radix, *this);
+   }
+   int value(char_type c, int radix)const
+   {
+      return u_digit(c, static_cast< ::int8_t>(radix));
+   }
+   locale_type imbue(locale_type l)
+   {
+      locale_type result(m_pimpl->getloc());
+      m_pimpl = re_detail::get_icu_regex_traits_implementation(l);
+      return result;
+   }
+   locale_type getloc()const
+   {
+      return locale_type();
+   }
+   std::string error_string(::boost::regex_constants::error_type n) const
+   {
+      return re_detail::get_default_error_string(n);
+   }
+private:
+   icu_regex_traits(const icu_regex_traits&);
+   icu_regex_traits& operator=(const icu_regex_traits&);
+
+   //
+   // define the bitmasks offsets we need for additional character properties:
+   //
+   enum{
+      offset_blank = U_CHAR_CATEGORY_COUNT,
+      offset_space = U_CHAR_CATEGORY_COUNT+1,
+      offset_xdigit = U_CHAR_CATEGORY_COUNT+2,
+      offset_underscore = U_CHAR_CATEGORY_COUNT+3,
+      offset_unicode = U_CHAR_CATEGORY_COUNT+4,
+      offset_any = U_CHAR_CATEGORY_COUNT+5,
+      offset_ascii = U_CHAR_CATEGORY_COUNT+6,
+      offset_horizontal = U_CHAR_CATEGORY_COUNT+7,
+      offset_vertical = U_CHAR_CATEGORY_COUNT+8
+   };
+
+   //
+   // and now the masks:
+   //
+   static const char_class_type mask_blank;
+   static const char_class_type mask_space;
+   static const char_class_type mask_xdigit;
+   static const char_class_type mask_underscore;
+   static const char_class_type mask_unicode;
+   static const char_class_type mask_any;
+   static const char_class_type mask_ascii;
+   static const char_class_type mask_horizontal;
+   static const char_class_type mask_vertical;
+
+   static char_class_type lookup_icu_mask(const ::UChar32* p1, const ::UChar32* p2);
+
+   boost::shared_ptr< ::boost::re_detail::icu_regex_traits_implementation> m_pimpl;
+};
+
+} // namespace boost
+
+//
+// template instances:
+//
+#define BOOST_REGEX_CHAR_T UChar32
+#undef BOOST_REGEX_TRAITS_T
+#define BOOST_REGEX_TRAITS_T , icu_regex_traits
+#define BOOST_REGEX_ICU_INSTANCES
+#ifdef BOOST_REGEX_ICU_INSTANTIATE
+#  define BOOST_REGEX_INSTANTIATE
+#endif
+#include <boost/regex/v4/instances.hpp>
+#undef BOOST_REGEX_CHAR_T
+#undef BOOST_REGEX_TRAITS_T
+#undef BOOST_REGEX_ICU_INSTANCES
+#ifdef BOOST_REGEX_INSTANTIATE
+#  undef BOOST_REGEX_INSTANTIATE
+#endif
+
+namespace boost{
+
+// types:
+typedef basic_regex< ::UChar32, icu_regex_traits> u32regex;
+typedef match_results<const ::UChar32*> u32match;
+typedef match_results<const ::UChar*> u16match;
+
+//
+// Construction of 32-bit regex types from UTF-8 and UTF-16 primitives:
+//
+namespace re_detail{
+
+#if !defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(__IBMCPP__)
+template <class InputIterator>
+inline u32regex do_make_u32regex(InputIterator i, 
+                              InputIterator j, 
+                              boost::regex_constants::syntax_option_type opt, 
+                              const boost::mpl::int_<1>*)
+{
+   typedef boost::u8_to_u32_iterator<InputIterator, UChar32> conv_type;
+   return u32regex(conv_type(i), conv_type(j), opt);
+}
+
+template <class InputIterator>
+inline u32regex do_make_u32regex(InputIterator i, 
+                              InputIterator j, 
+                              boost::regex_constants::syntax_option_type opt, 
+                              const boost::mpl::int_<2>*)
+{
+   typedef boost::u16_to_u32_iterator<InputIterator, UChar32> conv_type;
+   return u32regex(conv_type(i), conv_type(j), opt);
+}
+
+template <class InputIterator>
+inline u32regex do_make_u32regex(InputIterator i, 
+                              InputIterator j, 
+                              boost::regex_constants::syntax_option_type opt, 
+                              const boost::mpl::int_<4>*)
+{
+   return u32regex(i, j, opt);
+}
+#else
+template <class InputIterator>
+inline u32regex do_make_u32regex(InputIterator i, 
+                              InputIterator j, 
+                              boost::regex_constants::syntax_option_type opt, 
+                              const boost::mpl::int_<1>*)
+{
+   typedef boost::u8_to_u32_iterator<InputIterator, UChar32> conv_type;
+   typedef std::vector<UChar32> vector_type;
+   vector_type v;
+   conv_type a(i), b(j);
+   while(a != b)
+   {
+      v.push_back(*a);
+      ++a;
+   }
+   if(v.size())
+      return u32regex(&*v.begin(), v.size(), opt);
+   return u32regex(static_cast<UChar32 const*>(0), static_cast<u32regex::size_type>(0), opt);
+}
+
+template <class InputIterator>
+inline u32regex do_make_u32regex(InputIterator i, 
+                              InputIterator j, 
+                              boost::regex_constants::syntax_option_type opt, 
+                              const boost::mpl::int_<2>*)
+{
+   typedef boost::u16_to_u32_iterator<InputIterator, UChar32> conv_type;
+   typedef std::vector<UChar32> vector_type;
+   vector_type v;
+   conv_type a(i), b(j);
+   while(a != b)
+   {
+      v.push_back(*a);
+      ++a;
+   }
+   if(v.size())
+      return u32regex(&*v.begin(), v.size(), opt);
+   return u32regex(static_cast<UChar32 const*>(0), static_cast<u32regex::size_type>(0), opt);
+}
+
+template <class InputIterator>
+inline u32regex do_make_u32regex(InputIterator i, 
+                              InputIterator j, 
+                              boost::regex_constants::syntax_option_type opt, 
+                              const boost::mpl::int_<4>*)
+{
+   typedef std::vector<UChar32> vector_type;
+   vector_type v;
+   while(i != j)
+   {
+      v.push_back((UChar32)(*i));
+      ++i;
+   }
+   if(v.size())
+      return u32regex(&*v.begin(), v.size(), opt);
+   return u32regex(static_cast<UChar32 const*>(0), static_cast<u32regex::size_type>(0), opt);
+}
+#endif
+}
+
+//
+// Construction from an iterator pair:
+//
+template <class InputIterator>
+inline u32regex make_u32regex(InputIterator i, 
+                              InputIterator j, 
+                              boost::regex_constants::syntax_option_type opt)
+{
+   return re_detail::do_make_u32regex(i, j, opt, static_cast<boost::mpl::int_<sizeof(*i)> const*>(0));
+}
+//
+// construction from UTF-8 nul-terminated strings:
+//
+inline u32regex make_u32regex(const char* p, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)
+{
+   return re_detail::do_make_u32regex(p, p + std::strlen(p), opt, static_cast<boost::mpl::int_<1> const*>(0));
+}
+inline u32regex make_u32regex(const unsigned char* p, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)
+{
+   return re_detail::do_make_u32regex(p, p + std::strlen(reinterpret_cast<const char*>(p)), opt, static_cast<boost::mpl::int_<1> const*>(0));
+}
+//
+// construction from UTF-16 nul-terminated strings:
+//
+#ifndef BOOST_NO_WREGEX
+inline u32regex make_u32regex(const wchar_t* p, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)
+{
+   return re_detail::do_make_u32regex(p, p + std::wcslen(p), opt, static_cast<boost::mpl::int_<sizeof(wchar_t)> const*>(0));
+}
+#endif
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)
+inline u32regex make_u32regex(const UChar* p, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)
+{
+   return re_detail::do_make_u32regex(p, p + u_strlen(p), opt, static_cast<boost::mpl::int_<2> const*>(0));
+}
+#endif
+//
+// construction from basic_string class-template:
+//
+template<class C, class T, class A>
+inline u32regex make_u32regex(const std::basic_string<C, T, A>& s, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)
+{
+   return re_detail::do_make_u32regex(s.begin(), s.end(), opt, static_cast<boost::mpl::int_<sizeof(C)> const*>(0));
+}
+//
+// Construction from ICU string type:
+//
+inline u32regex make_u32regex(const UnicodeString& s, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)
+{
+   return re_detail::do_make_u32regex(s.getBuffer(), s.getBuffer() + s.length(), opt, static_cast<boost::mpl::int_<2> const*>(0));
+}
+
+//
+// regex_match overloads that widen the character type as appropriate:
+//
+namespace re_detail{
+template<class MR1, class MR2>
+void copy_results(MR1& out, MR2 const& in)
+{
+   // copy results from an adapted MR2 match_results:
+   out.set_size(in.size(), in.prefix().first.base(), in.suffix().second.base());
+   out.set_base(in.base().base());
+   for(int i = 0; i < (int)in.size(); ++i)
+   {
+      if(in[i].matched)
+      {
+         out.set_first(in[i].first.base(), i);
+         out.set_second(in[i].second.base(), i);
+      }
+   }
+}
+
+template <class BidiIterator, class Allocator>
+inline bool do_regex_match(BidiIterator first, BidiIterator last, 
+                 match_results<BidiIterator, Allocator>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags,
+                 boost::mpl::int_<4> const*)
+{
+   return ::boost::regex_match(first, last, m, e, flags);
+}
+template <class BidiIterator, class Allocator>
+bool do_regex_match(BidiIterator first, BidiIterator last, 
+                 match_results<BidiIterator, Allocator>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags,
+                 boost::mpl::int_<2> const*)
+{
+   typedef u16_to_u32_iterator<BidiIterator, UChar32> conv_type;
+   typedef match_results<conv_type>                   match_type;
+   typedef typename match_type::allocator_type        alloc_type;
+   match_type what;
+   bool result = ::boost::regex_match(conv_type(first), conv_type(last), what, e, flags);
+   // copy results across to m:
+   if(result) copy_results(m, what);
+   return result;
+}
+template <class BidiIterator, class Allocator>
+bool do_regex_match(BidiIterator first, BidiIterator last, 
+                 match_results<BidiIterator, Allocator>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags,
+                 boost::mpl::int_<1> const*)
+{
+   typedef u8_to_u32_iterator<BidiIterator, UChar32>  conv_type;
+   typedef match_results<conv_type>                   match_type;
+   typedef typename match_type::allocator_type        alloc_type;
+   match_type what;
+   bool result = ::boost::regex_match(conv_type(first), conv_type(last), what, e, flags);
+   // copy results across to m:
+   if(result) copy_results(m, what);
+   return result;
+}
+} // namespace re_detail
+
+template <class BidiIterator, class Allocator>
+inline bool u32regex_match(BidiIterator first, BidiIterator last, 
+                 match_results<BidiIterator, Allocator>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_match(first, last, m, e, flags, static_cast<mpl::int_<sizeof(*first)> const*>(0));
+}
+inline bool u32regex_match(const UChar* p, 
+                 match_results<const UChar*>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_match(p, p+u_strlen(p), m, e, flags, static_cast<mpl::int_<2> const*>(0));
+}
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX)
+inline bool u32regex_match(const wchar_t* p, 
+                 match_results<const wchar_t*>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_match(p, p+std::wcslen(p), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
+}
+#endif
+inline bool u32regex_match(const char* p, 
+                 match_results<const char*>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_match(p, p+std::strlen(p), m, e, flags, static_cast<mpl::int_<1> const*>(0));
+}
+inline bool u32regex_match(const unsigned char* p, 
+                 match_results<const unsigned char*>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_match(p, p+std::strlen((const char*)p), m, e, flags, static_cast<mpl::int_<1> const*>(0));
+}
+inline bool u32regex_match(const std::string& s, 
+                        match_results<std::string::const_iterator>& m, 
+                        const u32regex& e, 
+                        match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<1> const*>(0));
+}
+#ifndef BOOST_NO_STD_WSTRING
+inline bool u32regex_match(const std::wstring& s, 
+                        match_results<std::wstring::const_iterator>& m, 
+                        const u32regex& e, 
+                        match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
+}
+#endif
+inline bool u32regex_match(const UnicodeString& s, 
+                        match_results<const UChar*>& m, 
+                        const u32regex& e, 
+                        match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_match(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
+}
+//
+// regex_match overloads that do not return what matched:
+//
+template <class BidiIterator>
+inline bool u32regex_match(BidiIterator first, BidiIterator last, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   match_results<BidiIterator> m;
+   return re_detail::do_regex_match(first, last, m, e, flags, static_cast<mpl::int_<sizeof(*first)> const*>(0));
+}
+inline bool u32regex_match(const UChar* p, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   match_results<const UChar*> m;
+   return re_detail::do_regex_match(p, p+u_strlen(p), m, e, flags, static_cast<mpl::int_<2> const*>(0));
+}
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX)
+inline bool u32regex_match(const wchar_t* p, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   match_results<const wchar_t*> m;
+   return re_detail::do_regex_match(p, p+std::wcslen(p), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
+}
+#endif
+inline bool u32regex_match(const char* p, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   match_results<const char*> m;
+   return re_detail::do_regex_match(p, p+std::strlen(p), m, e, flags, static_cast<mpl::int_<1> const*>(0));
+}
+inline bool u32regex_match(const unsigned char* p, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   match_results<const unsigned char*> m;
+   return re_detail::do_regex_match(p, p+std::strlen((const char*)p), m, e, flags, static_cast<mpl::int_<1> const*>(0));
+}
+inline bool u32regex_match(const std::string& s, 
+                        const u32regex& e, 
+                        match_flag_type flags = match_default)
+{
+   match_results<std::string::const_iterator> m;
+   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<1> const*>(0));
+}
+#ifndef BOOST_NO_STD_WSTRING
+inline bool u32regex_match(const std::wstring& s, 
+                        const u32regex& e, 
+                        match_flag_type flags = match_default)
+{
+   match_results<std::wstring::const_iterator> m;
+   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
+}
+#endif
+inline bool u32regex_match(const UnicodeString& s, 
+                        const u32regex& e, 
+                        match_flag_type flags = match_default)
+{
+   match_results<const UChar*> m;
+   return re_detail::do_regex_match(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
+}
+
+//
+// regex_search overloads that widen the character type as appropriate:
+//
+namespace re_detail{
+template <class BidiIterator, class Allocator>
+inline bool do_regex_search(BidiIterator first, BidiIterator last, 
+                 match_results<BidiIterator, Allocator>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags,
+                 BidiIterator base,
+                 boost::mpl::int_<4> const*)
+{
+   return ::boost::regex_search(first, last, m, e, flags, base);
+}
+template <class BidiIterator, class Allocator>
+bool do_regex_search(BidiIterator first, BidiIterator last, 
+                 match_results<BidiIterator, Allocator>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags,
+                 BidiIterator base,
+                 boost::mpl::int_<2> const*)
+{
+   typedef u16_to_u32_iterator<BidiIterator, UChar32> conv_type;
+   typedef match_results<conv_type>                   match_type;
+   typedef typename match_type::allocator_type        alloc_type;
+   match_type what;
+   bool result = ::boost::regex_search(conv_type(first), conv_type(last), what, e, flags, conv_type(base));
+   // copy results across to m:
+   if(result) copy_results(m, what);
+   return result;
+}
+template <class BidiIterator, class Allocator>
+bool do_regex_search(BidiIterator first, BidiIterator last, 
+                 match_results<BidiIterator, Allocator>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags,
+                 BidiIterator base,
+                 boost::mpl::int_<1> const*)
+{
+   typedef u8_to_u32_iterator<BidiIterator, UChar32>  conv_type;
+   typedef match_results<conv_type>                   match_type;
+   typedef typename match_type::allocator_type        alloc_type;
+   match_type what;
+   bool result = ::boost::regex_search(conv_type(first), conv_type(last), what, e, flags, conv_type(base));
+   // copy results across to m:
+   if(result) copy_results(m, what);
+   return result;
+}
+}
+
+template <class BidiIterator, class Allocator>
+inline bool u32regex_search(BidiIterator first, BidiIterator last, 
+                 match_results<BidiIterator, Allocator>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_search(first, last, m, e, flags, first, static_cast<mpl::int_<sizeof(*first)> const*>(0));
+}
+template <class BidiIterator, class Allocator>
+inline bool u32regex_search(BidiIterator first, BidiIterator last, 
+                 match_results<BidiIterator, Allocator>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags,
+                 BidiIterator base)
+{
+   return re_detail::do_regex_search(first, last, m, e, flags, base, static_cast<mpl::int_<sizeof(*first)> const*>(0));
+}
+inline bool u32regex_search(const UChar* p, 
+                 match_results<const UChar*>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_search(p, p+u_strlen(p), m, e, flags, p, static_cast<mpl::int_<2> const*>(0));
+}
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX)
+inline bool u32regex_search(const wchar_t* p, 
+                 match_results<const wchar_t*>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_search(p, p+std::wcslen(p), m, e, flags, p, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
+}
+#endif
+inline bool u32regex_search(const char* p, 
+                 match_results<const char*>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_search(p, p+std::strlen(p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));
+}
+inline bool u32regex_search(const unsigned char* p, 
+                 match_results<const unsigned char*>& m, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_search(p, p+std::strlen((const char*)p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));
+}
+inline bool u32regex_search(const std::string& s, 
+                        match_results<std::string::const_iterator>& m, 
+                        const u32regex& e, 
+                        match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<1> const*>(0));
+}
+#ifndef BOOST_NO_STD_WSTRING
+inline bool u32regex_search(const std::wstring& s, 
+                        match_results<std::wstring::const_iterator>& m, 
+                        const u32regex& e, 
+                        match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
+}
+#endif
+inline bool u32regex_search(const UnicodeString& s, 
+                        match_results<const UChar*>& m, 
+                        const u32regex& e, 
+                        match_flag_type flags = match_default)
+{
+   return re_detail::do_regex_search(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, s.getBuffer(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
+}
+template <class BidiIterator>
+inline bool u32regex_search(BidiIterator first, BidiIterator last, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   match_results<BidiIterator> m;
+   return re_detail::do_regex_search(first, last, m, e, flags, first, static_cast<mpl::int_<sizeof(*first)> const*>(0));
+}
+inline bool u32regex_search(const UChar* p, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   match_results<const UChar*> m;
+   return re_detail::do_regex_search(p, p+u_strlen(p), m, e, flags, p, static_cast<mpl::int_<2> const*>(0));
+}
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX)
+inline bool u32regex_search(const wchar_t* p, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   match_results<const wchar_t*> m;
+   return re_detail::do_regex_search(p, p+std::wcslen(p), m, e, flags, p, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
+}
+#endif
+inline bool u32regex_search(const char* p, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   match_results<const char*> m;
+   return re_detail::do_regex_search(p, p+std::strlen(p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));
+}
+inline bool u32regex_search(const unsigned char* p, 
+                 const u32regex& e, 
+                 match_flag_type flags = match_default)
+{
+   match_results<const unsigned char*> m;
+   return re_detail::do_regex_search(p, p+std::strlen((const char*)p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));
+}
+inline bool u32regex_search(const std::string& s, 
+                        const u32regex& e, 
+                        match_flag_type flags = match_default)
+{
+   match_results<std::string::const_iterator> m;
+   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<1> const*>(0));
+}
+#ifndef BOOST_NO_STD_WSTRING
+inline bool u32regex_search(const std::wstring& s, 
+                        const u32regex& e, 
+                        match_flag_type flags = match_default)
+{
+   match_results<std::wstring::const_iterator> m;
+   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
+}
+#endif
+inline bool u32regex_search(const UnicodeString& s, 
+                        const u32regex& e, 
+                        match_flag_type flags = match_default)
+{
+   match_results<const UChar*> m;
+   return re_detail::do_regex_search(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, s.getBuffer(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
+}
+
+//
+// overloads for regex_replace with utf-8 and utf-16 data types:
+//
+namespace re_detail{
+template <class I>
+inline std::pair< boost::u8_to_u32_iterator<I>, boost::u8_to_u32_iterator<I> >
+   make_utf32_seq(I i, I j, mpl::int_<1> const*)
+{
+   return std::pair< boost::u8_to_u32_iterator<I>, boost::u8_to_u32_iterator<I> >(boost::u8_to_u32_iterator<I>(i), boost::u8_to_u32_iterator<I>(j));
+}
+template <class I>
+inline std::pair< boost::u16_to_u32_iterator<I>, boost::u16_to_u32_iterator<I> >
+   make_utf32_seq(I i, I j, mpl::int_<2> const*)
+{
+   return std::pair< boost::u16_to_u32_iterator<I>, boost::u16_to_u32_iterator<I> >(boost::u16_to_u32_iterator<I>(i), boost::u16_to_u32_iterator<I>(j));
+}
+template <class I>
+inline std::pair< I, I >
+   make_utf32_seq(I i, I j, mpl::int_<4> const*)
+{
+   return std::pair< I, I >(i, j);
+}
+template <class charT>
+inline std::pair< boost::u8_to_u32_iterator<const charT*>, boost::u8_to_u32_iterator<const charT*> >
+   make_utf32_seq(const charT* p, mpl::int_<1> const*)
+{
+   return std::pair< boost::u8_to_u32_iterator<const charT*>, boost::u8_to_u32_iterator<const charT*> >(boost::u8_to_u32_iterator<const charT*>(p), boost::u8_to_u32_iterator<const charT*>(p+std::strlen((const char*)p)));
+}
+template <class charT>
+inline std::pair< boost::u16_to_u32_iterator<const charT*>, boost::u16_to_u32_iterator<const charT*> >
+   make_utf32_seq(const charT* p, mpl::int_<2> const*)
+{
+   return std::pair< boost::u16_to_u32_iterator<const charT*>, boost::u16_to_u32_iterator<const charT*> >(boost::u16_to_u32_iterator<const charT*>(p), boost::u16_to_u32_iterator<const charT*>(p+u_strlen((const UChar*)p)));
+}
+template <class charT>
+inline std::pair< const charT*, const charT* >
+   make_utf32_seq(const charT* p, mpl::int_<4> const*)
+{
+   return std::pair< const charT*, const charT* >(p, p+icu_regex_traits::length((UChar32 const*)p));
+}
+template <class OutputIterator>
+inline OutputIterator make_utf32_out(OutputIterator o, mpl::int_<4> const*)
+{
+   return o;
+}
+template <class OutputIterator>
+inline utf16_output_iterator<OutputIterator> make_utf32_out(OutputIterator o, mpl::int_<2> const*)
+{
+   return o;
+}
+template <class OutputIterator>
+inline utf8_output_iterator<OutputIterator> make_utf32_out(OutputIterator o, mpl::int_<1> const*)
+{
+   return o;
+}
+
+template <class OutputIterator, class I1, class I2>
+OutputIterator do_regex_replace(OutputIterator out,
+                                 std::pair<I1, I1> const& in,
+                                 const u32regex& e, 
+                                 const std::pair<I2, I2>& fmt, 
+                                 match_flag_type flags
+                                 )
+{
+   // unfortunately we have to copy the format string in order to pass in onward:
+   std::vector<UChar32> f;
+#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+   f.assign(fmt.first, fmt.second);
+#else
+   f.clear();
+   I2 pos = fmt.first;
+   while(pos != fmt.second)
+      f.push_back(*pos++);
+#endif
+   
+   regex_iterator<I1, UChar32, icu_regex_traits> i(in.first, in.second, e, flags);
+   regex_iterator<I1, UChar32, icu_regex_traits> j;
+   if(i == j)
+   {
+      if(!(flags & regex_constants::format_no_copy))
+         out = re_detail::copy(in.first, in.second, out);
+   }
+   else
+   {
+      I1 last_m = in.first;
+      while(i != j)
+      {
+         if(!(flags & regex_constants::format_no_copy))
+            out = re_detail::copy(i->prefix().first, i->prefix().second, out); 
+         if(f.size())
+            out = ::boost::re_detail::regex_format_imp(out, *i, &*f.begin(), &*f.begin() + f.size(), flags, e.get_traits());
+         else
+            out = ::boost::re_detail::regex_format_imp(out, *i, static_cast<UChar32 const*>(0), static_cast<UChar32 const*>(0), flags, e.get_traits());
+         last_m = (*i)[0].second;
+         if(flags & regex_constants::format_first_only)
+            break;
+         ++i;
+      }
+      if(!(flags & regex_constants::format_no_copy))
+         out = re_detail::copy(last_m, in.second, out);
+   }
+   return out;
+}
+template <class BaseIterator>
+inline const BaseIterator& extract_output_base(const BaseIterator& b)
+{
+   return b;
+}
+template <class BaseIterator>
+inline BaseIterator extract_output_base(const utf8_output_iterator<BaseIterator>& b)
+{
+   return b.base();
+}
+template <class BaseIterator>
+inline BaseIterator extract_output_base(const utf16_output_iterator<BaseIterator>& b)
+{
+   return b.base();
+}
+}  // re_detail
+
+template <class OutputIterator, class BidirectionalIterator, class charT>
+inline OutputIterator u32regex_replace(OutputIterator out,
+                         BidirectionalIterator first,
+                         BidirectionalIterator last,
+                         const u32regex& e, 
+                         const charT* fmt, 
+                         match_flag_type flags = match_default)
+{
+   return re_detail::extract_output_base
+#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+   <OutputIterator>
+#endif
+    (
+      re_detail::do_regex_replace(
+         re_detail::make_utf32_out(out, static_cast<mpl::int_<sizeof(*first)> const*>(0)),
+         re_detail::make_utf32_seq(first, last, static_cast<mpl::int_<sizeof(*first)> const*>(0)),
+         e,
+         re_detail::make_utf32_seq(fmt, static_cast<mpl::int_<sizeof(*fmt)> const*>(0)),
+         flags)
+      );
+}
+
+template <class OutputIterator, class Iterator, class charT>
+inline OutputIterator u32regex_replace(OutputIterator out,
+                         Iterator first,
+                         Iterator last,
+                         const u32regex& e, 
+                         const std::basic_string<charT>& fmt,
+                         match_flag_type flags = match_default)
+{
+   return re_detail::extract_output_base
+#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+   <OutputIterator>
+#endif
+    (
+      re_detail::do_regex_replace(
+         re_detail::make_utf32_out(out, static_cast<mpl::int_<sizeof(*first)> const*>(0)),
+         re_detail::make_utf32_seq(first, last, static_cast<mpl::int_<sizeof(*first)> const*>(0)),
+         e,
+         re_detail::make_utf32_seq(fmt.begin(), fmt.end(), static_cast<mpl::int_<sizeof(charT)> const*>(0)),
+         flags)
+      );
+}
+
+template <class OutputIterator, class Iterator>
+inline OutputIterator u32regex_replace(OutputIterator out,
+                         Iterator first,
+                         Iterator last,
+                         const u32regex& e, 
+                         const UnicodeString& fmt,
+                         match_flag_type flags = match_default)
+{
+   return re_detail::extract_output_base
+#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+   <OutputIterator>
+#endif
+   (
+      re_detail::do_regex_replace(
+         re_detail::make_utf32_out(out, static_cast<mpl::int_<sizeof(*first)> const*>(0)),
+         re_detail::make_utf32_seq(first, last, static_cast<mpl::int_<sizeof(*first)> const*>(0)),
+         e,
+         re_detail::make_utf32_seq(fmt.getBuffer(), fmt.getBuffer() + fmt.length(), static_cast<mpl::int_<2> const*>(0)),
+         flags)
+      );
+}
+
+template <class charT>
+std::basic_string<charT> u32regex_replace(const std::basic_string<charT>& s,
+                         const u32regex& e, 
+                         const charT* fmt,
+                         match_flag_type flags = match_default)
+{
+   std::basic_string<charT> result;
+   re_detail::string_out_iterator<std::basic_string<charT> > i(result);
+   u32regex_replace(i, s.begin(), s.end(), e, fmt, flags);
+   return result;
+}
+
+template <class charT>
+std::basic_string<charT> u32regex_replace(const std::basic_string<charT>& s,
+                         const u32regex& e, 
+                         const std::basic_string<charT>& fmt,
+                         match_flag_type flags = match_default)
+{
+   std::basic_string<charT> result;
+   re_detail::string_out_iterator<std::basic_string<charT> > i(result);
+   u32regex_replace(i, s.begin(), s.end(), e, fmt.c_str(), flags);
+   return result;
+}
+
+namespace re_detail{
+
+class unicode_string_out_iterator
+{
+   UnicodeString* out;
+public:
+   unicode_string_out_iterator(UnicodeString& s) : out(&s) {}
+   unicode_string_out_iterator& operator++() { return *this; }
+   unicode_string_out_iterator& operator++(int) { return *this; }
+   unicode_string_out_iterator& operator*() { return *this; }
+   unicode_string_out_iterator& operator=(UChar v) 
+   { 
+      *out += v; 
+      return *this; 
+   }
+   typedef std::ptrdiff_t difference_type;
+   typedef UChar value_type;
+   typedef value_type* pointer;
+   typedef value_type& reference;
+   typedef std::output_iterator_tag iterator_category;
+};
+
+}
+
+inline UnicodeString u32regex_replace(const UnicodeString& s,
+                         const u32regex& e, 
+                         const UChar* fmt,
+                         match_flag_type flags = match_default)
+{
+   UnicodeString result;
+   re_detail::unicode_string_out_iterator i(result);
+   u32regex_replace(i, s.getBuffer(), s.getBuffer()+s.length(), e, fmt, flags);
+   return result;
+}
+
+inline UnicodeString u32regex_replace(const UnicodeString& s,
+                         const u32regex& e, 
+                         const UnicodeString& fmt,
+                         match_flag_type flags = match_default)
+{
+   UnicodeString result;
+   re_detail::unicode_string_out_iterator i(result);
+   re_detail::do_regex_replace(
+         re_detail::make_utf32_out(i, static_cast<mpl::int_<2> const*>(0)),
+         re_detail::make_utf32_seq(s.getBuffer(), s.getBuffer()+s.length(), static_cast<mpl::int_<2> const*>(0)),
+         e,
+         re_detail::make_utf32_seq(fmt.getBuffer(), fmt.getBuffer() + fmt.length(), static_cast<mpl::int_<2> const*>(0)),
+         flags);
+   return result;
+}
+
+} // namespace boost.
+
+#include <boost/regex/v4/u32regex_iterator.hpp>
+#include <boost/regex/v4/u32regex_token_iterator.hpp>
+
+#endif
index 900d9a78e1f6100b604a5a295e6ac2c0ab0c765b..02502f950480d7eacd71ef517d41ea852674e161 100644 (file)
-/*\r
- *\r
- * Copyright (c) 2004\r
- * John Maddock\r
- *\r
- * Use, modification and distribution are subject to the \r
- * Boost Software License, Version 1.0. (See accompanying file \r
- * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
- *\r
- */\r
-\r
- /*\r
-  *   LOCATION:    see http://www.boost.org for most recent version.\r
-  *   FILE         mfc.hpp\r
-  *   VERSION      see <boost/version.hpp>\r
-  *   DESCRIPTION: Overloads and helpers for using MFC/ATL string types with Boost.Regex.\r
-  */\r
-\r
-#ifndef BOOST_REGEX_MFC_HPP\r
-#define BOOST_REGEX_MFC_HPP\r
-\r
-#include <atlsimpstr.h>\r
-#include <boost/regex.hpp>\r
-\r
-namespace boost{\r
-\r
-//\r
-// define the types used for TCHAR's:\r
-typedef basic_regex<TCHAR> tregex;\r
-typedef match_results<TCHAR const*> tmatch;\r
-typedef regex_iterator<TCHAR const*> tregex_iterator;\r
-typedef regex_token_iterator<TCHAR const*> tregex_token_iterator;\r
-\r
-#if _MSC_VER >= 1310\r
-#define SIMPLE_STRING_PARAM class B, bool b\r
-#define SIMPLE_STRING_ARG_LIST B, b\r
-#else\r
-#define SIMPLE_STRING_PARAM class B\r
-#define SIMPLE_STRING_ARG_LIST B\r
-#endif\r
-\r
-//\r
-// define regex creation functions:\r
-//\r
-template <SIMPLE_STRING_PARAM>\r
-inline basic_regex<B> \r
-make_regex(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, ::boost::regex_constants::syntax_option_type f = boost::regex_constants::normal)\r
-{\r
-   basic_regex<B> result(s.GetString(), s.GetString() + s.GetLength(), f);\r
-   return result;\r
-}\r
-//\r
-// regex_match overloads:\r
-//\r
-template <SIMPLE_STRING_PARAM, class A, class T>\r
-inline bool regex_match(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,\r
-                 match_results<const B*, A>& what,\r
-                 const basic_regex<B, T>& e,\r
-                 boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
-{\r
-   return ::boost::regex_match(s.GetString(),\r
-                               s.GetString() + s.GetLength(),\r
-                               what,\r
-                               e,\r
-                               f);\r
-}\r
-\r
-template <SIMPLE_STRING_PARAM, class T>\r
-inline bool regex_match(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,\r
-                 const basic_regex<B, T>& e,\r
-                 boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
-{\r
-   return ::boost::regex_match(s.GetString(),\r
-                               s.GetString() + s.GetLength(),\r
-                               e,\r
-                               f);\r
-}\r
-//\r
-// regex_search overloads:\r
-//\r
-template <SIMPLE_STRING_PARAM, class A, class T>\r
-inline bool regex_search(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,\r
-                 match_results<const B*, A>& what,\r
-                 const basic_regex<B, T>& e,\r
-                 boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
-{\r
-   return ::boost::regex_search(s.GetString(),\r
-                               s.GetString() + s.GetLength(),\r
-                               what,\r
-                               e,\r
-                               f);\r
-}\r
-\r
-template <SIMPLE_STRING_PARAM, class T>\r
-inline bool regex_search(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,\r
-                 const basic_regex<B, T>& e,\r
-                 boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
-{\r
-   return ::boost::regex_search(s.GetString(),\r
-                               s.GetString() + s.GetLength(),\r
-                               e,\r
-                               f);\r
-}\r
-//\r
-// regex_iterator creation:\r
-//\r
-template <SIMPLE_STRING_PARAM>\r
-inline regex_iterator<B const*> \r
-make_regex_iterator(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, const basic_regex<B>& e, ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
-{\r
-   regex_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, f);\r
-   return result;\r
-}\r
-\r
-template <SIMPLE_STRING_PARAM>\r
-inline regex_token_iterator<B const*> \r
-   make_regex_token_iterator(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, const basic_regex<B>& e, int sub = 0, ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
-{\r
-   regex_token_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, sub, f);\r
-   return result;\r
-}\r
-\r
-template <SIMPLE_STRING_PARAM>\r
-inline regex_token_iterator<B const*> \r
-make_regex_token_iterator(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, const basic_regex<B>& e, const std::vector<int>& subs, ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
-{\r
-   regex_token_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, subs, f);\r
-   return result;\r
-}\r
-\r
-template <SIMPLE_STRING_PARAM, std::size_t N>\r
-inline regex_token_iterator<B const*> \r
-make_regex_token_iterator(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, const basic_regex<B>& e, const int (& subs)[N], ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
-{\r
-   regex_token_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, subs, f);\r
-   return result;\r
-}\r
-\r
-template <class OutputIterator, class BidirectionalIterator, class traits,\r
-          SIMPLE_STRING_PARAM>\r
-OutputIterator regex_replace(OutputIterator out,\r
-                           BidirectionalIterator first,\r
-                           BidirectionalIterator last,\r
-                           const basic_regex<B, traits>& e,\r
-                           const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& fmt,\r
-                           match_flag_type flags = match_default)\r
-{\r
-   return ::boost::regex_replace(out, first, last, e, fmt.GetString(), flags);\r
-}\r
-\r
-namespace re_detail{\r
-\r
-template <SIMPLE_STRING_PARAM>\r
-class mfc_string_out_iterator\r
-{\r
-   ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>* out;\r
-public:\r
-   mfc_string_out_iterator(ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s) : out(&s) {}\r
-   mfc_string_out_iterator& operator++() { return *this; }\r
-   mfc_string_out_iterator& operator++(int) { return *this; }\r
-   mfc_string_out_iterator& operator*() { return *this; }\r
-   mfc_string_out_iterator& operator=(B v) \r
-   { \r
-      out->AppendChar(v); \r
-      return *this; \r
-   }\r
-   typedef std::ptrdiff_t difference_type;\r
-   typedef B value_type;\r
-   typedef value_type* pointer;\r
-   typedef value_type& reference;\r
-   typedef std::output_iterator_tag iterator_category;\r
-};\r
-\r
-}\r
-\r
-template <class traits, SIMPLE_STRING_PARAM>\r
-ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST> regex_replace(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,\r
-                            const basic_regex<B, traits>& e,\r
-                            const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& fmt,\r
-                            match_flag_type flags = match_default)\r
-{\r
-   ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST> result(s.GetManager());\r
-   re_detail::mfc_string_out_iterator<SIMPLE_STRING_ARG_LIST> i(result);\r
-   regex_replace(i, s.GetString(), s.GetString() + s.GetLength(), e, fmt.GetString(), flags);\r
-   return result;\r
-}\r
-\r
-} // namespace boost.\r
-\r
-#endif\r
+/*
+ *
+ * Copyright (c) 2004
+ * John Maddock
+ *
+ * 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)
+ *
+ */
+
+ /*
+  *   LOCATION:    see http://www.boost.org for most recent version.
+  *   FILE         mfc.hpp
+  *   VERSION      see <boost/version.hpp>
+  *   DESCRIPTION: Overloads and helpers for using MFC/ATL string types with Boost.Regex.
+  */
+
+#ifndef BOOST_REGEX_MFC_HPP
+#define BOOST_REGEX_MFC_HPP
+
+#include <atlsimpstr.h>
+#include <boost/regex.hpp>
+
+namespace boost{
+
+//
+// define the types used for TCHAR's:
+typedef basic_regex<TCHAR> tregex;
+typedef match_results<TCHAR const*> tmatch;
+typedef regex_iterator<TCHAR const*> tregex_iterator;
+typedef regex_token_iterator<TCHAR const*> tregex_token_iterator;
+
+#if _MSC_VER >= 1310
+#define SIMPLE_STRING_PARAM class B, bool b
+#define SIMPLE_STRING_ARG_LIST B, b
+#else
+#define SIMPLE_STRING_PARAM class B
+#define SIMPLE_STRING_ARG_LIST B
+#endif
+
+//
+// define regex creation functions:
+//
+template <SIMPLE_STRING_PARAM>
+inline basic_regex<B> 
+make_regex(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, ::boost::regex_constants::syntax_option_type f = boost::regex_constants::normal)
+{
+   basic_regex<B> result(s.GetString(), s.GetString() + s.GetLength(), f);
+   return result;
+}
+//
+// regex_match overloads:
+//
+template <SIMPLE_STRING_PARAM, class A, class T>
+inline bool regex_match(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,
+                 match_results<const B*, A>& what,
+                 const basic_regex<B, T>& e,
+                 boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)
+{
+   return ::boost::regex_match(s.GetString(),
+                               s.GetString() + s.GetLength(),
+                               what,
+                               e,
+                               f);
+}
+
+template <SIMPLE_STRING_PARAM, class T>
+inline bool regex_match(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,
+                 const basic_regex<B, T>& e,
+                 boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)
+{
+   return ::boost::regex_match(s.GetString(),
+                               s.GetString() + s.GetLength(),
+                               e,
+                               f);
+}
+//
+// regex_search overloads:
+//
+template <SIMPLE_STRING_PARAM, class A, class T>
+inline bool regex_search(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,
+                 match_results<const B*, A>& what,
+                 const basic_regex<B, T>& e,
+                 boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)
+{
+   return ::boost::regex_search(s.GetString(),
+                               s.GetString() + s.GetLength(),
+                               what,
+                               e,
+                               f);
+}
+
+template <SIMPLE_STRING_PARAM, class T>
+inline bool regex_search(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,
+                 const basic_regex<B, T>& e,
+                 boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)
+{
+   return ::boost::regex_search(s.GetString(),
+                               s.GetString() + s.GetLength(),
+                               e,
+                               f);
+}
+//
+// regex_iterator creation:
+//
+template <SIMPLE_STRING_PARAM>
+inline regex_iterator<B const*> 
+make_regex_iterator(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, const basic_regex<B>& e, ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)
+{
+   regex_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, f);
+   return result;
+}
+
+template <SIMPLE_STRING_PARAM>
+inline regex_token_iterator<B const*> 
+   make_regex_token_iterator(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, const basic_regex<B>& e, int sub = 0, ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)
+{
+   regex_token_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, sub, f);
+   return result;
+}
+
+template <SIMPLE_STRING_PARAM>
+inline regex_token_iterator<B const*> 
+make_regex_token_iterator(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, const basic_regex<B>& e, const std::vector<int>& subs, ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)
+{
+   regex_token_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, subs, f);
+   return result;
+}
+
+template <SIMPLE_STRING_PARAM, std::size_t N>
+inline regex_token_iterator<B const*> 
+make_regex_token_iterator(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, const basic_regex<B>& e, const int (& subs)[N], ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)
+{
+   regex_token_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, subs, f);
+   return result;
+}
+
+template <class OutputIterator, class BidirectionalIterator, class traits,
+          SIMPLE_STRING_PARAM>
+OutputIterator regex_replace(OutputIterator out,
+                           BidirectionalIterator first,
+                           BidirectionalIterator last,
+                           const basic_regex<B, traits>& e,
+                           const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& fmt,
+                           match_flag_type flags = match_default)
+{
+   return ::boost::regex_replace(out, first, last, e, fmt.GetString(), flags);
+}
+
+namespace re_detail{
+
+template <SIMPLE_STRING_PARAM>
+class mfc_string_out_iterator
+{
+   ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>* out;
+public:
+   mfc_string_out_iterator(ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s) : out(&s) {}
+   mfc_string_out_iterator& operator++() { return *this; }
+   mfc_string_out_iterator& operator++(int) { return *this; }
+   mfc_string_out_iterator& operator*() { return *this; }
+   mfc_string_out_iterator& operator=(B v) 
+   { 
+      out->AppendChar(v); 
+      return *this; 
+   }
+   typedef std::ptrdiff_t difference_type;
+   typedef B value_type;
+   typedef value_type* pointer;
+   typedef value_type& reference;
+   typedef std::output_iterator_tag iterator_category;
+};
+
+}
+
+template <class traits, SIMPLE_STRING_PARAM>
+ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST> regex_replace(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,
+                            const basic_regex<B, traits>& e,
+                            const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& fmt,
+                            match_flag_type flags = match_default)
+{
+   ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST> result(s.GetManager());
+   re_detail::mfc_string_out_iterator<SIMPLE_STRING_ARG_LIST> i(result);
+   regex_replace(i, s.GetString(), s.GetString() + s.GetLength(), e, fmt.GetString(), flags);
+   return result;
+}
+
+} // namespace boost.
+
+#endif
index 6e5d5f4aede7899eed6b4bbe0d93625d745389d1..218169c3c88ede8b3971f6cf3b33c18f41ca2908 100644 (file)
-/*\r
- *\r
- * Copyright (c) 2004\r
- * John Maddock\r
- *\r
- * Use, modification and distribution are subject to the \r
- * Boost Software License, Version 1.0. (See accompanying file \r
- * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
- *\r
- */\r
\r
- /*\r
-  *   LOCATION:    see http://www.boost.org for most recent version.\r
-  *   FILE         static_mutex.hpp\r
-  *   VERSION      see <boost/version.hpp>\r
-  *   DESCRIPTION: Declares static_mutex lock type, there are three different\r
-  *                implementations: POSIX pthreads, WIN32 threads, and portable,\r
-  *                these are described in more detail below.\r
-  */\r
-\r
-#ifndef BOOST_REGEX_STATIC_MUTEX_HPP\r
-#define BOOST_REGEX_STATIC_MUTEX_HPP\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/regex/config.hpp> // dll import/export options.\r
-\r
-#ifdef BOOST_HAS_PTHREADS\r
-#include <pthread.h>\r
-#endif\r
-\r
-#if defined(BOOST_HAS_PTHREADS) && defined(PTHREAD_MUTEX_INITIALIZER)\r
-//\r
-// pthreads version:\r
-// simple wrap around a pthread_mutex_t initialized with\r
-// PTHREAD_MUTEX_INITIALIZER.\r
-//\r
-namespace boost{\r
-\r
-class BOOST_REGEX_DECL scoped_static_mutex_lock;\r
-\r
-class static_mutex\r
-{\r
-public:\r
-   typedef scoped_static_mutex_lock scoped_lock;\r
-   pthread_mutex_t m_mutex;\r
-};\r
-\r
-#define BOOST_STATIC_MUTEX_INIT { PTHREAD_MUTEX_INITIALIZER, }\r
-\r
-class BOOST_REGEX_DECL scoped_static_mutex_lock\r
-{\r
-public:\r
-   scoped_static_mutex_lock(static_mutex& mut, bool lk = true);\r
-   ~scoped_static_mutex_lock();\r
-   inline bool locked()const\r
-   {\r
-      return m_have_lock;\r
-   }\r
-   inline operator void const*()const\r
-   {\r
-      return locked() ? this : 0;\r
-   }\r
-   void lock();\r
-   void unlock();\r
-private:\r
-   static_mutex& m_mutex;\r
-   bool m_have_lock;\r
-};\r
-\r
-\r
-} // namespace boost\r
-#elif defined(BOOST_HAS_WINTHREADS)\r
-//\r
-// Win32 version:\r
-// Use a 32-bit int as a lock, along with a test-and-set\r
-// implementation using InterlockedCompareExchange.\r
-//\r
-\r
-#include <boost/cstdint.hpp>\r
-\r
-namespace boost{\r
-\r
-class BOOST_REGEX_DECL scoped_static_mutex_lock;\r
-\r
-class static_mutex\r
-{\r
-public:\r
-   typedef scoped_static_mutex_lock scoped_lock;\r
-   boost::int32_t m_mutex;\r
-};\r
-\r
-#define BOOST_STATIC_MUTEX_INIT { 0, }\r
-\r
-class BOOST_REGEX_DECL scoped_static_mutex_lock\r
-{\r
-public:\r
-   scoped_static_mutex_lock(static_mutex& mut, bool lk = true);\r
-   ~scoped_static_mutex_lock();\r
-   operator void const*()const;\r
-   bool locked()const;\r
-   void lock();\r
-   void unlock();\r
-private:\r
-   static_mutex& m_mutex;\r
-   bool m_have_lock;\r
-   scoped_static_mutex_lock(const scoped_static_mutex_lock&);\r
-   scoped_static_mutex_lock& operator=(const scoped_static_mutex_lock&);\r
-};\r
-\r
-inline scoped_static_mutex_lock::operator void const*()const\r
-{\r
-   return locked() ? this : 0;\r
-}\r
-\r
-inline bool scoped_static_mutex_lock::locked()const\r
-{\r
-   return m_have_lock;\r
-}\r
-\r
-} // namespace\r
-\r
-#else\r
-//\r
-// Portable version of a static mutex based on Boost.Thread library:\r
-// This has to use a single mutex shared by all instances of static_mutex\r
-// because boost::call_once doesn't alow us to pass instance information\r
-// down to the initialisation proceedure.  In fact the initialisation routine\r
-// may need to be called more than once - but only once per instance.\r
-//\r
-// Since this preprocessor path is almost never taken, we hide these header\r
-// dependencies so that build tools don't find them.\r
-//\r
-#define B1 <boost/thread/once.hpp>\r
-#define B2 <boost/thread/recursive_mutex.hpp>\r
-#include B1\r
-#include B2\r
-#undef B1\r
-#undef B2\r
-\r
-namespace boost{\r
-\r
-class BOOST_REGEX_DECL scoped_static_mutex_lock;\r
-extern "C" BOOST_REGEX_DECL void free_static_mutex();\r
-\r
-class BOOST_REGEX_DECL static_mutex\r
-{\r
-public:\r
-   typedef scoped_static_mutex_lock scoped_lock;\r
-   static void init();\r
-   static boost::recursive_mutex* m_pmutex;\r
-   static boost::once_flag m_once;\r
-};\r
-\r
-#define BOOST_STATIC_MUTEX_INIT {  }\r
-\r
-class BOOST_REGEX_DECL scoped_static_mutex_lock\r
-{\r
-public:\r
-   scoped_static_mutex_lock(static_mutex& mut, bool lk = true);\r
-   ~scoped_static_mutex_lock();\r
-   operator void const*()const;\r
-   bool locked()const;\r
-   void lock();\r
-   void unlock();\r
-private:\r
-   boost::recursive_mutex::scoped_lock* m_plock;\r
-   bool m_have_lock;\r
-};\r
-\r
-inline scoped_static_mutex_lock::operator void const*()const\r
-{\r
-   return locked() ? this : 0;\r
-}\r
-\r
-inline bool scoped_static_mutex_lock::locked()const\r
-{\r
-   return m_have_lock;\r
-}\r
-\r
-} // namespace\r
-\r
-#endif\r
-\r
-#endif\r
+/*
+ *
+ * Copyright (c) 2004
+ * John Maddock
+ *
+ * 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)
+ *
+ */
+ /*
+  *   LOCATION:    see http://www.boost.org for most recent version.
+  *   FILE         static_mutex.hpp
+  *   VERSION      see <boost/version.hpp>
+  *   DESCRIPTION: Declares static_mutex lock type, there are three different
+  *                implementations: POSIX pthreads, WIN32 threads, and portable,
+  *                these are described in more detail below.
+  */
+
+#ifndef BOOST_REGEX_STATIC_MUTEX_HPP
+#define BOOST_REGEX_STATIC_MUTEX_HPP
+
+#include <boost/config.hpp>
+#include <boost/regex/config.hpp> // dll import/export options.
+
+#ifdef BOOST_HAS_PTHREADS
+#include <pthread.h>
+#endif
+
+#if defined(BOOST_HAS_PTHREADS) && defined(PTHREAD_MUTEX_INITIALIZER)
+//
+// pthreads version:
+// simple wrap around a pthread_mutex_t initialized with
+// PTHREAD_MUTEX_INITIALIZER.
+//
+namespace boost{
+
+class BOOST_REGEX_DECL scoped_static_mutex_lock;
+
+class static_mutex
+{
+public:
+   typedef scoped_static_mutex_lock scoped_lock;
+   pthread_mutex_t m_mutex;
+};
+
+#define BOOST_STATIC_MUTEX_INIT { PTHREAD_MUTEX_INITIALIZER, }
+
+class BOOST_REGEX_DECL scoped_static_mutex_lock
+{
+public:
+   scoped_static_mutex_lock(static_mutex& mut, bool lk = true);
+   ~scoped_static_mutex_lock();
+   inline bool locked()const
+   {
+      return m_have_lock;
+   }
+   inline operator void const*()const
+   {
+      return locked() ? this : 0;
+   }
+   void lock();
+   void unlock();
+private:
+   static_mutex& m_mutex;
+   bool m_have_lock;
+};
+
+
+} // namespace boost
+#elif defined(BOOST_HAS_WINTHREADS)
+//
+// Win32 version:
+// Use a 32-bit int as a lock, along with a test-and-set
+// implementation using InterlockedCompareExchange.
+//
+
+#include <boost/cstdint.hpp>
+
+namespace boost{
+
+class BOOST_REGEX_DECL scoped_static_mutex_lock;
+
+class static_mutex
+{
+public:
+   typedef scoped_static_mutex_lock scoped_lock;
+   boost::int32_t m_mutex;
+};
+
+#define BOOST_STATIC_MUTEX_INIT { 0, }
+
+class BOOST_REGEX_DECL scoped_static_mutex_lock
+{
+public:
+   scoped_static_mutex_lock(static_mutex& mut, bool lk = true);
+   ~scoped_static_mutex_lock();
+   operator void const*()const;
+   bool locked()const;
+   void lock();
+   void unlock();
+private:
+   static_mutex& m_mutex;
+   bool m_have_lock;
+   scoped_static_mutex_lock(const scoped_static_mutex_lock&);
+   scoped_static_mutex_lock& operator=(const scoped_static_mutex_lock&);
+};
+
+inline scoped_static_mutex_lock::operator void const*()const
+{
+   return locked() ? this : 0;
+}
+
+inline bool scoped_static_mutex_lock::locked()const
+{
+   return m_have_lock;
+}
+
+} // namespace
+
+#else
+//
+// Portable version of a static mutex based on Boost.Thread library:
+// This has to use a single mutex shared by all instances of static_mutex
+// because boost::call_once doesn't alow us to pass instance information
+// down to the initialisation proceedure.  In fact the initialisation routine
+// may need to be called more than once - but only once per instance.
+//
+// Since this preprocessor path is almost never taken, we hide these header
+// dependencies so that build tools don't find them.
+//
+#define B1 <boost/thread/once.hpp>
+#define B2 <boost/thread/recursive_mutex.hpp>
+#include B1
+#include B2
+#undef B1
+#undef B2
+
+namespace boost{
+
+class BOOST_REGEX_DECL scoped_static_mutex_lock;
+extern "C" BOOST_REGEX_DECL void free_static_mutex();
+
+class BOOST_REGEX_DECL static_mutex
+{
+public:
+   typedef scoped_static_mutex_lock scoped_lock;
+   static void init();
+   static boost::recursive_mutex* m_pmutex;
+   static boost::once_flag m_once;
+};
+
+#define BOOST_STATIC_MUTEX_INIT {  }
+
+class BOOST_REGEX_DECL scoped_static_mutex_lock
+{
+public:
+   scoped_static_mutex_lock(static_mutex& mut, bool lk = true);
+   ~scoped_static_mutex_lock();
+   operator void const*()const;
+   bool locked()const;
+   void lock();
+   void unlock();
+private:
+   boost::recursive_mutex::scoped_lock* m_plock;
+   bool m_have_lock;
+};
+
+inline scoped_static_mutex_lock::operator void const*()const
+{
+   return locked() ? this : 0;
+}
+
+inline bool scoped_static_mutex_lock::locked()const
+{
+   return m_have_lock;
+}
+
+} // namespace
+
+#endif
+
+#endif
index f9f9e3f40a1ca03f6f5fb2630cf7db1faf690e19..657ca0a4cf952536e6c8a4587c6d89cead380e17 100644 (file)
-/*\r
- *\r
- * Copyright (c) 2004\r
- * John Maddock\r
- *\r
- * Use, modification and distribution are subject to the \r
- * Boost Software License, Version 1.0. (See accompanying file \r
- * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
- *\r
- */\r
\r
- /*\r
-  *   LOCATION:    see http://www.boost.org for most recent version.\r
-  *   FILE         unicode_iterator.hpp\r
-  *   VERSION      see <boost/version.hpp>\r
-  *   DESCRIPTION: Iterator adapters for converting between different Unicode encodings.\r
-  */\r
-\r
-/****************************************************************************\r
-\r
-Contents:\r
-~~~~~~~~~\r
-\r
-1) Read Only, Input Adapters:\r
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
-\r
-template <class BaseIterator, class U8Type = ::boost::uint8_t>\r
-class u32_to_u8_iterator;\r
-\r
-Adapts sequence of UTF-32 code points to "look like" a sequence of UTF-8.\r
-\r
-template <class BaseIterator, class U32Type = ::boost::uint32_t>\r
-class u8_to_u32_iterator;\r
-\r
-Adapts sequence of UTF-8 code points to "look like" a sequence of UTF-32.\r
-\r
-template <class BaseIterator, class U16Type = ::boost::uint16_t>\r
-class u32_to_u16_iterator;\r
-\r
-Adapts sequence of UTF-32 code points to "look like" a sequence of UTF-16.\r
-\r
-template <class BaseIterator, class U32Type = ::boost::uint32_t>\r
-class u16_to_u32_iterator;\r
-\r
-Adapts sequence of UTF-16 code points to "look like" a sequence of UTF-32.\r
-\r
-2) Single pass output iterator adapters:\r
-\r
-template <class BaseIterator>\r
-class utf8_output_iterator;\r
-\r
-Accepts UTF-32 code points and forwards them on as UTF-8 code points.\r
-\r
-template <class BaseIterator>\r
-class utf16_output_iterator;\r
-\r
-Accepts UTF-32 code points and forwards them on as UTF-16 code points.\r
-\r
-****************************************************************************/\r
-\r
-#ifndef BOOST_REGEX_UNICODE_ITERATOR_HPP\r
-#define BOOST_REGEX_UNICODE_ITERATOR_HPP\r
-#include <boost/cstdint.hpp>\r
-#include <boost/assert.hpp>\r
-#include <boost/iterator/iterator_facade.hpp>\r
-#include <boost/static_assert.hpp>\r
-#include <boost/throw_exception.hpp>\r
-#include <stdexcept>\r
-#ifndef BOOST_NO_STD_LOCALE\r
-#include <sstream>\r
-#include <ios>\r
-#endif\r
-#include <limits.h> // CHAR_BIT\r
-\r
-namespace boost{\r
-\r
-namespace detail{\r
-\r
-static const ::boost::uint16_t high_surrogate_base = 0xD7C0u;\r
-static const ::boost::uint16_t low_surrogate_base = 0xDC00u;\r
-static const ::boost::uint32_t ten_bit_mask = 0x3FFu;\r
-\r
-inline bool is_high_surrogate(::boost::uint16_t v)\r
-{\r
-   return (v & 0xFC00u) == 0xd800u;\r
-}\r
-inline bool is_low_surrogate(::boost::uint16_t v)\r
-{\r
-   return (v & 0xFC00u) == 0xdc00u;\r
-}\r
-template <class T>\r
-inline bool is_surrogate(T v)\r
-{\r
-   return (v & 0xF800u) == 0xd800;\r
-}\r
-\r
-inline unsigned utf8_byte_count(boost::uint8_t c)\r
-{\r
-   // if the most significant bit with a zero in it is in position\r
-   // 8-N then there are N bytes in this UTF-8 sequence:\r
-   boost::uint8_t mask = 0x80u;\r
-   unsigned result = 0;\r
-   while(c & mask)\r
-   {\r
-      ++result;\r
-      mask >>= 1;\r
-   }\r
-   return (result == 0) ? 1 : ((result > 4) ? 4 : result);\r
-}\r
-\r
-inline unsigned utf8_trailing_byte_count(boost::uint8_t c)\r
-{\r
-   return utf8_byte_count(c) - 1;\r
-}\r
-\r
-inline void invalid_utf32_code_point(::boost::uint32_t val)\r
-{\r
-#ifndef BOOST_NO_STD_LOCALE\r
-   std::stringstream ss;\r
-   ss << "Invalid UTF-32 code point U+" << std::showbase << std::hex << val << " encountered while trying to encode UTF-16 sequence";\r
-   std::out_of_range e(ss.str());\r
-#else\r
-   std::out_of_range e("Invalid UTF-32 code point encountered while trying to encode UTF-16 sequence");\r
-#endif\r
-   boost::throw_exception(e);\r
-}\r
-\r
-\r
-} // namespace detail\r
-\r
-template <class BaseIterator, class U16Type = ::boost::uint16_t>\r
-class u32_to_u16_iterator\r
-   : public boost::iterator_facade<u32_to_u16_iterator<BaseIterator, U16Type>, U16Type, std::bidirectional_iterator_tag, const U16Type>\r
-{\r
-   typedef boost::iterator_facade<u32_to_u16_iterator<BaseIterator, U16Type>, U16Type, std::bidirectional_iterator_tag, const U16Type> base_type;\r
-\r
-#if !defined(BOOST_NO_STD_ITERATOR_TRAITS) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\r
-   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;\r
-\r
-   BOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 32);\r
-   BOOST_STATIC_ASSERT(sizeof(U16Type)*CHAR_BIT == 16);\r
-#endif\r
-\r
-public:\r
-   typename base_type::reference\r
-      dereference()const\r
-   {\r
-      if(m_current == 2)\r
-         extract_current();\r
-      return m_values[m_current];\r
-   }\r
-   bool equal(const u32_to_u16_iterator& that)const\r
-   {\r
-      if(m_position == that.m_position)\r
-      {\r
-         // Both m_currents must be equal, or both even\r
-         // this is the same as saying their sum must be even:\r
-         return (m_current + that.m_current) & 1u ? false : true;\r
-      }\r
-      return false;\r
-   }\r
-   void increment()\r
-   {\r
-      // if we have a pending read then read now, so that we know whether\r
-      // to skip a position, or move to a low-surrogate:\r
-      if(m_current == 2)\r
-      {\r
-         // pending read:\r
-         extract_current();\r
-      }\r
-      // move to the next surrogate position:\r
-      ++m_current;\r
-      // if we've reached the end skip a position:\r
-      if(m_values[m_current] == 0)\r
-      {\r
-         m_current = 2;\r
-         ++m_position;\r
-      }\r
-   }\r
-   void decrement()\r
-   {\r
-      if(m_current != 1)\r
-      {\r
-         // decrementing an iterator always leads to a valid position:\r
-         --m_position;\r
-         extract_current();\r
-         m_current = m_values[1] ? 1 : 0;\r
-      }\r
-      else\r
-      {\r
-         m_current = 0;\r
-      }\r
-   }\r
-   BaseIterator base()const\r
-   {\r
-      return m_position;\r
-   }\r
-   // construct:\r
-   u32_to_u16_iterator() : m_position(), m_current(0)\r
-   {\r
-      m_values[0] = 0;\r
-      m_values[1] = 0;\r
-      m_values[2] = 0;\r
-   }\r
-   u32_to_u16_iterator(BaseIterator b) : m_position(b), m_current(2)\r
-   {\r
-      m_values[0] = 0;\r
-      m_values[1] = 0;\r
-      m_values[2] = 0;\r
-   }\r
-private:\r
-\r
-   void extract_current()const\r
-   {\r
-      // begin by checking for a code point out of range:\r
-      ::boost::uint32_t v = *m_position;\r
-      if(v >= 0x10000u)\r
-      {\r
-         if(v > 0x10FFFFu)\r
-            detail::invalid_utf32_code_point(*m_position);\r
-         // split into two surrogates:\r
-         m_values[0] = static_cast<U16Type>(v >> 10) + detail::high_surrogate_base;\r
-         m_values[1] = static_cast<U16Type>(v & detail::ten_bit_mask) + detail::low_surrogate_base;\r
-         m_current = 0;\r
-         BOOST_ASSERT(detail::is_high_surrogate(m_values[0]));\r
-         BOOST_ASSERT(detail::is_low_surrogate(m_values[1]));\r
-      }\r
-      else\r
-      {\r
-         // 16-bit code point:\r
-         m_values[0] = static_cast<U16Type>(*m_position);\r
-         m_values[1] = 0;\r
-         m_current = 0;\r
-         // value must not be a surrogate:\r
-         if(detail::is_surrogate(m_values[0]))\r
-            detail::invalid_utf32_code_point(*m_position);\r
-      }\r
-   }\r
-   BaseIterator m_position;\r
-   mutable U16Type m_values[3];\r
-   mutable unsigned m_current;\r
-};\r
-\r
-template <class BaseIterator, class U32Type = ::boost::uint32_t>\r
-class u16_to_u32_iterator\r
-   : public boost::iterator_facade<u16_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type>\r
-{\r
-   typedef boost::iterator_facade<u16_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type> base_type;\r
-   // special values for pending iterator reads:\r
-   BOOST_STATIC_CONSTANT(U32Type, pending_read = 0xffffffffu);\r
-\r
-#if !defined(BOOST_NO_STD_ITERATOR_TRAITS) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\r
-   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;\r
-\r
-   BOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 16);\r
-   BOOST_STATIC_ASSERT(sizeof(U32Type)*CHAR_BIT == 32);\r
-#endif\r
-\r
-public:\r
-   typename base_type::reference\r
-      dereference()const\r
-   {\r
-      if(m_value == pending_read)\r
-         extract_current();\r
-      return m_value;\r
-   }\r
-   bool equal(const u16_to_u32_iterator& that)const\r
-   {\r
-      return m_position == that.m_position;\r
-   }\r
-   void increment()\r
-   {\r
-      // skip high surrogate first if there is one:\r
-      if(detail::is_high_surrogate(*m_position)) ++m_position;\r
-      ++m_position;\r
-      m_value = pending_read;\r
-   }\r
-   void decrement()\r
-   {\r
-      --m_position;\r
-      // if we have a low surrogate then go back one more:\r
-      if(detail::is_low_surrogate(*m_position)) \r
-         --m_position;\r
-      m_value = pending_read;\r
-   }\r
-   BaseIterator base()const\r
-   {\r
-      return m_position;\r
-   }\r
-   // construct:\r
-   u16_to_u32_iterator() : m_position()\r
-   {\r
-      m_value = pending_read;\r
-   }\r
-   u16_to_u32_iterator(BaseIterator b) : m_position(b)\r
-   {\r
-      m_value = pending_read;\r
-   }\r
-private:\r
-   static void invalid_code_point(::boost::uint16_t val)\r
-   {\r
-#ifndef BOOST_NO_STD_LOCALE\r
-      std::stringstream ss;\r
-      ss << "Misplaced UTF-16 surrogate U+" << std::showbase << std::hex << val << " encountered while trying to encode UTF-32 sequence";\r
-      std::out_of_range e(ss.str());\r
-#else\r
-      std::out_of_range e("Misplaced UTF-16 surrogate encountered while trying to encode UTF-32 sequence");\r
-#endif\r
-      boost::throw_exception(e);\r
-   }\r
-   void extract_current()const\r
-   {\r
-      m_value = static_cast<U32Type>(static_cast< ::boost::uint16_t>(*m_position));\r
-      // if the last value is a high surrogate then adjust m_position and m_value as needed:\r
-      if(detail::is_high_surrogate(*m_position))\r
-      {\r
-         // precondition; next value must have be a low-surrogate:\r
-         BaseIterator next(m_position);\r
-         ::boost::uint16_t t = *++next;\r
-         if((t & 0xFC00u) != 0xDC00u)\r
-            invalid_code_point(t);\r
-         m_value = (m_value - detail::high_surrogate_base) << 10;\r
-         m_value |= (static_cast<U32Type>(static_cast< ::boost::uint16_t>(t)) & detail::ten_bit_mask);\r
-      }\r
-      // postcondition; result must not be a surrogate:\r
-      if(detail::is_surrogate(m_value))\r
-         invalid_code_point(static_cast< ::boost::uint16_t>(m_value));\r
-   }\r
-   BaseIterator m_position;\r
-   mutable U32Type m_value;\r
-};\r
-\r
-template <class BaseIterator, class U8Type = ::boost::uint8_t>\r
-class u32_to_u8_iterator\r
-   : public boost::iterator_facade<u32_to_u8_iterator<BaseIterator, U8Type>, U8Type, std::bidirectional_iterator_tag, const U8Type>\r
-{\r
-   typedef boost::iterator_facade<u32_to_u8_iterator<BaseIterator, U8Type>, U8Type, std::bidirectional_iterator_tag, const U8Type> base_type;\r
-   \r
-#if !defined(BOOST_NO_STD_ITERATOR_TRAITS) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\r
-   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;\r
-\r
-   BOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 32);\r
-   BOOST_STATIC_ASSERT(sizeof(U8Type)*CHAR_BIT == 8);\r
-#endif\r
-\r
-public:\r
-   typename base_type::reference\r
-      dereference()const\r
-   {\r
-      if(m_current == 4)\r
-         extract_current();\r
-      return m_values[m_current];\r
-   }\r
-   bool equal(const u32_to_u8_iterator& that)const\r
-   {\r
-      if(m_position == that.m_position)\r
-      {\r
-         // either the m_current's must be equal, or one must be 0 and \r
-         // the other 4: which means neither must have bits 1 or 2 set:\r
-         return (m_current == that.m_current)\r
-            || (((m_current | that.m_current) & 3) == 0);\r
-      }\r
-      return false;\r
-   }\r
-   void increment()\r
-   {\r
-      // if we have a pending read then read now, so that we know whether\r
-      // to skip a position, or move to a low-surrogate:\r
-      if(m_current == 4)\r
-      {\r
-         // pending read:\r
-         extract_current();\r
-      }\r
-      // move to the next surrogate position:\r
-      ++m_current;\r
-      // if we've reached the end skip a position:\r
-      if(m_values[m_current] == 0)\r
-      {\r
-         m_current = 4;\r
-         ++m_position;\r
-      }\r
-   }\r
-   void decrement()\r
-   {\r
-      if((m_current & 3) == 0)\r
-      {\r
-         --m_position;\r
-         extract_current();\r
-         m_current = 3;\r
-         while(m_current && (m_values[m_current] == 0))\r
-            --m_current;\r
-      }\r
-      else\r
-         --m_current;\r
-   }\r
-   BaseIterator base()const\r
-   {\r
-      return m_position;\r
-   }\r
-   // construct:\r
-   u32_to_u8_iterator() : m_position(), m_current(0)\r
-   {\r
-      m_values[0] = 0;\r
-      m_values[1] = 0;\r
-      m_values[2] = 0;\r
-      m_values[3] = 0;\r
-      m_values[4] = 0;\r
-   }\r
-   u32_to_u8_iterator(BaseIterator b) : m_position(b), m_current(4)\r
-   {\r
-      m_values[0] = 0;\r
-      m_values[1] = 0;\r
-      m_values[2] = 0;\r
-      m_values[3] = 0;\r
-      m_values[4] = 0;\r
-   }\r
-private:\r
-\r
-   void extract_current()const\r
-   {\r
-      boost::uint32_t c = *m_position;\r
-      if(c > 0x10FFFFu)\r
-         detail::invalid_utf32_code_point(c);\r
-      if(c < 0x80u)\r
-      {\r
-         m_values[0] = static_cast<unsigned char>(c);\r
-         m_values[1] = static_cast<unsigned char>(0u);\r
-         m_values[2] = static_cast<unsigned char>(0u);\r
-         m_values[3] = static_cast<unsigned char>(0u);\r
-      }\r
-      else if(c < 0x800u)\r
-      {\r
-         m_values[0] = static_cast<unsigned char>(0xC0u + (c >> 6));\r
-         m_values[1] = static_cast<unsigned char>(0x80u + (c & 0x3Fu));\r
-         m_values[2] = static_cast<unsigned char>(0u);\r
-         m_values[3] = static_cast<unsigned char>(0u);\r
-      }\r
-      else if(c < 0x10000u)\r
-      {\r
-         m_values[0] = static_cast<unsigned char>(0xE0u + (c >> 12));\r
-         m_values[1] = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));\r
-         m_values[2] = static_cast<unsigned char>(0x80u + (c & 0x3Fu));\r
-         m_values[3] = static_cast<unsigned char>(0u);\r
-      }\r
-      else\r
-      {\r
-         m_values[0] = static_cast<unsigned char>(0xF0u + (c >> 18));\r
-         m_values[1] = static_cast<unsigned char>(0x80u + ((c >> 12) & 0x3Fu));\r
-         m_values[2] = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));\r
-         m_values[3] = static_cast<unsigned char>(0x80u + (c & 0x3Fu));\r
-      }\r
-      m_current= 0;\r
-   }\r
-   BaseIterator m_position;\r
-   mutable U8Type m_values[5];\r
-   mutable unsigned m_current;\r
-};\r
-\r
-template <class BaseIterator, class U32Type = ::boost::uint32_t>\r
-class u8_to_u32_iterator\r
-   : public boost::iterator_facade<u8_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type>\r
-{\r
-   typedef boost::iterator_facade<u8_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type> base_type;\r
-   // special values for pending iterator reads:\r
-   BOOST_STATIC_CONSTANT(U32Type, pending_read = 0xffffffffu);\r
-\r
-#if !defined(BOOST_NO_STD_ITERATOR_TRAITS) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\r
-   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;\r
-\r
-   BOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 8);\r
-   BOOST_STATIC_ASSERT(sizeof(U32Type)*CHAR_BIT == 32);\r
-#endif\r
-\r
-public:\r
-   typename base_type::reference\r
-      dereference()const\r
-   {\r
-      if(m_value == pending_read)\r
-         extract_current();\r
-      return m_value;\r
-   }\r
-   bool equal(const u8_to_u32_iterator& that)const\r
-   {\r
-      return m_position == that.m_position;\r
-   }\r
-   void increment()\r
-   {\r
-      // skip high surrogate first if there is one:\r
-      unsigned c = detail::utf8_byte_count(*m_position);\r
-      std::advance(m_position, c);\r
-      m_value = pending_read;\r
-   }\r
-   void decrement()\r
-   {\r
-      // Keep backtracking until we don't have a trailing character:\r
-      unsigned count = 0;\r
-      while((*--m_position & 0xC0u) == 0x80u) ++count;\r
-      // now check that the sequence was valid:\r
-      if(count != detail::utf8_trailing_byte_count(*m_position))\r
-         invalid_sequnce();\r
-      m_value = pending_read;\r
-   }\r
-   BaseIterator base()const\r
-   {\r
-      return m_position;\r
-   }\r
-   // construct:\r
-   u8_to_u32_iterator() : m_position()\r
-   {\r
-      m_value = pending_read;\r
-   }\r
-   u8_to_u32_iterator(BaseIterator b) : m_position(b)\r
-   {\r
-      m_value = pending_read;\r
-   }\r
-private:\r
-   static void invalid_sequnce()\r
-   {\r
-      std::out_of_range e("Invalid UTF-8 sequence encountered while trying to encode UTF-32 character");\r
-      boost::throw_exception(e);\r
-   }\r
-   void extract_current()const\r
-   {\r
-      m_value = static_cast<U32Type>(static_cast< ::boost::uint8_t>(*m_position));\r
-      // we must not have a continuation character:\r
-      if((m_value & 0xC0u) == 0x80u)\r
-         invalid_sequnce();\r
-      // see how many extra byts we have:\r
-      unsigned extra = detail::utf8_trailing_byte_count(*m_position);\r
-      // extract the extra bits, 6 from each extra byte:\r
-      BaseIterator next(m_position);\r
-      for(unsigned c = 0; c < extra; ++c)\r
-      {\r
-         ++next;\r
-         m_value <<= 6;\r
-         m_value += static_cast<boost::uint8_t>(*next) & 0x3Fu;\r
-      }\r
-      // we now need to remove a few of the leftmost bits, but how many depends\r
-      // upon how many extra bytes we've extracted:\r
-      static const boost::uint32_t masks[4] = \r
-      {\r
-         0x7Fu,\r
-         0x7FFu,\r
-         0xFFFFu,\r
-         0x1FFFFFu,\r
-      };\r
-      m_value &= masks[extra];\r
-      // check the result:\r
-      if(m_value > static_cast<U32Type>(0x10FFFFu))\r
-         invalid_sequnce();\r
-   }\r
-   BaseIterator m_position;\r
-   mutable U32Type m_value;\r
-};\r
-\r
-template <class BaseIterator>\r
-class utf16_output_iterator\r
-{\r
-public:\r
-   typedef void                                   difference_type;\r
-   typedef void                                   value_type;\r
-   typedef boost::uint32_t*                       pointer;\r
-   typedef boost::uint32_t&                       reference;\r
-   typedef std::output_iterator_tag               iterator_category;\r
-\r
-   utf16_output_iterator(const BaseIterator& b)\r
-      : m_position(b){}\r
-   utf16_output_iterator(const utf16_output_iterator& that)\r
-      : m_position(that.m_position){}\r
-   utf16_output_iterator& operator=(const utf16_output_iterator& that)\r
-   {\r
-      m_position = that.m_position;\r
-      return *this;\r
-   }\r
-   const utf16_output_iterator& operator*()const\r
-   {\r
-      return *this;\r
-   }\r
-   void operator=(boost::uint32_t val)const\r
-   {\r
-      push(val);\r
-   }\r
-   utf16_output_iterator& operator++()\r
-   {\r
-      return *this;\r
-   }\r
-   utf16_output_iterator& operator++(int)\r
-   {\r
-      return *this;\r
-   }\r
-   BaseIterator base()const\r
-   {\r
-      return m_position;\r
-   }\r
-private:\r
-   void push(boost::uint32_t v)const\r
-   {\r
-      if(v >= 0x10000u)\r
-      {\r
-         // begin by checking for a code point out of range:\r
-         if(v > 0x10FFFFu)\r
-            detail::invalid_utf32_code_point(v);\r
-         // split into two surrogates:\r
-         *m_position++ = static_cast<boost::uint16_t>(v >> 10) + detail::high_surrogate_base;\r
-         *m_position++ = static_cast<boost::uint16_t>(v & detail::ten_bit_mask) + detail::low_surrogate_base;\r
-      }\r
-      else\r
-      {\r
-         // 16-bit code point:\r
-         // value must not be a surrogate:\r
-         if(detail::is_surrogate(v))\r
-            detail::invalid_utf32_code_point(v);\r
-         *m_position++ = static_cast<boost::uint16_t>(v);\r
-      }\r
-   }\r
-   mutable BaseIterator m_position;\r
-};\r
-\r
-template <class BaseIterator>\r
-class utf8_output_iterator\r
-{\r
-public:\r
-   typedef void                                   difference_type;\r
-   typedef void                                   value_type;\r
-   typedef boost::uint32_t*                       pointer;\r
-   typedef boost::uint32_t&                       reference;\r
-   typedef std::output_iterator_tag               iterator_category;\r
-\r
-   utf8_output_iterator(const BaseIterator& b)\r
-      : m_position(b){}\r
-   utf8_output_iterator(const utf8_output_iterator& that)\r
-      : m_position(that.m_position){}\r
-   utf8_output_iterator& operator=(const utf8_output_iterator& that)\r
-   {\r
-      m_position = that.m_position;\r
-      return *this;\r
-   }\r
-   const utf8_output_iterator& operator*()const\r
-   {\r
-      return *this;\r
-   }\r
-   void operator=(boost::uint32_t val)const\r
-   {\r
-      push(val);\r
-   }\r
-   utf8_output_iterator& operator++()\r
-   {\r
-      return *this;\r
-   }\r
-   utf8_output_iterator& operator++(int)\r
-   {\r
-      return *this;\r
-   }\r
-   BaseIterator base()const\r
-   {\r
-      return m_position;\r
-   }\r
-private:\r
-   void push(boost::uint32_t c)const\r
-   {\r
-      if(c > 0x10FFFFu)\r
-         detail::invalid_utf32_code_point(c);\r
-      if(c < 0x80u)\r
-      {\r
-         *m_position++ = static_cast<unsigned char>(c);\r
-      }\r
-      else if(c < 0x800u)\r
-      {\r
-         *m_position++ = static_cast<unsigned char>(0xC0u + (c >> 6));\r
-         *m_position++ = static_cast<unsigned char>(0x80u + (c & 0x3Fu));\r
-      }\r
-      else if(c < 0x10000u)\r
-      {\r
-         *m_position++ = static_cast<unsigned char>(0xE0u + (c >> 12));\r
-         *m_position++ = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));\r
-         *m_position++ = static_cast<unsigned char>(0x80u + (c & 0x3Fu));\r
-      }\r
-      else\r
-      {\r
-         *m_position++ = static_cast<unsigned char>(0xF0u + (c >> 18));\r
-         *m_position++ = static_cast<unsigned char>(0x80u + ((c >> 12) & 0x3Fu));\r
-         *m_position++ = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));\r
-         *m_position++ = static_cast<unsigned char>(0x80u + (c & 0x3Fu));\r
-      }\r
-   }\r
-   mutable BaseIterator m_position;\r
-};\r
-\r
-} // namespace boost\r
-\r
-#endif // BOOST_REGEX_UNICODE_ITERATOR_HPP\r
-\r
+/*
+ *
+ * Copyright (c) 2004
+ * John Maddock
+ *
+ * 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)
+ *
+ */
+ /*
+  *   LOCATION:    see http://www.boost.org for most recent version.
+  *   FILE         unicode_iterator.hpp
+  *   VERSION      see <boost/version.hpp>
+  *   DESCRIPTION: Iterator adapters for converting between different Unicode encodings.
+  */
+
+/****************************************************************************
+
+Contents:
+~~~~~~~~~
+
+1) Read Only, Input Adapters:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+template <class BaseIterator, class U8Type = ::boost::uint8_t>
+class u32_to_u8_iterator;
+
+Adapts sequence of UTF-32 code points to "look like" a sequence of UTF-8.
+
+template <class BaseIterator, class U32Type = ::boost::uint32_t>
+class u8_to_u32_iterator;
+
+Adapts sequence of UTF-8 code points to "look like" a sequence of UTF-32.
+
+template <class BaseIterator, class U16Type = ::boost::uint16_t>
+class u32_to_u16_iterator;
+
+Adapts sequence of UTF-32 code points to "look like" a sequence of UTF-16.
+
+template <class BaseIterator, class U32Type = ::boost::uint32_t>
+class u16_to_u32_iterator;
+
+Adapts sequence of UTF-16 code points to "look like" a sequence of UTF-32.
+
+2) Single pass output iterator adapters:
+
+template <class BaseIterator>
+class utf8_output_iterator;
+
+Accepts UTF-32 code points and forwards them on as UTF-8 code points.
+
+template <class BaseIterator>
+class utf16_output_iterator;
+
+Accepts UTF-32 code points and forwards them on as UTF-16 code points.
+
+****************************************************************************/
+
+#ifndef BOOST_REGEX_UNICODE_ITERATOR_HPP
+#define BOOST_REGEX_UNICODE_ITERATOR_HPP
+#include <boost/cstdint.hpp>
+#include <boost/assert.hpp>
+#include <boost/iterator/iterator_facade.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/throw_exception.hpp>
+#include <stdexcept>
+#ifndef BOOST_NO_STD_LOCALE
+#include <sstream>
+#include <ios>
+#endif
+#include <limits.h> // CHAR_BIT
+
+namespace boost{
+
+namespace detail{
+
+static const ::boost::uint16_t high_surrogate_base = 0xD7C0u;
+static const ::boost::uint16_t low_surrogate_base = 0xDC00u;
+static const ::boost::uint32_t ten_bit_mask = 0x3FFu;
+
+inline bool is_high_surrogate(::boost::uint16_t v)
+{
+   return (v & 0xFC00u) == 0xd800u;
+}
+inline bool is_low_surrogate(::boost::uint16_t v)
+{
+   return (v & 0xFC00u) == 0xdc00u;
+}
+template <class T>
+inline bool is_surrogate(T v)
+{
+   return (v & 0xF800u) == 0xd800;
+}
+
+inline unsigned utf8_byte_count(boost::uint8_t c)
+{
+   // if the most significant bit with a zero in it is in position
+   // 8-N then there are N bytes in this UTF-8 sequence:
+   boost::uint8_t mask = 0x80u;
+   unsigned result = 0;
+   while(c & mask)
+   {
+      ++result;
+      mask >>= 1;
+   }
+   return (result == 0) ? 1 : ((result > 4) ? 4 : result);
+}
+
+inline unsigned utf8_trailing_byte_count(boost::uint8_t c)
+{
+   return utf8_byte_count(c) - 1;
+}
+
+inline void invalid_utf32_code_point(::boost::uint32_t val)
+{
+#ifndef BOOST_NO_STD_LOCALE
+   std::stringstream ss;
+   ss << "Invalid UTF-32 code point U+" << std::showbase << std::hex << val << " encountered while trying to encode UTF-16 sequence";
+   std::out_of_range e(ss.str());
+#else
+   std::out_of_range e("Invalid UTF-32 code point encountered while trying to encode UTF-16 sequence");
+#endif
+   boost::throw_exception(e);
+}
+
+
+} // namespace detail
+
+template <class BaseIterator, class U16Type = ::boost::uint16_t>
+class u32_to_u16_iterator
+   : public boost::iterator_facade<u32_to_u16_iterator<BaseIterator, U16Type>, U16Type, std::bidirectional_iterator_tag, const U16Type>
+{
+   typedef boost::iterator_facade<u32_to_u16_iterator<BaseIterator, U16Type>, U16Type, std::bidirectional_iterator_tag, const U16Type> base_type;
+
+#if !defined(BOOST_NO_STD_ITERATOR_TRAITS) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;
+
+   BOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 32);
+   BOOST_STATIC_ASSERT(sizeof(U16Type)*CHAR_BIT == 16);
+#endif
+
+public:
+   typename base_type::reference
+      dereference()const
+   {
+      if(m_current == 2)
+         extract_current();
+      return m_values[m_current];
+   }
+   bool equal(const u32_to_u16_iterator& that)const
+   {
+      if(m_position == that.m_position)
+      {
+         // Both m_currents must be equal, or both even
+         // this is the same as saying their sum must be even:
+         return (m_current + that.m_current) & 1u ? false : true;
+      }
+      return false;
+   }
+   void increment()
+   {
+      // if we have a pending read then read now, so that we know whether
+      // to skip a position, or move to a low-surrogate:
+      if(m_current == 2)
+      {
+         // pending read:
+         extract_current();
+      }
+      // move to the next surrogate position:
+      ++m_current;
+      // if we've reached the end skip a position:
+      if(m_values[m_current] == 0)
+      {
+         m_current = 2;
+         ++m_position;
+      }
+   }
+   void decrement()
+   {
+      if(m_current != 1)
+      {
+         // decrementing an iterator always leads to a valid position:
+         --m_position;
+         extract_current();
+         m_current = m_values[1] ? 1 : 0;
+      }
+      else
+      {
+         m_current = 0;
+      }
+   }
+   BaseIterator base()const
+   {
+      return m_position;
+   }
+   // construct:
+   u32_to_u16_iterator() : m_position(), m_current(0)
+   {
+      m_values[0] = 0;
+      m_values[1] = 0;
+      m_values[2] = 0;
+   }
+   u32_to_u16_iterator(BaseIterator b) : m_position(b), m_current(2)
+   {
+      m_values[0] = 0;
+      m_values[1] = 0;
+      m_values[2] = 0;
+   }
+private:
+
+   void extract_current()const
+   {
+      // begin by checking for a code point out of range:
+      ::boost::uint32_t v = *m_position;
+      if(v >= 0x10000u)
+      {
+         if(v > 0x10FFFFu)
+            detail::invalid_utf32_code_point(*m_position);
+         // split into two surrogates:
+         m_values[0] = static_cast<U16Type>(v >> 10) + detail::high_surrogate_base;
+         m_values[1] = static_cast<U16Type>(v & detail::ten_bit_mask) + detail::low_surrogate_base;
+         m_current = 0;
+         BOOST_ASSERT(detail::is_high_surrogate(m_values[0]));
+         BOOST_ASSERT(detail::is_low_surrogate(m_values[1]));
+      }
+      else
+      {
+         // 16-bit code point:
+         m_values[0] = static_cast<U16Type>(*m_position);
+         m_values[1] = 0;
+         m_current = 0;
+         // value must not be a surrogate:
+         if(detail::is_surrogate(m_values[0]))
+            detail::invalid_utf32_code_point(*m_position);
+      }
+   }
+   BaseIterator m_position;
+   mutable U16Type m_values[3];
+   mutable unsigned m_current;
+};
+
+template <class BaseIterator, class U32Type = ::boost::uint32_t>
+class u16_to_u32_iterator
+   : public boost::iterator_facade<u16_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type>
+{
+   typedef boost::iterator_facade<u16_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type> base_type;
+   // special values for pending iterator reads:
+   BOOST_STATIC_CONSTANT(U32Type, pending_read = 0xffffffffu);
+
+#if !defined(BOOST_NO_STD_ITERATOR_TRAITS) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;
+
+   BOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 16);
+   BOOST_STATIC_ASSERT(sizeof(U32Type)*CHAR_BIT == 32);
+#endif
+
+public:
+   typename base_type::reference
+      dereference()const
+   {
+      if(m_value == pending_read)
+         extract_current();
+      return m_value;
+   }
+   bool equal(const u16_to_u32_iterator& that)const
+   {
+      return m_position == that.m_position;
+   }
+   void increment()
+   {
+      // skip high surrogate first if there is one:
+      if(detail::is_high_surrogate(*m_position)) ++m_position;
+      ++m_position;
+      m_value = pending_read;
+   }
+   void decrement()
+   {
+      --m_position;
+      // if we have a low surrogate then go back one more:
+      if(detail::is_low_surrogate(*m_position)) 
+         --m_position;
+      m_value = pending_read;
+   }
+   BaseIterator base()const
+   {
+      return m_position;
+   }
+   // construct:
+   u16_to_u32_iterator() : m_position()
+   {
+      m_value = pending_read;
+   }
+   u16_to_u32_iterator(BaseIterator b) : m_position(b)
+   {
+      m_value = pending_read;
+   }
+private:
+   static void invalid_code_point(::boost::uint16_t val)
+   {
+#ifndef BOOST_NO_STD_LOCALE
+      std::stringstream ss;
+      ss << "Misplaced UTF-16 surrogate U+" << std::showbase << std::hex << val << " encountered while trying to encode UTF-32 sequence";
+      std::out_of_range e(ss.str());
+#else
+      std::out_of_range e("Misplaced UTF-16 surrogate encountered while trying to encode UTF-32 sequence");
+#endif
+      boost::throw_exception(e);
+   }
+   void extract_current()const
+   {
+      m_value = static_cast<U32Type>(static_cast< ::boost::uint16_t>(*m_position));
+      // if the last value is a high surrogate then adjust m_position and m_value as needed:
+      if(detail::is_high_surrogate(*m_position))
+      {
+         // precondition; next value must have be a low-surrogate:
+         BaseIterator next(m_position);
+         ::boost::uint16_t t = *++next;
+         if((t & 0xFC00u) != 0xDC00u)
+            invalid_code_point(t);
+         m_value = (m_value - detail::high_surrogate_base) << 10;
+         m_value |= (static_cast<U32Type>(static_cast< ::boost::uint16_t>(t)) & detail::ten_bit_mask);
+      }
+      // postcondition; result must not be a surrogate:
+      if(detail::is_surrogate(m_value))
+         invalid_code_point(static_cast< ::boost::uint16_t>(m_value));
+   }
+   BaseIterator m_position;
+   mutable U32Type m_value;
+};
+
+template <class BaseIterator, class U8Type = ::boost::uint8_t>
+class u32_to_u8_iterator
+   : public boost::iterator_facade<u32_to_u8_iterator<BaseIterator, U8Type>, U8Type, std::bidirectional_iterator_tag, const U8Type>
+{
+   typedef boost::iterator_facade<u32_to_u8_iterator<BaseIterator, U8Type>, U8Type, std::bidirectional_iterator_tag, const U8Type> base_type;
+   
+#if !defined(BOOST_NO_STD_ITERATOR_TRAITS) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;
+
+   BOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 32);
+   BOOST_STATIC_ASSERT(sizeof(U8Type)*CHAR_BIT == 8);
+#endif
+
+public:
+   typename base_type::reference
+      dereference()const
+   {
+      if(m_current == 4)
+         extract_current();
+      return m_values[m_current];
+   }
+   bool equal(const u32_to_u8_iterator& that)const
+   {
+      if(m_position == that.m_position)
+      {
+         // either the m_current's must be equal, or one must be 0 and 
+         // the other 4: which means neither must have bits 1 or 2 set:
+         return (m_current == that.m_current)
+            || (((m_current | that.m_current) & 3) == 0);
+      }
+      return false;
+   }
+   void increment()
+   {
+      // if we have a pending read then read now, so that we know whether
+      // to skip a position, or move to a low-surrogate:
+      if(m_current == 4)
+      {
+         // pending read:
+         extract_current();
+      }
+      // move to the next surrogate position:
+      ++m_current;
+      // if we've reached the end skip a position:
+      if(m_values[m_current] == 0)
+      {
+         m_current = 4;
+         ++m_position;
+      }
+   }
+   void decrement()
+   {
+      if((m_current & 3) == 0)
+      {
+         --m_position;
+         extract_current();
+         m_current = 3;
+         while(m_current && (m_values[m_current] == 0))
+            --m_current;
+      }
+      else
+         --m_current;
+   }
+   BaseIterator base()const
+   {
+      return m_position;
+   }
+   // construct:
+   u32_to_u8_iterator() : m_position(), m_current(0)
+   {
+      m_values[0] = 0;
+      m_values[1] = 0;
+      m_values[2] = 0;
+      m_values[3] = 0;
+      m_values[4] = 0;
+   }
+   u32_to_u8_iterator(BaseIterator b) : m_position(b), m_current(4)
+   {
+      m_values[0] = 0;
+      m_values[1] = 0;
+      m_values[2] = 0;
+      m_values[3] = 0;
+      m_values[4] = 0;
+   }
+private:
+
+   void extract_current()const
+   {
+      boost::uint32_t c = *m_position;
+      if(c > 0x10FFFFu)
+         detail::invalid_utf32_code_point(c);
+      if(c < 0x80u)
+      {
+         m_values[0] = static_cast<unsigned char>(c);
+         m_values[1] = static_cast<unsigned char>(0u);
+         m_values[2] = static_cast<unsigned char>(0u);
+         m_values[3] = static_cast<unsigned char>(0u);
+      }
+      else if(c < 0x800u)
+      {
+         m_values[0] = static_cast<unsigned char>(0xC0u + (c >> 6));
+         m_values[1] = static_cast<unsigned char>(0x80u + (c & 0x3Fu));
+         m_values[2] = static_cast<unsigned char>(0u);
+         m_values[3] = static_cast<unsigned char>(0u);
+      }
+      else if(c < 0x10000u)
+      {
+         m_values[0] = static_cast<unsigned char>(0xE0u + (c >> 12));
+         m_values[1] = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));
+         m_values[2] = static_cast<unsigned char>(0x80u + (c & 0x3Fu));
+         m_values[3] = static_cast<unsigned char>(0u);
+      }
+      else
+      {
+         m_values[0] = static_cast<unsigned char>(0xF0u + (c >> 18));
+         m_values[1] = static_cast<unsigned char>(0x80u + ((c >> 12) & 0x3Fu));
+         m_values[2] = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));
+         m_values[3] = static_cast<unsigned char>(0x80u + (c & 0x3Fu));
+      }
+      m_current= 0;
+   }
+   BaseIterator m_position;
+   mutable U8Type m_values[5];
+   mutable unsigned m_current;
+};
+
+template <class BaseIterator, class U32Type = ::boost::uint32_t>
+class u8_to_u32_iterator
+   : public boost::iterator_facade<u8_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type>
+{
+   typedef boost::iterator_facade<u8_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type> base_type;
+   // special values for pending iterator reads:
+   BOOST_STATIC_CONSTANT(U32Type, pending_read = 0xffffffffu);
+
+#if !defined(BOOST_NO_STD_ITERATOR_TRAITS) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;
+
+   BOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 8);
+   BOOST_STATIC_ASSERT(sizeof(U32Type)*CHAR_BIT == 32);
+#endif
+
+public:
+   typename base_type::reference
+      dereference()const
+   {
+      if(m_value == pending_read)
+         extract_current();
+      return m_value;
+   }
+   bool equal(const u8_to_u32_iterator& that)const
+   {
+      return m_position == that.m_position;
+   }
+   void increment()
+   {
+      // skip high surrogate first if there is one:
+      unsigned c = detail::utf8_byte_count(*m_position);
+      std::advance(m_position, c);
+      m_value = pending_read;
+   }
+   void decrement()
+   {
+      // Keep backtracking until we don't have a trailing character:
+      unsigned count = 0;
+      while((*--m_position & 0xC0u) == 0x80u) ++count;
+      // now check that the sequence was valid:
+      if(count != detail::utf8_trailing_byte_count(*m_position))
+         invalid_sequnce();
+      m_value = pending_read;
+   }
+   BaseIterator base()const
+   {
+      return m_position;
+   }
+   // construct:
+   u8_to_u32_iterator() : m_position()
+   {
+      m_value = pending_read;
+   }
+   u8_to_u32_iterator(BaseIterator b) : m_position(b)
+   {
+      m_value = pending_read;
+   }
+private:
+   static void invalid_sequnce()
+   {
+      std::out_of_range e("Invalid UTF-8 sequence encountered while trying to encode UTF-32 character");
+      boost::throw_exception(e);
+   }
+   void extract_current()const
+   {
+      m_value = static_cast<U32Type>(static_cast< ::boost::uint8_t>(*m_position));
+      // we must not have a continuation character:
+      if((m_value & 0xC0u) == 0x80u)
+         invalid_sequnce();
+      // see how many extra byts we have:
+      unsigned extra = detail::utf8_trailing_byte_count(*m_position);
+      // extract the extra bits, 6 from each extra byte:
+      BaseIterator next(m_position);
+      for(unsigned c = 0; c < extra; ++c)
+      {
+         ++next;
+         m_value <<= 6;
+         m_value += static_cast<boost::uint8_t>(*next) & 0x3Fu;
+      }
+      // we now need to remove a few of the leftmost bits, but how many depends
+      // upon how many extra bytes we've extracted:
+      static const boost::uint32_t masks[4] = 
+      {
+         0x7Fu,
+         0x7FFu,
+         0xFFFFu,
+         0x1FFFFFu,
+      };
+      m_value &= masks[extra];
+      // check the result:
+      if(m_value > static_cast<U32Type>(0x10FFFFu))
+         invalid_sequnce();
+   }
+   BaseIterator m_position;
+   mutable U32Type m_value;
+};
+
+template <class BaseIterator>
+class utf16_output_iterator
+{
+public:
+   typedef void                                   difference_type;
+   typedef void                                   value_type;
+   typedef boost::uint32_t*                       pointer;
+   typedef boost::uint32_t&                       reference;
+   typedef std::output_iterator_tag               iterator_category;
+
+   utf16_output_iterator(const BaseIterator& b)
+      : m_position(b){}
+   utf16_output_iterator(const utf16_output_iterator& that)
+      : m_position(that.m_position){}
+   utf16_output_iterator& operator=(const utf16_output_iterator& that)
+   {
+      m_position = that.m_position;
+      return *this;
+   }
+   const utf16_output_iterator& operator*()const
+   {
+      return *this;
+   }
+   void operator=(boost::uint32_t val)const
+   {
+      push(val);
+   }
+   utf16_output_iterator& operator++()
+   {
+      return *this;
+   }
+   utf16_output_iterator& operator++(int)
+   {
+      return *this;
+   }
+   BaseIterator base()const
+   {
+      return m_position;
+   }
+private:
+   void push(boost::uint32_t v)const
+   {
+      if(v >= 0x10000u)
+      {
+         // begin by checking for a code point out of range:
+         if(v > 0x10FFFFu)
+            detail::invalid_utf32_code_point(v);
+         // split into two surrogates:
+         *m_position++ = static_cast<boost::uint16_t>(v >> 10) + detail::high_surrogate_base;
+         *m_position++ = static_cast<boost::uint16_t>(v & detail::ten_bit_mask) + detail::low_surrogate_base;
+      }
+      else
+      {
+         // 16-bit code point:
+         // value must not be a surrogate:
+         if(detail::is_surrogate(v))
+            detail::invalid_utf32_code_point(v);
+         *m_position++ = static_cast<boost::uint16_t>(v);
+      }
+   }
+   mutable BaseIterator m_position;
+};
+
+template <class BaseIterator>
+class utf8_output_iterator
+{
+public:
+   typedef void                                   difference_type;
+   typedef void                                   value_type;
+   typedef boost::uint32_t*                       pointer;
+   typedef boost::uint32_t&                       reference;
+   typedef std::output_iterator_tag               iterator_category;
+
+   utf8_output_iterator(const BaseIterator& b)
+      : m_position(b){}
+   utf8_output_iterator(const utf8_output_iterator& that)
+      : m_position(that.m_position){}
+   utf8_output_iterator& operator=(const utf8_output_iterator& that)
+   {
+      m_position = that.m_position;
+      return *this;
+   }
+   const utf8_output_iterator& operator*()const
+   {
+      return *this;
+   }
+   void operator=(boost::uint32_t val)const
+   {
+      push(val);
+   }
+   utf8_output_iterator& operator++()
+   {
+      return *this;
+   }
+   utf8_output_iterator& operator++(int)
+   {
+      return *this;
+   }
+   BaseIterator base()const
+   {
+      return m_position;
+   }
+private:
+   void push(boost::uint32_t c)const
+   {
+      if(c > 0x10FFFFu)
+         detail::invalid_utf32_code_point(c);
+      if(c < 0x80u)
+      {
+         *m_position++ = static_cast<unsigned char>(c);
+      }
+      else if(c < 0x800u)
+      {
+         *m_position++ = static_cast<unsigned char>(0xC0u + (c >> 6));
+         *m_position++ = static_cast<unsigned char>(0x80u + (c & 0x3Fu));
+      }
+      else if(c < 0x10000u)
+      {
+         *m_position++ = static_cast<unsigned char>(0xE0u + (c >> 12));
+         *m_position++ = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));
+         *m_position++ = static_cast<unsigned char>(0x80u + (c & 0x3Fu));
+      }
+      else
+      {
+         *m_position++ = static_cast<unsigned char>(0xF0u + (c >> 18));
+         *m_position++ = static_cast<unsigned char>(0x80u + ((c >> 12) & 0x3Fu));
+         *m_position++ = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));
+         *m_position++ = static_cast<unsigned char>(0x80u + (c & 0x3Fu));
+      }
+   }
+   mutable BaseIterator m_position;
+};
+
+} // namespace boost
+
+#endif // BOOST_REGEX_UNICODE_ITERATOR_HPP
+
index 0eafe81ff57fa3d6a5eff3952dec02bb6e093990..7e893e6951b398a77bc7bb4404d4f85451ad76f0 100644 (file)
-/*\r
- *\r
- * Copyright (c) 2003\r
- * John Maddock\r
- *\r
- * Use, modification and distribution are subject to the \r
- * Boost Software License, Version 1.0. (See accompanying file \r
- * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
- *\r
- */\r
-\r
- /*\r
-  *   LOCATION:    see http://www.boost.org for most recent version.\r
-  *   FILE         u32regex_iterator.hpp\r
-  *   VERSION      see <boost/version.hpp>\r
-  *   DESCRIPTION: Provides u32regex_iterator implementation.\r
-  */\r
-\r
-#ifndef BOOST_REGEX_V4_U32REGEX_ITERATOR_HPP\r
-#define BOOST_REGEX_V4_U32REGEX_ITERATOR_HPP\r
-\r
-namespace boost{\r
-\r
-#ifdef BOOST_HAS_ABI_HEADERS\r
-#  include BOOST_ABI_PREFIX\r
-#endif\r
-\r
-template <class BidirectionalIterator>\r
-class u32regex_iterator_implementation \r
-{\r
-   typedef u32regex regex_type;\r
-\r
-   match_results<BidirectionalIterator> what;  // current match\r
-   BidirectionalIterator                base;  // start of sequence\r
-   BidirectionalIterator                end;   // end of sequence\r
-   const regex_type                     re;   // the expression\r
-   match_flag_type                      flags; // flags for matching\r
-\r
-public:\r
-   u32regex_iterator_implementation(const regex_type* p, BidirectionalIterator last, match_flag_type f)\r
-      : base(), end(last), re(*p), flags(f){}\r
-   bool init(BidirectionalIterator first)\r
-   {\r
-      base = first;\r
-      return u32regex_search(first, end, what, re, flags, base);\r
-   }\r
-   bool compare(const u32regex_iterator_implementation& that)\r
-   {\r
-      if(this == &that) return true;\r
-      return (&re.get_data() == &that.re.get_data()) && (end == that.end) && (flags == that.flags) && (what[0].first == that.what[0].first) && (what[0].second == that.what[0].second);\r
-   }\r
-   const match_results<BidirectionalIterator>& get()\r
-   { return what; }\r
-   bool next()\r
-   {\r
-      //if(what.prefix().first != what[0].second)\r
-      //   flags |= match_prev_avail;\r
-      BidirectionalIterator next_start = what[0].second;\r
-      match_flag_type f(flags);\r
-      if(!what.length())\r
-         f |= regex_constants::match_not_initial_null;\r
-      //if(base != next_start)\r
-      //   f |= regex_constants::match_not_bob;\r
-      bool result = u32regex_search(next_start, end, what, re, f, base);\r
-      if(result)\r
-         what.set_base(base);\r
-      return result;\r
-   }\r
-private:\r
-   u32regex_iterator_implementation& operator=(const u32regex_iterator_implementation&);\r
-};\r
-\r
-template <class BidirectionalIterator>\r
-class u32regex_iterator \r
-#ifndef BOOST_NO_STD_ITERATOR\r
-   : public std::iterator<\r
-         std::forward_iterator_tag, \r
-         match_results<BidirectionalIterator>,\r
-         typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type,\r
-         const match_results<BidirectionalIterator>*,\r
-         const match_results<BidirectionalIterator>& >         \r
-#endif\r
-{\r
-private:\r
-   typedef u32regex_iterator_implementation<BidirectionalIterator> impl;\r
-   typedef shared_ptr<impl> pimpl;\r
-public:\r
-   typedef          u32regex                                                regex_type;\r
-   typedef          match_results<BidirectionalIterator>                    value_type;\r
-   typedef typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type \r
-                                                                            difference_type;\r
-   typedef          const value_type*                                       pointer;\r
-   typedef          const value_type&                                       reference; \r
-   typedef          std::forward_iterator_tag                               iterator_category;\r
-   \r
-   u32regex_iterator(){}\r
-   u32regex_iterator(BidirectionalIterator a, BidirectionalIterator b, \r
-                  const regex_type& re, \r
-                  match_flag_type m = match_default)\r
-                  : pdata(new impl(&re, b, m))\r
-   {\r
-      if(!pdata->init(a))\r
-      {\r
-         pdata.reset();\r
-      }\r
-   }\r
-   u32regex_iterator(const u32regex_iterator& that)\r
-      : pdata(that.pdata) {}\r
-   u32regex_iterator& operator=(const u32regex_iterator& that)\r
-   {\r
-      pdata = that.pdata;\r
-      return *this;\r
-   }\r
-   bool operator==(const u32regex_iterator& that)const\r
-   { \r
-      if((pdata.get() == 0) || (that.pdata.get() == 0))\r
-         return pdata.get() == that.pdata.get();\r
-      return pdata->compare(*(that.pdata.get())); \r
-   }\r
-   bool operator!=(const u32regex_iterator& that)const\r
-   { return !(*this == that); }\r
-   const value_type& operator*()const\r
-   { return pdata->get(); }\r
-   const value_type* operator->()const\r
-   { return &(pdata->get()); }\r
-   u32regex_iterator& operator++()\r
-   {\r
-      cow();\r
-      if(0 == pdata->next())\r
-      {\r
-         pdata.reset();\r
-      }\r
-      return *this;\r
-   }\r
-   u32regex_iterator operator++(int)\r
-   {\r
-      u32regex_iterator result(*this);\r
-      ++(*this);\r
-      return result;\r
-   }\r
-private:\r
-\r
-   pimpl pdata;\r
-\r
-   void cow()\r
-   {\r
-      // copy-on-write\r
-      if(pdata.get() && !pdata.unique())\r
-      {\r
-         pdata.reset(new impl(*(pdata.get())));\r
-      }\r
-   }\r
-};\r
-\r
-typedef u32regex_iterator<const char*> utf8regex_iterator;\r
-typedef u32regex_iterator<const UChar*> utf16regex_iterator;\r
-typedef u32regex_iterator<const UChar32*> utf32regex_iterator;\r
-\r
-inline u32regex_iterator<const char*> make_u32regex_iterator(const char* p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_iterator<const char*>(p, p+std::strlen(p), e, m);\r
-}\r
-#ifndef BOOST_NO_WREGEX\r
-inline u32regex_iterator<const wchar_t*> make_u32regex_iterator(const wchar_t* p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_iterator<const wchar_t*>(p, p+std::wcslen(p), e, m);\r
-}\r
-#endif\r
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)\r
-inline u32regex_iterator<const UChar*> make_u32regex_iterator(const UChar* p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_iterator<const UChar*>(p, p+u_strlen(p), e, m);\r
-}\r
-#endif\r
-template <class charT, class Traits, class Alloc>\r
-inline u32regex_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;\r
-   return u32regex_iterator<iter_type>(p.begin(), p.end(), e, m);\r
-}\r
-inline u32regex_iterator<const UChar*> make_u32regex_iterator(const UnicodeString& s, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, m);\r
-}\r
-\r
-#ifdef BOOST_HAS_ABI_HEADERS\r
-#  include BOOST_ABI_SUFFIX\r
-#endif\r
-\r
-} // namespace boost\r
-\r
-#endif // BOOST_REGEX_V4_REGEX_ITERATOR_HPP\r
-\r
+/*
+ *
+ * Copyright (c) 2003
+ * John Maddock
+ *
+ * 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)
+ *
+ */
+
+ /*
+  *   LOCATION:    see http://www.boost.org for most recent version.
+  *   FILE         u32regex_iterator.hpp
+  *   VERSION      see <boost/version.hpp>
+  *   DESCRIPTION: Provides u32regex_iterator implementation.
+  */
+
+#ifndef BOOST_REGEX_V4_U32REGEX_ITERATOR_HPP
+#define BOOST_REGEX_V4_U32REGEX_ITERATOR_HPP
+
+namespace boost{
+
+#ifdef BOOST_HAS_ABI_HEADERS
+#  include BOOST_ABI_PREFIX
+#endif
+
+template <class BidirectionalIterator>
+class u32regex_iterator_implementation 
+{
+   typedef u32regex regex_type;
+
+   match_results<BidirectionalIterator> what;  // current match
+   BidirectionalIterator                base;  // start of sequence
+   BidirectionalIterator                end;   // end of sequence
+   const regex_type                     re;   // the expression
+   match_flag_type                      flags; // flags for matching
+
+public:
+   u32regex_iterator_implementation(const regex_type* p, BidirectionalIterator last, match_flag_type f)
+      : base(), end(last), re(*p), flags(f){}
+   bool init(BidirectionalIterator first)
+   {
+      base = first;
+      return u32regex_search(first, end, what, re, flags, base);
+   }
+   bool compare(const u32regex_iterator_implementation& that)
+   {
+      if(this == &that) return true;
+      return (&re.get_data() == &that.re.get_data()) && (end == that.end) && (flags == that.flags) && (what[0].first == that.what[0].first) && (what[0].second == that.what[0].second);
+   }
+   const match_results<BidirectionalIterator>& get()
+   { return what; }
+   bool next()
+   {
+      //if(what.prefix().first != what[0].second)
+      //   flags |= match_prev_avail;
+      BidirectionalIterator next_start = what[0].second;
+      match_flag_type f(flags);
+      if(!what.length())
+         f |= regex_constants::match_not_initial_null;
+      //if(base != next_start)
+      //   f |= regex_constants::match_not_bob;
+      bool result = u32regex_search(next_start, end, what, re, f, base);
+      if(result)
+         what.set_base(base);
+      return result;
+   }
+private:
+   u32regex_iterator_implementation& operator=(const u32regex_iterator_implementation&);
+};
+
+template <class BidirectionalIterator>
+class u32regex_iterator 
+#ifndef BOOST_NO_STD_ITERATOR
+   : public std::iterator<
+         std::forward_iterator_tag, 
+         match_results<BidirectionalIterator>,
+         typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type,
+         const match_results<BidirectionalIterator>*,
+         const match_results<BidirectionalIterator>& >         
+#endif
+{
+private:
+   typedef u32regex_iterator_implementation<BidirectionalIterator> impl;
+   typedef shared_ptr<impl> pimpl;
+public:
+   typedef          u32regex                                                regex_type;
+   typedef          match_results<BidirectionalIterator>                    value_type;
+   typedef typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type 
+                                                                            difference_type;
+   typedef          const value_type*                                       pointer;
+   typedef          const value_type&                                       reference; 
+   typedef          std::forward_iterator_tag                               iterator_category;
+   
+   u32regex_iterator(){}
+   u32regex_iterator(BidirectionalIterator a, BidirectionalIterator b, 
+                  const regex_type& re, 
+                  match_flag_type m = match_default)
+                  : pdata(new impl(&re, b, m))
+   {
+      if(!pdata->init(a))
+      {
+         pdata.reset();
+      }
+   }
+   u32regex_iterator(const u32regex_iterator& that)
+      : pdata(that.pdata) {}
+   u32regex_iterator& operator=(const u32regex_iterator& that)
+   {
+      pdata = that.pdata;
+      return *this;
+   }
+   bool operator==(const u32regex_iterator& that)const
+   { 
+      if((pdata.get() == 0) || (that.pdata.get() == 0))
+         return pdata.get() == that.pdata.get();
+      return pdata->compare(*(that.pdata.get())); 
+   }
+   bool operator!=(const u32regex_iterator& that)const
+   { return !(*this == that); }
+   const value_type& operator*()const
+   { return pdata->get(); }
+   const value_type* operator->()const
+   { return &(pdata->get()); }
+   u32regex_iterator& operator++()
+   {
+      cow();
+      if(0 == pdata->next())
+      {
+         pdata.reset();
+      }
+      return *this;
+   }
+   u32regex_iterator operator++(int)
+   {
+      u32regex_iterator result(*this);
+      ++(*this);
+      return result;
+   }
+private:
+
+   pimpl pdata;
+
+   void cow()
+   {
+      // copy-on-write
+      if(pdata.get() && !pdata.unique())
+      {
+         pdata.reset(new impl(*(pdata.get())));
+      }
+   }
+};
+
+typedef u32regex_iterator<const char*> utf8regex_iterator;
+typedef u32regex_iterator<const UChar*> utf16regex_iterator;
+typedef u32regex_iterator<const UChar32*> utf32regex_iterator;
+
+inline u32regex_iterator<const char*> make_u32regex_iterator(const char* p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_iterator<const char*>(p, p+std::strlen(p), e, m);
+}
+#ifndef BOOST_NO_WREGEX
+inline u32regex_iterator<const wchar_t*> make_u32regex_iterator(const wchar_t* p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_iterator<const wchar_t*>(p, p+std::wcslen(p), e, m);
+}
+#endif
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)
+inline u32regex_iterator<const UChar*> make_u32regex_iterator(const UChar* p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_iterator<const UChar*>(p, p+u_strlen(p), e, m);
+}
+#endif
+template <class charT, class Traits, class Alloc>
+inline u32regex_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;
+   return u32regex_iterator<iter_type>(p.begin(), p.end(), e, m);
+}
+inline u32regex_iterator<const UChar*> make_u32regex_iterator(const UnicodeString& s, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, m);
+}
+
+#ifdef BOOST_HAS_ABI_HEADERS
+#  include BOOST_ABI_SUFFIX
+#endif
+
+} // namespace boost
+
+#endif // BOOST_REGEX_V4_REGEX_ITERATOR_HPP
+
index 11f25d5acfac10f5e9b13feac316fdbef22dddac..2726d486fd81f263616f41b29bfd3c901178d71a 100644 (file)
-/*\r
- *\r
- * Copyright (c) 2003\r
- * John Maddock\r
- *\r
- * Use, modification and distribution are subject to the \r
- * Boost Software License, Version 1.0. (See accompanying file \r
- * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
- *\r
- */\r
-\r
- /*\r
-  *   LOCATION:    see http://www.boost.org for most recent version.\r
-  *   FILE         u32regex_token_iterator.hpp\r
-  *   VERSION      see <boost/version.hpp>\r
-  *   DESCRIPTION: Provides u32regex_token_iterator implementation.\r
-  */\r
-\r
-#ifndef BOOST_REGEX_V4_U32REGEX_TOKEN_ITERATOR_HPP\r
-#define BOOST_REGEX_V4_U32REGEX_TOKEN_ITERATOR_HPP\r
-\r
-#if (BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)))\\r
-      || BOOST_WORKAROUND(BOOST_MSVC, < 1300) \\r
-      || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))\r
-//\r
-// Borland C++ Builder 6, and Visual C++ 6,\r
-// can't cope with the array template constructor\r
-// so we have a template member that will accept any type as \r
-// argument, and then assert that is really is an array:\r
-//\r
-#include <boost/static_assert.hpp>\r
-#include <boost/type_traits/is_array.hpp>\r
-#endif\r
-\r
-namespace boost{\r
-\r
-#ifdef BOOST_HAS_ABI_HEADERS\r
-#  include BOOST_ABI_PREFIX\r
-#endif\r
-#if BOOST_WORKAROUND(BOOST_MSVC, > 1300)\r
-#  pragma warning(push)\r
-#  pragma warning(disable:4700)\r
-#endif\r
-\r
-template <class BidirectionalIterator>\r
-class u32regex_token_iterator_implementation \r
-{\r
-   typedef u32regex                              regex_type;\r
-   typedef sub_match<BidirectionalIterator>      value_type;\r
-\r
-   match_results<BidirectionalIterator> what;   // current match\r
-   BidirectionalIterator                end;    // end of search area\r
-   BidirectionalIterator                base;   // start of search area\r
-   const regex_type                     re;     // the expression\r
-   match_flag_type                      flags;  // match flags\r
-   value_type                           result; // the current string result\r
-   int                                  N;      // the current sub-expression being enumerated\r
-   std::vector<int>                     subs;   // the sub-expressions to enumerate\r
-\r
-public:\r
-   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, int sub, match_flag_type f)\r
-      : end(last), re(*p), flags(f){ subs.push_back(sub); }\r
-   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const std::vector<int>& v, match_flag_type f)\r
-      : end(last), re(*p), flags(f), subs(v){}\r
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
-      // can't reliably get this to work....\r
-#elif (BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)))\\r
-      || BOOST_WORKAROUND(BOOST_MSVC, < 1300) \\r
-      || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) \\r
-      || BOOST_WORKAROUND(__HP_aCC, < 60700)\r
-   template <class T>\r
-   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const T& submatches, match_flag_type f)\r
-      : end(last), re(*p), flags(f)\r
-   {\r
-      // assert that T really is an array:\r
-      BOOST_STATIC_ASSERT(::boost::is_array<T>::value);\r
-      const std::size_t array_size = sizeof(T) / sizeof(submatches[0]);\r
-      for(std::size_t i = 0; i < array_size; ++i)\r
-      {\r
-         subs.push_back(submatches[i]);\r
-      }\r
-   }\r
-#else\r
-   template <std::size_t CN>\r
-   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const int (&submatches)[CN], match_flag_type f)\r
-      : end(last), re(*p), flags(f)\r
-   {\r
-      for(std::size_t i = 0; i < CN; ++i)\r
-      {\r
-         subs.push_back(submatches[i]);\r
-      }\r
-   }\r
-#endif\r
-\r
-   bool init(BidirectionalIterator first)\r
-   {\r
-      base = first;\r
-      N = 0;\r
-      if(u32regex_search(first, end, what, re, flags, base) == true)\r
-      {\r
-         N = 0;\r
-         result = ((subs[N] == -1) ? what.prefix() : what[(int)subs[N]]);\r
-         return true;\r
-      }\r
-      else if((subs[N] == -1) && (first != end))\r
-      {\r
-         result.first = first;\r
-         result.second = end;\r
-         result.matched = (first != end);\r
-         N = -1;\r
-         return true;\r
-      }\r
-      return false;\r
-   }\r
-   bool compare(const u32regex_token_iterator_implementation& that)\r
-   {\r
-      if(this == &that) return true;\r
-      return (&re.get_data() == &that.re.get_data()) \r
-         && (end == that.end) \r
-         && (flags == that.flags) \r
-         && (N == that.N) \r
-         && (what[0].first == that.what[0].first) \r
-         && (what[0].second == that.what[0].second);\r
-   }\r
-   const value_type& get()\r
-   { return result; }\r
-   bool next()\r
-   {\r
-      if(N == -1)\r
-         return false;\r
-      if(N+1 < (int)subs.size())\r
-      {\r
-         ++N;\r
-         result =((subs[N] == -1) ? what.prefix() : what[subs[N]]);\r
-         return true;\r
-      }\r
-      //if(what.prefix().first != what[0].second)\r
-      //   flags |= match_prev_avail | regex_constants::match_not_bob;\r
-      BidirectionalIterator last_end(what[0].second);\r
-      if(u32regex_search(last_end, end, what, re, ((what[0].first == what[0].second) ? flags | regex_constants::match_not_initial_null : flags), base))\r
-      {\r
-         N =0;\r
-         result =((subs[N] == -1) ? what.prefix() : what[subs[N]]);\r
-         return true;\r
-      }\r
-      else if((last_end != end) && (subs[0] == -1))\r
-      {\r
-         N =-1;\r
-         result.first = last_end;\r
-         result.second = end;\r
-         result.matched = (last_end != end);\r
-         return true;\r
-      }\r
-      return false;\r
-   }\r
-private:\r
-   u32regex_token_iterator_implementation& operator=(const u32regex_token_iterator_implementation&);\r
-};\r
-\r
-template <class BidirectionalIterator>\r
-class u32regex_token_iterator \r
-#ifndef BOOST_NO_STD_ITERATOR\r
-   : public std::iterator<\r
-         std::forward_iterator_tag, \r
-         sub_match<BidirectionalIterator>,\r
-         typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type,\r
-         const sub_match<BidirectionalIterator>*,\r
-         const sub_match<BidirectionalIterator>& >         \r
-#endif\r
-{\r
-private:\r
-   typedef u32regex_token_iterator_implementation<BidirectionalIterator> impl;\r
-   typedef shared_ptr<impl> pimpl;\r
-public:\r
-   typedef          u32regex                                                regex_type;\r
-   typedef          sub_match<BidirectionalIterator>                        value_type;\r
-   typedef typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type \r
-                                                                            difference_type;\r
-   typedef          const value_type*                                       pointer;\r
-   typedef          const value_type&                                       reference; \r
-   typedef          std::forward_iterator_tag                               iterator_category;\r
-   \r
-   u32regex_token_iterator(){}\r
-   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, \r
-                        int submatch = 0, match_flag_type m = match_default)\r
-                        : pdata(new impl(&re, b, submatch, m))\r
-   {\r
-      if(!pdata->init(a))\r
-         pdata.reset();\r
-   }\r
-   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, \r
-                        const std::vector<int>& submatches, match_flag_type m = match_default)\r
-                        : pdata(new impl(&re, b, submatches, m))\r
-   {\r
-      if(!pdata->init(a))\r
-         pdata.reset();\r
-   }\r
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
-      // can't reliably get this to work....\r
-#elif (BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)))\\r
-      || BOOST_WORKAROUND(BOOST_MSVC, < 1300) \\r
-      || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) \\r
-      || BOOST_WORKAROUND(__HP_aCC, < 60700)\r
-   template <class T>\r
-   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re,\r
-                        const T& submatches, match_flag_type m = match_default)\r
-                        : pdata(new impl(&re, b, submatches, m))\r
-   {\r
-      if(!pdata->init(a))\r
-         pdata.reset();\r
-   }\r
-#else\r
-   template <std::size_t N>\r
-   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re,\r
-                        const int (&submatches)[N], match_flag_type m = match_default)\r
-                        : pdata(new impl(&re, b, submatches, m))\r
-   {\r
-      if(!pdata->init(a))\r
-         pdata.reset();\r
-   }\r
-#endif\r
-   u32regex_token_iterator(const u32regex_token_iterator& that)\r
-      : pdata(that.pdata) {}\r
-   u32regex_token_iterator& operator=(const u32regex_token_iterator& that)\r
-   {\r
-      pdata = that.pdata;\r
-      return *this;\r
-   }\r
-   bool operator==(const u32regex_token_iterator& that)const\r
-   { \r
-      if((pdata.get() == 0) || (that.pdata.get() == 0))\r
-         return pdata.get() == that.pdata.get();\r
-      return pdata->compare(*(that.pdata.get())); \r
-   }\r
-   bool operator!=(const u32regex_token_iterator& that)const\r
-   { return !(*this == that); }\r
-   const value_type& operator*()const\r
-   { return pdata->get(); }\r
-   const value_type* operator->()const\r
-   { return &(pdata->get()); }\r
-   u32regex_token_iterator& operator++()\r
-   {\r
-      cow();\r
-      if(0 == pdata->next())\r
-      {\r
-         pdata.reset();\r
-      }\r
-      return *this;\r
-   }\r
-   u32regex_token_iterator operator++(int)\r
-   {\r
-      u32regex_token_iterator result(*this);\r
-      ++(*this);\r
-      return result;\r
-   }\r
-private:\r
-\r
-   pimpl pdata;\r
-\r
-   void cow()\r
-   {\r
-      // copy-on-write\r
-      if(pdata.get() && !pdata.unique())\r
-      {\r
-         pdata.reset(new impl(*(pdata.get())));\r
-      }\r
-   }\r
-};\r
-\r
-typedef u32regex_token_iterator<const char*> utf8regex_token_iterator;\r
-typedef u32regex_token_iterator<const UChar*> utf16regex_token_iterator;\r
-typedef u32regex_token_iterator<const UChar32*> utf32regex_token_iterator;\r
-\r
-// construction from an integral sub_match state_id:\r
-inline u32regex_token_iterator<const char*> make_u32regex_token_iterator(const char* p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_token_iterator<const char*>(p, p+std::strlen(p), e, submatch, m);\r
-}\r
-#ifndef BOOST_NO_WREGEX\r
-inline u32regex_token_iterator<const wchar_t*> make_u32regex_token_iterator(const wchar_t* p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_token_iterator<const wchar_t*>(p, p+std::wcslen(p), e, submatch, m);\r
-}\r
-#endif\r
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)\r
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UChar* p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_token_iterator<const UChar*>(p, p+u_strlen(p), e, submatch, m);\r
-}\r
-#endif\r
-template <class charT, class Traits, class Alloc>\r
-inline u32regex_token_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_token_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;\r
-   return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, m);\r
-}\r
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UnicodeString& s, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);\r
-}\r
-\r
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
-// construction from a reference to an array:\r
-template <std::size_t N>\r
-inline u32regex_token_iterator<const char*> make_u32regex_token_iterator(const char* p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_token_iterator<const char*>(p, p+std::strlen(p), e, submatch, m);\r
-}\r
-#ifndef BOOST_NO_WREGEX\r
-template <std::size_t N>\r
-inline u32regex_token_iterator<const wchar_t*> make_u32regex_token_iterator(const wchar_t* p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_token_iterator<const wchar_t*>(p, p+std::wcslen(p), e, submatch, m);\r
-}\r
-#endif\r
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)\r
-template <std::size_t N>\r
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UChar* p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_token_iterator<const UChar*>(p, p+u_strlen(p), e, m);\r
-}\r
-#endif\r
-template <class charT, class Traits, class Alloc, std::size_t N>\r
-inline u32regex_token_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_token_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;\r
-   return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, m);\r
-}\r
-template <std::size_t N>\r
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UnicodeString& s, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);\r
-}\r
-#endif // BOOST_MSVC < 1300\r
-\r
-// construction from a vector of sub_match state_id's:\r
-inline u32regex_token_iterator<const char*> make_u32regex_token_iterator(const char* p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_token_iterator<const char*>(p, p+std::strlen(p), e, submatch, m);\r
-}\r
-#ifndef BOOST_NO_WREGEX\r
-inline u32regex_token_iterator<const wchar_t*> make_u32regex_token_iterator(const wchar_t* p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_token_iterator<const wchar_t*>(p, p+std::wcslen(p), e, submatch, m);\r
-}\r
-#endif\r
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)\r
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UChar* p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_token_iterator<const UChar*>(p, p+u_strlen(p), e, submatch, m);\r
-}\r
-#endif\r
-template <class charT, class Traits, class Alloc>\r
-inline u32regex_token_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_token_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;\r
-   return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, m);\r
-}\r
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UnicodeString& s, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)\r
-{\r
-   return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);\r
-}\r
-\r
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)\r
-#  pragma warning(pop)\r
-#endif\r
-#ifdef BOOST_HAS_ABI_HEADERS\r
-#  include BOOST_ABI_SUFFIX\r
-#endif\r
-\r
-} // namespace boost\r
-\r
-#endif // BOOST_REGEX_V4_REGEX_TOKEN_ITERATOR_HPP\r
-\r
-\r
-\r
-\r
+/*
+ *
+ * Copyright (c) 2003
+ * John Maddock
+ *
+ * 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)
+ *
+ */
+
+ /*
+  *   LOCATION:    see http://www.boost.org for most recent version.
+  *   FILE         u32regex_token_iterator.hpp
+  *   VERSION      see <boost/version.hpp>
+  *   DESCRIPTION: Provides u32regex_token_iterator implementation.
+  */
+
+#ifndef BOOST_REGEX_V4_U32REGEX_TOKEN_ITERATOR_HPP
+#define BOOST_REGEX_V4_U32REGEX_TOKEN_ITERATOR_HPP
+
+#if (BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)))\
+      || BOOST_WORKAROUND(BOOST_MSVC, < 1300) \
+      || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
+//
+// Borland C++ Builder 6, and Visual C++ 6,
+// can't cope with the array template constructor
+// so we have a template member that will accept any type as 
+// argument, and then assert that is really is an array:
+//
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_array.hpp>
+#endif
+
+namespace boost{
+
+#ifdef BOOST_HAS_ABI_HEADERS
+#  include BOOST_ABI_PREFIX
+#endif
+#if BOOST_WORKAROUND(BOOST_MSVC, > 1300)
+#  pragma warning(push)
+#  pragma warning(disable:4700)
+#endif
+
+template <class BidirectionalIterator>
+class u32regex_token_iterator_implementation 
+{
+   typedef u32regex                              regex_type;
+   typedef sub_match<BidirectionalIterator>      value_type;
+
+   match_results<BidirectionalIterator> what;   // current match
+   BidirectionalIterator                end;    // end of search area
+   BidirectionalIterator                base;   // start of search area
+   const regex_type                     re;     // the expression
+   match_flag_type                      flags;  // match flags
+   value_type                           result; // the current string result
+   int                                  N;      // the current sub-expression being enumerated
+   std::vector<int>                     subs;   // the sub-expressions to enumerate
+
+public:
+   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, int sub, match_flag_type f)
+      : end(last), re(*p), flags(f){ subs.push_back(sub); }
+   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const std::vector<int>& v, match_flag_type f)
+      : end(last), re(*p), flags(f), subs(v){}
+#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+      // can't reliably get this to work....
+#elif (BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)))\
+      || BOOST_WORKAROUND(BOOST_MSVC, < 1300) \
+      || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) \
+      || BOOST_WORKAROUND(__HP_aCC, < 60700)
+   template <class T>
+   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const T& submatches, match_flag_type f)
+      : end(last), re(*p), flags(f)
+   {
+      // assert that T really is an array:
+      BOOST_STATIC_ASSERT(::boost::is_array<T>::value);
+      const std::size_t array_size = sizeof(T) / sizeof(submatches[0]);
+      for(std::size_t i = 0; i < array_size; ++i)
+      {
+         subs.push_back(submatches[i]);
+      }
+   }
+#else
+   template <std::size_t CN>
+   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const int (&submatches)[CN], match_flag_type f)
+      : end(last), re(*p), flags(f)
+   {
+      for(std::size_t i = 0; i < CN; ++i)
+      {
+         subs.push_back(submatches[i]);
+      }
+   }
+#endif
+
+   bool init(BidirectionalIterator first)
+   {
+      base = first;
+      N = 0;
+      if(u32regex_search(first, end, what, re, flags, base) == true)
+      {
+         N = 0;
+         result = ((subs[N] == -1) ? what.prefix() : what[(int)subs[N]]);
+         return true;
+      }
+      else if((subs[N] == -1) && (first != end))
+      {
+         result.first = first;
+         result.second = end;
+         result.matched = (first != end);
+         N = -1;
+         return true;
+      }
+      return false;
+   }
+   bool compare(const u32regex_token_iterator_implementation& that)
+   {
+      if(this == &that) return true;
+      return (&re.get_data() == &that.re.get_data()) 
+         && (end == that.end) 
+         && (flags == that.flags) 
+         && (N == that.N) 
+         && (what[0].first == that.what[0].first) 
+         && (what[0].second == that.what[0].second);
+   }
+   const value_type& get()
+   { return result; }
+   bool next()
+   {
+      if(N == -1)
+         return false;
+      if(N+1 < (int)subs.size())
+      {
+         ++N;
+         result =((subs[N] == -1) ? what.prefix() : what[subs[N]]);
+         return true;
+      }
+      //if(what.prefix().first != what[0].second)
+      //   flags |= match_prev_avail | regex_constants::match_not_bob;
+      BidirectionalIterator last_end(what[0].second);
+      if(u32regex_search(last_end, end, what, re, ((what[0].first == what[0].second) ? flags | regex_constants::match_not_initial_null : flags), base))
+      {
+         N =0;
+         result =((subs[N] == -1) ? what.prefix() : what[subs[N]]);
+         return true;
+      }
+      else if((last_end != end) && (subs[0] == -1))
+      {
+         N =-1;
+         result.first = last_end;
+         result.second = end;
+         result.matched = (last_end != end);
+         return true;
+      }
+      return false;
+   }
+private:
+   u32regex_token_iterator_implementation& operator=(const u32regex_token_iterator_implementation&);
+};
+
+template <class BidirectionalIterator>
+class u32regex_token_iterator 
+#ifndef BOOST_NO_STD_ITERATOR
+   : public std::iterator<
+         std::forward_iterator_tag, 
+         sub_match<BidirectionalIterator>,
+         typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type,
+         const sub_match<BidirectionalIterator>*,
+         const sub_match<BidirectionalIterator>& >         
+#endif
+{
+private:
+   typedef u32regex_token_iterator_implementation<BidirectionalIterator> impl;
+   typedef shared_ptr<impl> pimpl;
+public:
+   typedef          u32regex                                                regex_type;
+   typedef          sub_match<BidirectionalIterator>                        value_type;
+   typedef typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type 
+                                                                            difference_type;
+   typedef          const value_type*                                       pointer;
+   typedef          const value_type&                                       reference; 
+   typedef          std::forward_iterator_tag                               iterator_category;
+   
+   u32regex_token_iterator(){}
+   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, 
+                        int submatch = 0, match_flag_type m = match_default)
+                        : pdata(new impl(&re, b, submatch, m))
+   {
+      if(!pdata->init(a))
+         pdata.reset();
+   }
+   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, 
+                        const std::vector<int>& submatches, match_flag_type m = match_default)
+                        : pdata(new impl(&re, b, submatches, m))
+   {
+      if(!pdata->init(a))
+         pdata.reset();
+   }
+#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+      // can't reliably get this to work....
+#elif (BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)))\
+      || BOOST_WORKAROUND(BOOST_MSVC, < 1300) \
+      || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) \
+      || BOOST_WORKAROUND(__HP_aCC, < 60700)
+   template <class T>
+   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re,
+                        const T& submatches, match_flag_type m = match_default)
+                        : pdata(new impl(&re, b, submatches, m))
+   {
+      if(!pdata->init(a))
+         pdata.reset();
+   }
+#else
+   template <std::size_t N>
+   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re,
+                        const int (&submatches)[N], match_flag_type m = match_default)
+                        : pdata(new impl(&re, b, submatches, m))
+   {
+      if(!pdata->init(a))
+         pdata.reset();
+   }
+#endif
+   u32regex_token_iterator(const u32regex_token_iterator& that)
+      : pdata(that.pdata) {}
+   u32regex_token_iterator& operator=(const u32regex_token_iterator& that)
+   {
+      pdata = that.pdata;
+      return *this;
+   }
+   bool operator==(const u32regex_token_iterator& that)const
+   { 
+      if((pdata.get() == 0) || (that.pdata.get() == 0))
+         return pdata.get() == that.pdata.get();
+      return pdata->compare(*(that.pdata.get())); 
+   }
+   bool operator!=(const u32regex_token_iterator& that)const
+   { return !(*this == that); }
+   const value_type& operator*()const
+   { return pdata->get(); }
+   const value_type* operator->()const
+   { return &(pdata->get()); }
+   u32regex_token_iterator& operator++()
+   {
+      cow();
+      if(0 == pdata->next())
+      {
+         pdata.reset();
+      }
+      return *this;
+   }
+   u32regex_token_iterator operator++(int)
+   {
+      u32regex_token_iterator result(*this);
+      ++(*this);
+      return result;
+   }
+private:
+
+   pimpl pdata;
+
+   void cow()
+   {
+      // copy-on-write
+      if(pdata.get() && !pdata.unique())
+      {
+         pdata.reset(new impl(*(pdata.get())));
+      }
+   }
+};
+
+typedef u32regex_token_iterator<const char*> utf8regex_token_iterator;
+typedef u32regex_token_iterator<const UChar*> utf16regex_token_iterator;
+typedef u32regex_token_iterator<const UChar32*> utf32regex_token_iterator;
+
+// construction from an integral sub_match state_id:
+inline u32regex_token_iterator<const char*> make_u32regex_token_iterator(const char* p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_token_iterator<const char*>(p, p+std::strlen(p), e, submatch, m);
+}
+#ifndef BOOST_NO_WREGEX
+inline u32regex_token_iterator<const wchar_t*> make_u32regex_token_iterator(const wchar_t* p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_token_iterator<const wchar_t*>(p, p+std::wcslen(p), e, submatch, m);
+}
+#endif
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UChar* p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_token_iterator<const UChar*>(p, p+u_strlen(p), e, submatch, m);
+}
+#endif
+template <class charT, class Traits, class Alloc>
+inline u32regex_token_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_token_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;
+   return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, m);
+}
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UnicodeString& s, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);
+}
+
+#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+// construction from a reference to an array:
+template <std::size_t N>
+inline u32regex_token_iterator<const char*> make_u32regex_token_iterator(const char* p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_token_iterator<const char*>(p, p+std::strlen(p), e, submatch, m);
+}
+#ifndef BOOST_NO_WREGEX
+template <std::size_t N>
+inline u32regex_token_iterator<const wchar_t*> make_u32regex_token_iterator(const wchar_t* p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_token_iterator<const wchar_t*>(p, p+std::wcslen(p), e, submatch, m);
+}
+#endif
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)
+template <std::size_t N>
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UChar* p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_token_iterator<const UChar*>(p, p+u_strlen(p), e, m);
+}
+#endif
+template <class charT, class Traits, class Alloc, std::size_t N>
+inline u32regex_token_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_token_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;
+   return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, m);
+}
+template <std::size_t N>
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UnicodeString& s, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);
+}
+#endif // BOOST_MSVC < 1300
+
+// construction from a vector of sub_match state_id's:
+inline u32regex_token_iterator<const char*> make_u32regex_token_iterator(const char* p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_token_iterator<const char*>(p, p+std::strlen(p), e, submatch, m);
+}
+#ifndef BOOST_NO_WREGEX
+inline u32regex_token_iterator<const wchar_t*> make_u32regex_token_iterator(const wchar_t* p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_token_iterator<const wchar_t*>(p, p+std::wcslen(p), e, submatch, m);
+}
+#endif
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UChar* p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_token_iterator<const UChar*>(p, p+u_strlen(p), e, submatch, m);
+}
+#endif
+template <class charT, class Traits, class Alloc>
+inline u32regex_token_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_token_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;
+   return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, m);
+}
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UnicodeString& s, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)
+{
+   return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);
+}
+
+#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
+#  pragma warning(pop)
+#endif
+#ifdef BOOST_HAS_ABI_HEADERS
+#  include BOOST_ABI_SUFFIX
+#endif
+
+} // namespace boost
+
+#endif // BOOST_REGEX_V4_REGEX_TOKEN_ITERATOR_HPP
+
+
+
+
index 72fff3561e790680731b947319948061b91e376d..3e0a1b728677d0da025967f735db4e54c9f4fb83 100644 (file)
@@ -1,59 +1,59 @@
-#ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  boost/smart_ptr/bad_weak_ptr.hpp\r
-//\r
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <exception>\r
-\r
-#ifdef __BORLANDC__\r
-# pragma warn -8026     // Functions with excep. spec. are not expanded inline\r
-#endif\r
-\r
-namespace boost\r
-{\r
-\r
-// The standard library that comes with Borland C++ 5.5.1, 5.6.4\r
-// defines std::exception and its members as having C calling\r
-// convention (-pc). When the definition of bad_weak_ptr\r
-// is compiled with -ps, the compiler issues an error.\r
-// Hence, the temporary #pragma option -pc below.\r
-\r
-#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564\r
-# pragma option push -pc\r
-#endif\r
-\r
-class bad_weak_ptr: public std::exception\r
-{\r
-public:\r
-\r
-    virtual char const * what() const throw()\r
-    {\r
-        return "tr1::bad_weak_ptr";\r
-    }\r
-};\r
-\r
-#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564\r
-# pragma option pop\r
-#endif\r
-\r
-} // namespace boost\r
-\r
-#ifdef __BORLANDC__\r
-# pragma warn .8026     // Functions with excep. spec. are not expanded inline\r
-#endif\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED
+#define BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  boost/smart_ptr/bad_weak_ptr.hpp
+//
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
+//
+// 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)
+//
+
+#include <exception>
+
+#ifdef __BORLANDC__
+# pragma warn -8026     // Functions with excep. spec. are not expanded inline
+#endif
+
+namespace boost
+{
+
+// The standard library that comes with Borland C++ 5.5.1, 5.6.4
+// defines std::exception and its members as having C calling
+// convention (-pc). When the definition of bad_weak_ptr
+// is compiled with -ps, the compiler issues an error.
+// Hence, the temporary #pragma option -pc below.
+
+#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564
+# pragma option push -pc
+#endif
+
+class bad_weak_ptr: public std::exception
+{
+public:
+
+    virtual char const * what() const throw()
+    {
+        return "tr1::bad_weak_ptr";
+    }
+};
+
+#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564
+# pragma option pop
+#endif
+
+} // namespace boost
+
+#ifdef __BORLANDC__
+# pragma warn .8026     // Functions with excep. spec. are not expanded inline
+#endif
+
+#endif  // #ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED
index f8561371fa23b6c1e03d5da45914b7ccf0c8575e..cc44ac2f96d815a0581b93115f71e22c0d8dfa7d 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  boost/detail/atomic_count.hpp - thread/SMP safe reference counter\r
-//\r
-//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  typedef <implementation-defined> boost::detail::atomic_count;\r
-//\r
-//  atomic_count a(n);\r
-//\r
-//    (n is convertible to long)\r
-//\r
-//    Effects: Constructs an atomic_count with an initial value of n\r
-//\r
-//  a;\r
-//\r
-//    Returns: (long) the current value of a\r
-//\r
-//  ++a;\r
-//\r
-//    Effects: Atomically increments the value of a\r
-//    Returns: (long) the new value of a\r
-//\r
-//  --a;\r
-//\r
-//    Effects: Atomically decrements the value of a\r
-//    Returns: (long) the new value of a\r
-//\r
-//    Important note: when --a returns zero, it must act as a\r
-//      read memory barrier (RMB); i.e. the calling thread must\r
-//      have a synchronized view of the memory\r
-//\r
-//    On Intel IA-32 (x86) memory is always synchronized, so this\r
-//      is not a problem.\r
-//\r
-//    On many architectures the atomic instructions already act as\r
-//      a memory barrier.\r
-//\r
-//    This property is necessary for proper reference counting, since\r
-//      a thread can update the contents of a shared object, then\r
-//      release its reference, and another thread may immediately\r
-//      release the last reference causing object destruction.\r
-//\r
-//    The destructor needs to have a synchronized view of the\r
-//      object to perform proper cleanup.\r
-//\r
-//    Original example by Alexander Terekhov:\r
-//\r
-//    Given:\r
-//\r
-//    - a mutable shared object OBJ;\r
-//    - two threads THREAD1 and THREAD2 each holding \r
-//      a private smart_ptr object pointing to that OBJ.\r
-//\r
-//    t1: THREAD1 updates OBJ (thread-safe via some synchronization)\r
-//      and a few cycles later (after "unlock") destroys smart_ptr;\r
-//\r
-//    t2: THREAD2 destroys smart_ptr WITHOUT doing any synchronization \r
-//      with respect to shared mutable object OBJ; OBJ destructors\r
-//      are called driven by smart_ptr interface...\r
-//\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/smart_ptr/detail/sp_has_sync.hpp>\r
-\r
-#ifndef BOOST_HAS_THREADS\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-typedef long atomic_count;\r
-\r
-}\r
-\r
-}\r
-\r
-#elif defined(BOOST_AC_USE_PTHREADS)\r
-#  include <boost/smart_ptr/detail/atomic_count_pthreads.hpp>\r
-\r
-#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) )\r
-#  include <boost/smart_ptr/detail/atomic_count_gcc_x86.hpp>\r
-\r
-#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)\r
-#  include <boost/smart_ptr/detail/atomic_count_win32.hpp>\r
-\r
-#elif defined( BOOST_SP_HAS_SYNC )\r
-#  include <boost/smart_ptr/detail/atomic_count_sync.hpp>\r
-\r
-#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)\r
-#  include <boost/smart_ptr/detail/atomic_count_gcc.hpp>\r
-\r
-#elif defined(BOOST_HAS_PTHREADS)\r
-\r
-#  define BOOST_AC_USE_PTHREADS\r
-#  include <boost/smart_ptr/detail/atomic_count_pthreads.hpp>\r
-\r
-#else\r
-\r
-// Use #define BOOST_DISABLE_THREADS to avoid the error\r
-#error Unrecognized threading platform\r
-\r
-#endif\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  boost/detail/atomic_count.hpp - thread/SMP safe reference counter
+//
+//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
+//
+// 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)
+//
+//  typedef <implementation-defined> boost::detail::atomic_count;
+//
+//  atomic_count a(n);
+//
+//    (n is convertible to long)
+//
+//    Effects: Constructs an atomic_count with an initial value of n
+//
+//  a;
+//
+//    Returns: (long) the current value of a
+//
+//  ++a;
+//
+//    Effects: Atomically increments the value of a
+//    Returns: (long) the new value of a
+//
+//  --a;
+//
+//    Effects: Atomically decrements the value of a
+//    Returns: (long) the new value of a
+//
+//    Important note: when --a returns zero, it must act as a
+//      read memory barrier (RMB); i.e. the calling thread must
+//      have a synchronized view of the memory
+//
+//    On Intel IA-32 (x86) memory is always synchronized, so this
+//      is not a problem.
+//
+//    On many architectures the atomic instructions already act as
+//      a memory barrier.
+//
+//    This property is necessary for proper reference counting, since
+//      a thread can update the contents of a shared object, then
+//      release its reference, and another thread may immediately
+//      release the last reference causing object destruction.
+//
+//    The destructor needs to have a synchronized view of the
+//      object to perform proper cleanup.
+//
+//    Original example by Alexander Terekhov:
+//
+//    Given:
+//
+//    - a mutable shared object OBJ;
+//    - two threads THREAD1 and THREAD2 each holding 
+//      a private smart_ptr object pointing to that OBJ.
+//
+//    t1: THREAD1 updates OBJ (thread-safe via some synchronization)
+//      and a few cycles later (after "unlock") destroys smart_ptr;
+//
+//    t2: THREAD2 destroys smart_ptr WITHOUT doing any synchronization 
+//      with respect to shared mutable object OBJ; OBJ destructors
+//      are called driven by smart_ptr interface...
+//
+
+#include <boost/config.hpp>
+#include <boost/smart_ptr/detail/sp_has_sync.hpp>
+
+#ifndef BOOST_HAS_THREADS
+
+namespace boost
+{
+
+namespace detail
+{
+
+typedef long atomic_count;
+
+}
+
+}
+
+#elif defined(BOOST_AC_USE_PTHREADS)
+#  include <boost/smart_ptr/detail/atomic_count_pthreads.hpp>
+
+#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) )
+#  include <boost/smart_ptr/detail/atomic_count_gcc_x86.hpp>
+
+#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#  include <boost/smart_ptr/detail/atomic_count_win32.hpp>
+
+#elif defined( BOOST_SP_HAS_SYNC )
+#  include <boost/smart_ptr/detail/atomic_count_sync.hpp>
+
+#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
+#  include <boost/smart_ptr/detail/atomic_count_gcc.hpp>
+
+#elif defined(BOOST_HAS_PTHREADS)
+
+#  define BOOST_AC_USE_PTHREADS
+#  include <boost/smart_ptr/detail/atomic_count_pthreads.hpp>
+
+#else
+
+// Use #define BOOST_DISABLE_THREADS to avoid the error
+#error Unrecognized threading platform
+
+#endif
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
index 0c10d8890fa4e832b5ae41a6cea19e9742978afb..54807e944e22e4f60ca2fe407caf54bcedfedd2e 100644 (file)
@@ -1,72 +1,72 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED\r
-\r
-//\r
-//  boost/detail/atomic_count_gcc.hpp\r
-//\r
-//  atomic_count for GNU libstdc++ v3\r
-//\r
-//  http://gcc.gnu.org/onlinedocs/porting/Thread-safety.html\r
-//\r
-//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.\r
-//  Copyright (c) 2002 Lars Gullik Bjønnes <larsbj@lyx.org>\r
-//  Copyright 2003-2005 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#if __GNUC__ * 100 + __GNUC_MINOR__ >= 402\r
-# include <ext/atomicity.h> \r
-#else \r
-# include <bits/atomicity.h>\r
-#endif\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-#if defined(__GLIBCXX__) // g++ 3.4+\r
-\r
-using __gnu_cxx::__atomic_add;\r
-using __gnu_cxx::__exchange_and_add;\r
-\r
-#endif\r
-\r
-class atomic_count\r
-{\r
-public:\r
-\r
-    explicit atomic_count( long v ) : value_( v ) {}\r
-\r
-    long operator++()\r
-    {\r
-        return __exchange_and_add( &value_, +1 ) + 1;\r
-    }\r
-\r
-    long operator--()\r
-    {\r
-        return __exchange_and_add( &value_, -1 ) - 1;\r
-    }\r
-\r
-    operator long() const\r
-    {\r
-        return __exchange_and_add( &value_, 0 );\r
-    }\r
-\r
-private:\r
-\r
-    atomic_count(atomic_count const &);\r
-    atomic_count & operator=(atomic_count const &);\r
-\r
-    mutable _Atomic_word value_;\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
+
+//
+//  boost/detail/atomic_count_gcc.hpp
+//
+//  atomic_count for GNU libstdc++ v3
+//
+//  http://gcc.gnu.org/onlinedocs/porting/Thread-safety.html
+//
+//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
+//  Copyright (c) 2002 Lars Gullik Bjønnes <larsbj@lyx.org>
+//  Copyright 2003-2005 Peter Dimov
+//
+//  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 __GNUC__ * 100 + __GNUC_MINOR__ >= 402
+# include <ext/atomicity.h> 
+#else 
+# include <bits/atomicity.h>
+#endif
+
+namespace boost
+{
+
+namespace detail
+{
+
+#if defined(__GLIBCXX__) // g++ 3.4+
+
+using __gnu_cxx::__atomic_add;
+using __gnu_cxx::__exchange_and_add;
+
+#endif
+
+class atomic_count
+{
+public:
+
+    explicit atomic_count( long v ) : value_( v ) {}
+
+    long operator++()
+    {
+        return __exchange_and_add( &value_, +1 ) + 1;
+    }
+
+    long operator--()
+    {
+        return __exchange_and_add( &value_, -1 ) - 1;
+    }
+
+    operator long() const
+    {
+        return __exchange_and_add( &value_, 0 );
+    }
+
+private:
+
+    atomic_count(atomic_count const &);
+    atomic_count & operator=(atomic_count const &);
+
+    mutable _Atomic_word value_;
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
index 388498b218e809816a507a1c9384c4e40d8c6f12..5c44d7c1efaa22ae8f01435099c71582ffabd352 100644 (file)
@@ -1,77 +1,77 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED\r
-\r
-//\r
-//  boost/detail/atomic_count_gcc_x86.hpp\r
-//\r
-//  atomic_count for g++ on 486+/AMD64\r
-//\r
-//  Copyright 2007 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class atomic_count\r
-{\r
-public:\r
-\r
-    explicit atomic_count( long v ) : value_( static_cast< int >( v ) ) {}\r
-\r
-    long operator++()\r
-    {\r
-        return atomic_exchange_and_add( &value_, +1 ) + 1;\r
-    }\r
-\r
-    long operator--()\r
-    {\r
-        return atomic_exchange_and_add( &value_, -1 ) - 1;\r
-    }\r
-\r
-    operator long() const\r
-    {\r
-        return atomic_exchange_and_add( &value_, 0 );\r
-    }\r
-\r
-private:\r
-\r
-    atomic_count(atomic_count const &);\r
-    atomic_count & operator=(atomic_count const &);\r
-\r
-    mutable int value_;\r
-\r
-private:\r
-\r
-    static int atomic_exchange_and_add( int * pw, int dv )\r
-    {\r
-        // int r = *pw;\r
-        // *pw += dv;\r
-        // return r;\r
-\r
-        int r;\r
-\r
-        __asm__ __volatile__\r
-        (\r
-            "lock\n\t"\r
-            "xadd %1, %0":\r
-            "+m"( *pw ), "=r"( r ): // outputs (%0, %1)\r
-            "1"( dv ): // inputs (%2 == %1)\r
-            "memory", "cc" // clobbers\r
-        );\r
-\r
-        return r;\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
+
+//
+//  boost/detail/atomic_count_gcc_x86.hpp
+//
+//  atomic_count for g++ on 486+/AMD64
+//
+//  Copyright 2007 Peter Dimov
+//
+//  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)
+//
+
+namespace boost
+{
+
+namespace detail
+{
+
+class atomic_count
+{
+public:
+
+    explicit atomic_count( long v ) : value_( static_cast< int >( v ) ) {}
+
+    long operator++()
+    {
+        return atomic_exchange_and_add( &value_, +1 ) + 1;
+    }
+
+    long operator--()
+    {
+        return atomic_exchange_and_add( &value_, -1 ) - 1;
+    }
+
+    operator long() const
+    {
+        return atomic_exchange_and_add( &value_, 0 );
+    }
+
+private:
+
+    atomic_count(atomic_count const &);
+    atomic_count & operator=(atomic_count const &);
+
+    mutable int value_;
+
+private:
+
+    static int atomic_exchange_and_add( int * pw, int dv )
+    {
+        // int r = *pw;
+        // *pw += dv;
+        // return r;
+
+        int r;
+
+        __asm__ __volatile__
+        (
+            "lock\n\t"
+            "xadd %1, %0":
+            "+m"( *pw ), "=r"( r ): // outputs (%0, %1)
+            "1"( dv ): // inputs (%2 == %1)
+            "memory", "cc" // clobbers
+        );
+
+        return r;
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
index 5e89faaf055450f287423d83bb7766640cecfab1..05f78673c68e842084dd9197b470fa0d1024e3fc 100644 (file)
@@ -1,96 +1,96 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED\r
-\r
-//\r
-//  boost/detail/atomic_count_pthreads.hpp\r
-//\r
-//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <pthread.h>\r
-\r
-//\r
-//  The generic pthread_mutex-based implementation sometimes leads to\r
-//    inefficiencies. Example: a class with two atomic_count members\r
-//    can get away with a single mutex.\r
-//\r
-//  Users can detect this situation by checking BOOST_AC_USE_PTHREADS.\r
-//\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class atomic_count\r
-{\r
-private:\r
-\r
-    class scoped_lock\r
-    {\r
-    public:\r
-\r
-        scoped_lock(pthread_mutex_t & m): m_(m)\r
-        {\r
-            pthread_mutex_lock(&m_);\r
-        }\r
-\r
-        ~scoped_lock()\r
-        {\r
-            pthread_mutex_unlock(&m_);\r
-        }\r
-\r
-    private:\r
-\r
-        pthread_mutex_t & m_;\r
-    };\r
-\r
-public:\r
-\r
-    explicit atomic_count(long v): value_(v)\r
-    {\r
-        pthread_mutex_init(&mutex_, 0);\r
-    }\r
-\r
-    ~atomic_count()\r
-    {\r
-        pthread_mutex_destroy(&mutex_);\r
-    }\r
-\r
-    long operator++()\r
-    {\r
-        scoped_lock lock(mutex_);\r
-        return ++value_;\r
-    }\r
-\r
-    long operator--()\r
-    {\r
-        scoped_lock lock(mutex_);\r
-        return --value_;\r
-    }\r
-\r
-    operator long() const\r
-    {\r
-        scoped_lock lock(mutex_);\r
-        return value_;\r
-    }\r
-\r
-private:\r
-\r
-    atomic_count(atomic_count const &);\r
-    atomic_count & operator=(atomic_count const &);\r
-\r
-    mutable pthread_mutex_t mutex_;\r
-    long value_;\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
+
+//
+//  boost/detail/atomic_count_pthreads.hpp
+//
+//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
+//
+// 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)
+//
+
+#include <pthread.h>
+
+//
+//  The generic pthread_mutex-based implementation sometimes leads to
+//    inefficiencies. Example: a class with two atomic_count members
+//    can get away with a single mutex.
+//
+//  Users can detect this situation by checking BOOST_AC_USE_PTHREADS.
+//
+
+namespace boost
+{
+
+namespace detail
+{
+
+class atomic_count
+{
+private:
+
+    class scoped_lock
+    {
+    public:
+
+        scoped_lock(pthread_mutex_t & m): m_(m)
+        {
+            pthread_mutex_lock(&m_);
+        }
+
+        ~scoped_lock()
+        {
+            pthread_mutex_unlock(&m_);
+        }
+
+    private:
+
+        pthread_mutex_t & m_;
+    };
+
+public:
+
+    explicit atomic_count(long v): value_(v)
+    {
+        pthread_mutex_init(&mutex_, 0);
+    }
+
+    ~atomic_count()
+    {
+        pthread_mutex_destroy(&mutex_);
+    }
+
+    long operator++()
+    {
+        scoped_lock lock(mutex_);
+        return ++value_;
+    }
+
+    long operator--()
+    {
+        scoped_lock lock(mutex_);
+        return --value_;
+    }
+
+    operator long() const
+    {
+        scoped_lock lock(mutex_);
+        return value_;
+    }
+
+private:
+
+    atomic_count(atomic_count const &);
+    atomic_count & operator=(atomic_count const &);
+
+    mutable pthread_mutex_t mutex_;
+    long value_;
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
index f0f430812ecc070e1351c4c790df7223bbf0d7a3..a13bcfb42302c4427a9c00caa6afca9a6b7b5b37 100644 (file)
@@ -1,59 +1,59 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SOLARIS_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SOLARIS_HPP_INCLUDED\r
-\r
-//\r
-//  boost/detail/atomic_count_solaris.hpp\r
-//   based on: boost/detail/atomic_count_win32.hpp\r
-//\r
-//  Copyright (c) 2001-2005 Peter Dimov\r
-//  Copyright (c) 2006 Michael van der Westhuizen\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <atomic.h>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class atomic_count\r
-{\r
-public:\r
-\r
-    explicit atomic_count( uint32_t v ): value_( v )\r
-    {\r
-    }\r
-\r
-    long operator++()\r
-    {\r
-        return atomic_inc_32_nv( &value_ );\r
-    }\r
-\r
-    long operator--()\r
-    {\r
-        return atomic_dec_32_nv( &value_ );\r
-    }\r
-\r
-    operator uint32_t() const\r
-    {\r
-        return static_cast<uint32_t const volatile &>( value_ );\r
-    }\r
-\r
-private:\r
-\r
-    atomic_count( atomic_count const & );\r
-    atomic_count & operator=( atomic_count const & );\r
-\r
-    uint32_t value_;\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SOLARIS_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SOLARIS_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SOLARIS_HPP_INCLUDED
+
+//
+//  boost/detail/atomic_count_solaris.hpp
+//   based on: boost/detail/atomic_count_win32.hpp
+//
+//  Copyright (c) 2001-2005 Peter Dimov
+//  Copyright (c) 2006 Michael van der Westhuizen
+//
+// 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)
+//
+
+#include <atomic.h>
+
+namespace boost
+{
+
+namespace detail
+{
+
+class atomic_count
+{
+public:
+
+    explicit atomic_count( uint32_t v ): value_( v )
+    {
+    }
+
+    long operator++()
+    {
+        return atomic_inc_32_nv( &value_ );
+    }
+
+    long operator--()
+    {
+        return atomic_dec_32_nv( &value_ );
+    }
+
+    operator uint32_t() const
+    {
+        return static_cast<uint32_t const volatile &>( value_ );
+    }
+
+private:
+
+    atomic_count( atomic_count const & );
+    atomic_count & operator=( atomic_count const & );
+
+    uint32_t value_;
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SOLARIS_HPP_INCLUDED
index 521dbe81a99e6f4826183f20a7dc2162975276d7..b6359b5bcf06f6013ba15e6f2a6d13c019e1aa70 100644 (file)
@@ -1,61 +1,61 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED\r
-\r
-//\r
-//  boost/detail/atomic_count_sync.hpp\r
-//\r
-//  atomic_count for g++ 4.1+\r
-//\r
-//  http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Atomic-Builtins.html\r
-//\r
-//  Copyright 2007 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#if defined( __ia64__ ) && defined( __INTEL_COMPILER )\r
-# include <ia64intrin.h>\r
-#endif\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class atomic_count\r
-{\r
-public:\r
-\r
-    explicit atomic_count( long v ) : value_( v ) {}\r
-\r
-    long operator++()\r
-    {\r
-        return __sync_add_and_fetch( &value_, 1 );\r
-    }\r
-\r
-    long operator--()\r
-    {\r
-        return __sync_add_and_fetch( &value_, -1 );\r
-    }\r
-\r
-    operator long() const\r
-    {\r
-        return __sync_fetch_and_add( &value_, 0 );\r
-    }\r
-\r
-private:\r
-\r
-    atomic_count(atomic_count const &);\r
-    atomic_count & operator=(atomic_count const &);\r
-\r
-    mutable long value_;\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
+
+//
+//  boost/detail/atomic_count_sync.hpp
+//
+//  atomic_count for g++ 4.1+
+//
+//  http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Atomic-Builtins.html
+//
+//  Copyright 2007 Peter Dimov
+//
+//  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( __ia64__ ) && defined( __INTEL_COMPILER )
+# include <ia64intrin.h>
+#endif
+
+namespace boost
+{
+
+namespace detail
+{
+
+class atomic_count
+{
+public:
+
+    explicit atomic_count( long v ) : value_( v ) {}
+
+    long operator++()
+    {
+        return __sync_add_and_fetch( &value_, 1 );
+    }
+
+    long operator--()
+    {
+        return __sync_add_and_fetch( &value_, -1 );
+    }
+
+    operator long() const
+    {
+        return __sync_fetch_and_add( &value_, 0 );
+    }
+
+private:
+
+    atomic_count(atomic_count const &);
+    atomic_count & operator=(atomic_count const &);
+
+    mutable long value_;
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
index 70edce98a85c151a5607b431af6a5a2b85f5df3a..60a056943b6646f3e910f81336919464e8423cf6 100644 (file)
@@ -1,63 +1,63 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  boost/detail/atomic_count_win32.hpp\r
-//\r
-//  Copyright (c) 2001-2005 Peter Dimov\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <boost/detail/interlocked.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class atomic_count\r
-{\r
-public:\r
-\r
-    explicit atomic_count( long v ): value_( v )\r
-    {\r
-    }\r
-\r
-    long operator++()\r
-    {\r
-        return BOOST_INTERLOCKED_INCREMENT( &value_ );\r
-    }\r
-\r
-    long operator--()\r
-    {\r
-        return BOOST_INTERLOCKED_DECREMENT( &value_ );\r
-    }\r
-\r
-    operator long() const\r
-    {\r
-        return static_cast<long const volatile &>( value_ );\r
-    }\r
-\r
-private:\r
-\r
-    atomic_count( atomic_count const & );\r
-    atomic_count & operator=( atomic_count const & );\r
-\r
-    long value_;\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  boost/detail/atomic_count_win32.hpp
+//
+//  Copyright (c) 2001-2005 Peter Dimov
+//
+// 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)
+//
+
+#include <boost/detail/interlocked.hpp>
+
+namespace boost
+{
+
+namespace detail
+{
+
+class atomic_count
+{
+public:
+
+    explicit atomic_count( long v ): value_( v )
+    {
+    }
+
+    long operator++()
+    {
+        return BOOST_INTERLOCKED_INCREMENT( &value_ );
+    }
+
+    long operator--()
+    {
+        return BOOST_INTERLOCKED_DECREMENT( &value_ );
+    }
+
+    operator long() const
+    {
+        return static_cast<long const volatile &>( value_ );
+    }
+
+private:
+
+    atomic_count( atomic_count const & );
+    atomic_count & operator=( atomic_count const & );
+
+    long value_;
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
index f6c159e6ab5926ec52d0a8e8d58e596611ea9cca..d46b1932c2b862ea597d4228a758d75470d64ba2 100644 (file)
@@ -1,42 +1,42 @@
-#ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  boost/detail/lightweight_mutex.hpp - lightweight mutex\r
-//\r
-//  Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd.\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  typedef <unspecified> boost::detail::lightweight_mutex;\r
-//\r
-//  boost::detail::lightweight_mutex is a header-only implementation of\r
-//  a subset of the Mutex concept requirements:\r
-//\r
-//  http://www.boost.org/doc/html/threads/concepts.html#threads.concepts.Mutex\r
-//\r
-//  It maps to a CRITICAL_SECTION on Windows or a pthread_mutex on POSIX.\r
-//\r
-\r
-#include <boost/config.hpp>\r
-\r
-#if !defined(BOOST_HAS_THREADS)\r
-#  include <boost/smart_ptr/detail/lwm_nop.hpp>\r
-#elif defined(BOOST_HAS_PTHREADS)\r
-#  include <boost/smart_ptr/detail/lwm_pthreads.hpp>\r
-#elif defined(BOOST_HAS_WINTHREADS) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)\r
-#  include <boost/smart_ptr/detail/lwm_win32_cs.hpp>\r
-#else\r
-// Use #define BOOST_DISABLE_THREADS to avoid the error\r
-#  error Unrecognized threading platform\r
-#endif\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  boost/detail/lightweight_mutex.hpp - lightweight mutex
+//
+//  Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd.
+//
+// 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)
+//
+//  typedef <unspecified> boost::detail::lightweight_mutex;
+//
+//  boost::detail::lightweight_mutex is a header-only implementation of
+//  a subset of the Mutex concept requirements:
+//
+//  http://www.boost.org/doc/html/threads/concepts.html#threads.concepts.Mutex
+//
+//  It maps to a CRITICAL_SECTION on Windows or a pthread_mutex on POSIX.
+//
+
+#include <boost/config.hpp>
+
+#if !defined(BOOST_HAS_THREADS)
+#  include <boost/smart_ptr/detail/lwm_nop.hpp>
+#elif defined(BOOST_HAS_PTHREADS)
+#  include <boost/smart_ptr/detail/lwm_pthreads.hpp>
+#elif defined(BOOST_HAS_WINTHREADS) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#  include <boost/smart_ptr/detail/lwm_win32_cs.hpp>
+#else
+// Use #define BOOST_DISABLE_THREADS to avoid the error
+#  error Unrecognized threading platform
+#endif
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
index cc1e97fd955ab9b352c632eff54bc9efde2b46a6..521a88ec1cdba0a44c8187b4603f8658442db9cc 100644 (file)
@@ -1,37 +1,37 @@
-#ifndef BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  boost/detail/lwm_nop.hpp\r
-//\r
-//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class lightweight_mutex\r
-{\r
-public:\r
-\r
-    typedef lightweight_mutex scoped_lock;\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  boost/detail/lwm_nop.hpp
+//
+//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
+//
+// 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)
+//
+
+namespace boost
+{
+
+namespace detail
+{
+
+class lightweight_mutex
+{
+public:
+
+    typedef lightweight_mutex scoped_lock;
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED
index 16a05f341f6f0310ec84c678d4046f813f6033b8..fc20dbb14515f6bb1f7ac3e54aca73ad63864571 100644 (file)
@@ -1,86 +1,86 @@
-#ifndef BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  boost/detail/lwm_pthreads.hpp\r
-//\r
-//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <pthread.h>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class lightweight_mutex\r
-{\r
-private:\r
-\r
-    pthread_mutex_t m_;\r
-\r
-    lightweight_mutex(lightweight_mutex const &);\r
-    lightweight_mutex & operator=(lightweight_mutex const &);\r
-\r
-public:\r
-\r
-    lightweight_mutex()\r
-    {\r
-\r
-// HPUX 10.20 / DCE has a nonstandard pthread_mutex_init\r
-\r
-#if defined(__hpux) && defined(_DECTHREADS_)\r
-        pthread_mutex_init(&m_, pthread_mutexattr_default);\r
-#else\r
-        pthread_mutex_init(&m_, 0);\r
-#endif\r
-    }\r
-\r
-    ~lightweight_mutex()\r
-    {\r
-        pthread_mutex_destroy(&m_);\r
-    }\r
-\r
-    class scoped_lock;\r
-    friend class scoped_lock;\r
-\r
-    class scoped_lock\r
-    {\r
-    private:\r
-\r
-        pthread_mutex_t & m_;\r
-\r
-        scoped_lock(scoped_lock const &);\r
-        scoped_lock & operator=(scoped_lock const &);\r
-\r
-    public:\r
-\r
-        scoped_lock(lightweight_mutex & m): m_(m.m_)\r
-        {\r
-            pthread_mutex_lock(&m_);\r
-        }\r
-\r
-        ~scoped_lock()\r
-        {\r
-            pthread_mutex_unlock(&m_);\r
-        }\r
-    };\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  boost/detail/lwm_pthreads.hpp
+//
+//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
+//
+// 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)
+//
+
+#include <pthread.h>
+
+namespace boost
+{
+
+namespace detail
+{
+
+class lightweight_mutex
+{
+private:
+
+    pthread_mutex_t m_;
+
+    lightweight_mutex(lightweight_mutex const &);
+    lightweight_mutex & operator=(lightweight_mutex const &);
+
+public:
+
+    lightweight_mutex()
+    {
+
+// HPUX 10.20 / DCE has a nonstandard pthread_mutex_init
+
+#if defined(__hpux) && defined(_DECTHREADS_)
+        pthread_mutex_init(&m_, pthread_mutexattr_default);
+#else
+        pthread_mutex_init(&m_, 0);
+#endif
+    }
+
+    ~lightweight_mutex()
+    {
+        pthread_mutex_destroy(&m_);
+    }
+
+    class scoped_lock;
+    friend class scoped_lock;
+
+    class scoped_lock
+    {
+    private:
+
+        pthread_mutex_t & m_;
+
+        scoped_lock(scoped_lock const &);
+        scoped_lock & operator=(scoped_lock const &);
+
+    public:
+
+        scoped_lock(lightweight_mutex & m): m_(m.m_)
+        {
+            pthread_mutex_lock(&m_);
+        }
+
+        ~scoped_lock()
+        {
+            pthread_mutex_unlock(&m_);
+        }
+    };
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED
index f2cbb9a3b36ee43a7ba8b04e90dac6a64e307472..00477e49f8fec71ecc19e85c6e3646b7a3a049a9 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  boost/detail/lwm_win32_cs.hpp\r
-//\r
-//  Copyright (c) 2002, 2003 Peter Dimov\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#ifdef BOOST_USE_WINDOWS_H\r
-#  include <windows.h>\r
-#endif\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-#ifndef BOOST_USE_WINDOWS_H\r
-\r
-struct critical_section\r
-{\r
-    struct critical_section_debug * DebugInfo;\r
-    long LockCount;\r
-    long RecursionCount;\r
-    void * OwningThread;\r
-    void * LockSemaphore;\r
-#if defined(_WIN64)\r
-    unsigned __int64 SpinCount;\r
-#else\r
-    unsigned long SpinCount;\r
-#endif\r
-};\r
-\r
-extern "C" __declspec(dllimport) void __stdcall InitializeCriticalSection(critical_section *);\r
-extern "C" __declspec(dllimport) void __stdcall EnterCriticalSection(critical_section *);\r
-extern "C" __declspec(dllimport) void __stdcall LeaveCriticalSection(critical_section *);\r
-extern "C" __declspec(dllimport) void __stdcall DeleteCriticalSection(critical_section *);\r
-\r
-#else\r
-\r
-typedef ::CRITICAL_SECTION critical_section;\r
-\r
-#endif // #ifndef BOOST_USE_WINDOWS_H\r
-\r
-class lightweight_mutex\r
-{\r
-private:\r
-\r
-    critical_section cs_;\r
-\r
-    lightweight_mutex(lightweight_mutex const &);\r
-    lightweight_mutex & operator=(lightweight_mutex const &);\r
-\r
-public:\r
-\r
-    lightweight_mutex()\r
-    {\r
-        InitializeCriticalSection(&cs_);\r
-    }\r
-\r
-    ~lightweight_mutex()\r
-    {\r
-        DeleteCriticalSection(&cs_);\r
-    }\r
-\r
-    class scoped_lock;\r
-    friend class scoped_lock;\r
-\r
-    class scoped_lock\r
-    {\r
-    private:\r
-\r
-        lightweight_mutex & m_;\r
-\r
-        scoped_lock(scoped_lock const &);\r
-        scoped_lock & operator=(scoped_lock const &);\r
-\r
-    public:\r
-\r
-        explicit scoped_lock(lightweight_mutex & m): m_(m)\r
-        {\r
-            EnterCriticalSection(&m_.cs_);\r
-        }\r
-\r
-        ~scoped_lock()\r
-        {\r
-            LeaveCriticalSection(&m_.cs_);\r
-        }\r
-    };\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  boost/detail/lwm_win32_cs.hpp
+//
+//  Copyright (c) 2002, 2003 Peter Dimov
+//
+// 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)
+//
+
+#ifdef BOOST_USE_WINDOWS_H
+#  include <windows.h>
+#endif
+
+namespace boost
+{
+
+namespace detail
+{
+
+#ifndef BOOST_USE_WINDOWS_H
+
+struct critical_section
+{
+    struct critical_section_debug * DebugInfo;
+    long LockCount;
+    long RecursionCount;
+    void * OwningThread;
+    void * LockSemaphore;
+#if defined(_WIN64)
+    unsigned __int64 SpinCount;
+#else
+    unsigned long SpinCount;
+#endif
+};
+
+extern "C" __declspec(dllimport) void __stdcall InitializeCriticalSection(critical_section *);
+extern "C" __declspec(dllimport) void __stdcall EnterCriticalSection(critical_section *);
+extern "C" __declspec(dllimport) void __stdcall LeaveCriticalSection(critical_section *);
+extern "C" __declspec(dllimport) void __stdcall DeleteCriticalSection(critical_section *);
+
+#else
+
+typedef ::CRITICAL_SECTION critical_section;
+
+#endif // #ifndef BOOST_USE_WINDOWS_H
+
+class lightweight_mutex
+{
+private:
+
+    critical_section cs_;
+
+    lightweight_mutex(lightweight_mutex const &);
+    lightweight_mutex & operator=(lightweight_mutex const &);
+
+public:
+
+    lightweight_mutex()
+    {
+        InitializeCriticalSection(&cs_);
+    }
+
+    ~lightweight_mutex()
+    {
+        DeleteCriticalSection(&cs_);
+    }
+
+    class scoped_lock;
+    friend class scoped_lock;
+
+    class scoped_lock
+    {
+    private:
+
+        lightweight_mutex & m_;
+
+        scoped_lock(scoped_lock const &);
+        scoped_lock & operator=(scoped_lock const &);
+
+    public:
+
+        explicit scoped_lock(lightweight_mutex & m): m_(m)
+        {
+            EnterCriticalSection(&m_.cs_);
+        }
+
+        ~scoped_lock()
+        {
+            LeaveCriticalSection(&m_.cs_);
+        }
+    };
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
index a4bc752863352e975e5bebcd8ab301cd90c88549..842a05d02bc20b1d1a616c9b283d0e3ef368061f 100644 (file)
@@ -1,56 +1,56 @@
-//  This header intentionally has no include guards.\r
-//\r
-//  Copyright (c) 2001-2009 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt\r
-\r
-#if ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570) ) || defined(__CINT__)\r
-\r
-    operator bool () const\r
-    {\r
-        return px != 0;\r
-    }\r
-\r
-#elif defined( _MANAGED )\r
-\r
-    static void unspecified_bool( this_type*** )\r
-    {\r
-    }\r
-\r
-    typedef void (*unspecified_bool_type)( this_type*** );\r
-\r
-    operator unspecified_bool_type() const // never throws\r
-    {\r
-        return px == 0? 0: unspecified_bool;\r
-    }\r
-\r
-#elif \\r
-    ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \\r
-    ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \\r
-    ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) )\r
-\r
-    typedef T * (this_type::*unspecified_bool_type)() const;\r
-\r
-    operator unspecified_bool_type() const // never throws\r
-    {\r
-        return px == 0? 0: &this_type::get;\r
-    }\r
-\r
-#else\r
-\r
-    typedef T * this_type::*unspecified_bool_type;\r
-\r
-    operator unspecified_bool_type() const // never throws\r
-    {\r
-        return px == 0? 0: &this_type::px;\r
-    }\r
-\r
-#endif\r
-\r
-    // operator! is redundant, but some compilers need it\r
-    bool operator! () const // never throws\r
-    {\r
-        return px == 0;\r
-    }\r
+//  This header intentionally has no include guards.
+//
+//  Copyright (c) 2001-2009 Peter Dimov
+//
+//  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(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570) ) || defined(__CINT__)
+
+    operator bool () const
+    {
+        return px != 0;
+    }
+
+#elif defined( _MANAGED )
+
+    static void unspecified_bool( this_type*** )
+    {
+    }
+
+    typedef void (*unspecified_bool_type)( this_type*** );
+
+    operator unspecified_bool_type() const // never throws
+    {
+        return px == 0? 0: unspecified_bool;
+    }
+
+#elif \
+    ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \
+    ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \
+    ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) )
+
+    typedef T * (this_type::*unspecified_bool_type)() const;
+
+    operator unspecified_bool_type() const // never throws
+    {
+        return px == 0? 0: &this_type::get;
+    }
+
+#else
+
+    typedef T * this_type::*unspecified_bool_type;
+
+    operator unspecified_bool_type() const // never throws
+    {
+        return px == 0? 0: &this_type::px;
+    }
+
+#endif
+
+    // operator! is redundant, but some compilers need it
+    bool operator! () const // never throws
+    {
+        return px == 0;
+    }
index 5025f52259de849e3bb88201f20162c0779fcc0f..6d136f82d73f2dbb25561260ecd9d0aa6c1978c3 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  detail/quick_allocator.hpp\r
-//\r
-//  Copyright (c) 2003 David Abrahams\r
-//  Copyright (c) 2003 Peter Dimov\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <boost/config.hpp>\r
-\r
-#include <boost/smart_ptr/detail/lightweight_mutex.hpp>\r
-#include <boost/type_traits/type_with_alignment.hpp>\r
-#include <boost/type_traits/alignment_of.hpp>\r
-\r
-#include <new>              // ::operator new, ::operator delete\r
-#include <cstddef>          // std::size_t\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-template<unsigned size, unsigned align_> union freeblock\r
-{\r
-    typedef typename boost::type_with_alignment<align_>::type aligner_type;\r
-    aligner_type aligner;\r
-    char bytes[size];\r
-    freeblock * next;\r
-};\r
-\r
-template<unsigned size, unsigned align_> struct allocator_impl\r
-{\r
-    typedef freeblock<size, align_> block;\r
-\r
-    // It may seem odd to use such small pages.\r
-    //\r
-    // However, on a typical Windows implementation that uses\r
-    // the OS allocator, "normal size" pages interact with the\r
-    // "ordinary" operator new, slowing it down dramatically.\r
-    //\r
-    // 512 byte pages are handled by the small object allocator,\r
-    // and don't interfere with ::new.\r
-    //\r
-    // The other alternative is to use much bigger pages (1M.)\r
-    //\r
-    // It is surprisingly easy to hit pathological behavior by\r
-    // varying the page size. g++ 2.96 on Red Hat Linux 7.2,\r
-    // for example, passionately dislikes 496. 512 seems OK.\r
-\r
-#if defined(BOOST_QA_PAGE_SIZE)\r
-\r
-    enum { items_per_page = BOOST_QA_PAGE_SIZE / size };\r
-\r
-#else\r
-\r
-    enum { items_per_page = 512 / size }; // 1048560 / size\r
-\r
-#endif\r
-\r
-#ifdef BOOST_HAS_THREADS\r
-\r
-    static lightweight_mutex & mutex()\r
-    {\r
-        static lightweight_mutex m;\r
-        return m;\r
-    }\r
-\r
-    static lightweight_mutex * mutex_init;\r
-\r
-#endif\r
-\r
-    static block * free;\r
-    static block * page;\r
-    static unsigned last;\r
-\r
-    static inline void * alloc()\r
-    {\r
-#ifdef BOOST_HAS_THREADS\r
-        lightweight_mutex::scoped_lock lock( mutex() );\r
-#endif\r
-        if(block * x = free)\r
-        {\r
-            free = x->next;\r
-            return x;\r
-        }\r
-        else\r
-        {\r
-            if(last == items_per_page)\r
-            {\r
-                // "Listen to me carefully: there is no memory leak"\r
-                // -- Scott Meyers, Eff C++ 2nd Ed Item 10\r
-                page = ::new block[items_per_page];\r
-                last = 0;\r
-            }\r
-\r
-            return &page[last++];\r
-        }\r
-    }\r
-\r
-    static inline void * alloc(std::size_t n)\r
-    {\r
-        if(n != size) // class-specific new called for a derived object\r
-        {\r
-            return ::operator new(n);\r
-        }\r
-        else\r
-        {\r
-#ifdef BOOST_HAS_THREADS\r
-            lightweight_mutex::scoped_lock lock( mutex() );\r
-#endif\r
-            if(block * x = free)\r
-            {\r
-                free = x->next;\r
-                return x;\r
-            }\r
-            else\r
-            {\r
-                if(last == items_per_page)\r
-                {\r
-                    page = ::new block[items_per_page];\r
-                    last = 0;\r
-                }\r
-\r
-                return &page[last++];\r
-            }\r
-        }\r
-    }\r
-\r
-    static inline void dealloc(void * pv)\r
-    {\r
-        if(pv != 0) // 18.4.1.1/13\r
-        {\r
-#ifdef BOOST_HAS_THREADS\r
-            lightweight_mutex::scoped_lock lock( mutex() );\r
-#endif\r
-            block * pb = static_cast<block *>(pv);\r
-            pb->next = free;\r
-            free = pb;\r
-        }\r
-    }\r
-\r
-    static inline void dealloc(void * pv, std::size_t n)\r
-    {\r
-        if(n != size) // class-specific delete called for a derived object\r
-        {\r
-            ::operator delete(pv);\r
-        }\r
-        else if(pv != 0) // 18.4.1.1/13\r
-        {\r
-#ifdef BOOST_HAS_THREADS\r
-            lightweight_mutex::scoped_lock lock( mutex() );\r
-#endif\r
-            block * pb = static_cast<block *>(pv);\r
-            pb->next = free;\r
-            free = pb;\r
-        }\r
-    }\r
-};\r
-\r
-#ifdef BOOST_HAS_THREADS\r
-\r
-template<unsigned size, unsigned align_>\r
-  lightweight_mutex * allocator_impl<size, align_>::mutex_init = &allocator_impl<size, align_>::mutex();\r
-\r
-#endif\r
-\r
-template<unsigned size, unsigned align_>\r
-  freeblock<size, align_> * allocator_impl<size, align_>::free = 0;\r
-\r
-template<unsigned size, unsigned align_>\r
-  freeblock<size, align_> * allocator_impl<size, align_>::page = 0;\r
-\r
-template<unsigned size, unsigned align_>\r
-  unsigned allocator_impl<size, align_>::last = allocator_impl<size, align_>::items_per_page;\r
-\r
-template<class T>\r
-struct quick_allocator: public allocator_impl< sizeof(T), boost::alignment_of<T>::value >\r
-{\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  detail/quick_allocator.hpp
+//
+//  Copyright (c) 2003 David Abrahams
+//  Copyright (c) 2003 Peter Dimov
+//
+// 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)
+//
+
+#include <boost/config.hpp>
+
+#include <boost/smart_ptr/detail/lightweight_mutex.hpp>
+#include <boost/type_traits/type_with_alignment.hpp>
+#include <boost/type_traits/alignment_of.hpp>
+
+#include <new>              // ::operator new, ::operator delete
+#include <cstddef>          // std::size_t
+
+namespace boost
+{
+
+namespace detail
+{
+
+template<unsigned size, unsigned align_> union freeblock
+{
+    typedef typename boost::type_with_alignment<align_>::type aligner_type;
+    aligner_type aligner;
+    char bytes[size];
+    freeblock * next;
+};
+
+template<unsigned size, unsigned align_> struct allocator_impl
+{
+    typedef freeblock<size, align_> block;
+
+    // It may seem odd to use such small pages.
+    //
+    // However, on a typical Windows implementation that uses
+    // the OS allocator, "normal size" pages interact with the
+    // "ordinary" operator new, slowing it down dramatically.
+    //
+    // 512 byte pages are handled by the small object allocator,
+    // and don't interfere with ::new.
+    //
+    // The other alternative is to use much bigger pages (1M.)
+    //
+    // It is surprisingly easy to hit pathological behavior by
+    // varying the page size. g++ 2.96 on Red Hat Linux 7.2,
+    // for example, passionately dislikes 496. 512 seems OK.
+
+#if defined(BOOST_QA_PAGE_SIZE)
+
+    enum { items_per_page = BOOST_QA_PAGE_SIZE / size };
+
+#else
+
+    enum { items_per_page = 512 / size }; // 1048560 / size
+
+#endif
+
+#ifdef BOOST_HAS_THREADS
+
+    static lightweight_mutex & mutex()
+    {
+        static lightweight_mutex m;
+        return m;
+    }
+
+    static lightweight_mutex * mutex_init;
+
+#endif
+
+    static block * free;
+    static block * page;
+    static unsigned last;
+
+    static inline void * alloc()
+    {
+#ifdef BOOST_HAS_THREADS
+        lightweight_mutex::scoped_lock lock( mutex() );
+#endif
+        if(block * x = free)
+        {
+            free = x->next;
+            return x;
+        }
+        else
+        {
+            if(last == items_per_page)
+            {
+                // "Listen to me carefully: there is no memory leak"
+                // -- Scott Meyers, Eff C++ 2nd Ed Item 10
+                page = ::new block[items_per_page];
+                last = 0;
+            }
+
+            return &page[last++];
+        }
+    }
+
+    static inline void * alloc(std::size_t n)
+    {
+        if(n != size) // class-specific new called for a derived object
+        {
+            return ::operator new(n);
+        }
+        else
+        {
+#ifdef BOOST_HAS_THREADS
+            lightweight_mutex::scoped_lock lock( mutex() );
+#endif
+            if(block * x = free)
+            {
+                free = x->next;
+                return x;
+            }
+            else
+            {
+                if(last == items_per_page)
+                {
+                    page = ::new block[items_per_page];
+                    last = 0;
+                }
+
+                return &page[last++];
+            }
+        }
+    }
+
+    static inline void dealloc(void * pv)
+    {
+        if(pv != 0) // 18.4.1.1/13
+        {
+#ifdef BOOST_HAS_THREADS
+            lightweight_mutex::scoped_lock lock( mutex() );
+#endif
+            block * pb = static_cast<block *>(pv);
+            pb->next = free;
+            free = pb;
+        }
+    }
+
+    static inline void dealloc(void * pv, std::size_t n)
+    {
+        if(n != size) // class-specific delete called for a derived object
+        {
+            ::operator delete(pv);
+        }
+        else if(pv != 0) // 18.4.1.1/13
+        {
+#ifdef BOOST_HAS_THREADS
+            lightweight_mutex::scoped_lock lock( mutex() );
+#endif
+            block * pb = static_cast<block *>(pv);
+            pb->next = free;
+            free = pb;
+        }
+    }
+};
+
+#ifdef BOOST_HAS_THREADS
+
+template<unsigned size, unsigned align_>
+  lightweight_mutex * allocator_impl<size, align_>::mutex_init = &allocator_impl<size, align_>::mutex();
+
+#endif
+
+template<unsigned size, unsigned align_>
+  freeblock<size, align_> * allocator_impl<size, align_>::free = 0;
+
+template<unsigned size, unsigned align_>
+  freeblock<size, align_> * allocator_impl<size, align_>::page = 0;
+
+template<unsigned size, unsigned align_>
+  unsigned allocator_impl<size, align_>::last = allocator_impl<size, align_>::items_per_page;
+
+template<class T>
+struct quick_allocator: public allocator_impl< sizeof(T), boost::alignment_of<T>::value >
+{
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
index d811a0562a9da768b5695b52f30c334b029286e9..450c9bcf595a6c818a34d934624f8be99cef95a1 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED\r
-\r
-//\r
-//  detail/shared_array_nmt.hpp - shared_array.hpp without member templates\r
-//\r
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.\r
-//  Copyright (c) 2001, 2002 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  See http://www.boost.org/libs/smart_ptr/shared_array.htm for documentation.\r
-//\r
-\r
-#include <boost/assert.hpp>\r
-#include <boost/checked_delete.hpp>\r
-#include <boost/throw_exception.hpp>\r
-#include <boost/smart_ptr/detail/atomic_count.hpp>\r
-\r
-#include <cstddef>          // for std::ptrdiff_t\r
-#include <algorithm>        // for std::swap\r
-#include <functional>       // for std::less\r
-#include <new>              // for std::bad_alloc\r
-\r
-namespace boost\r
-{\r
-\r
-template<class T> class shared_array\r
-{\r
-private:\r
-\r
-    typedef detail::atomic_count count_type;\r
-\r
-public:\r
-\r
-    typedef T element_type;\r
-      \r
-    explicit shared_array(T * p = 0): px(p)\r
-    {\r
-#ifndef BOOST_NO_EXCEPTIONS\r
-\r
-        try  // prevent leak if new throws\r
-        {\r
-            pn = new count_type(1);\r
-        }\r
-        catch(...)\r
-        {\r
-            boost::checked_array_delete(p);\r
-            throw;\r
-        }\r
-\r
-#else\r
-\r
-        pn = new count_type(1);\r
-\r
-        if(pn == 0)\r
-        {\r
-            boost::checked_array_delete(p);\r
-            boost::throw_exception(std::bad_alloc());\r
-        }\r
-\r
-#endif\r
-    }\r
-\r
-    ~shared_array()\r
-    {\r
-        if(--*pn == 0)\r
-        {\r
-            boost::checked_array_delete(px);\r
-            delete pn;\r
-        }\r
-    }\r
-\r
-    shared_array(shared_array const & r) : px(r.px)  // never throws\r
-    {\r
-        pn = r.pn;\r
-        ++*pn;\r
-    }\r
-\r
-    shared_array & operator=(shared_array const & r)\r
-    {\r
-        shared_array(r).swap(*this);\r
-        return *this;\r
-    }\r
-\r
-    void reset(T * p = 0)\r
-    {\r
-        BOOST_ASSERT(p == 0 || p != px);\r
-        shared_array(p).swap(*this);\r
-    }\r
-\r
-    T * get() const  // never throws\r
-    {\r
-        return px;\r
-    }\r
-\r
-    T & operator[](std::ptrdiff_t i) const  // never throws\r
-    {\r
-        BOOST_ASSERT(px != 0);\r
-        BOOST_ASSERT(i >= 0);\r
-        return px[i];\r
-    }\r
-\r
-    long use_count() const  // never throws\r
-    {\r
-        return *pn;\r
-    }\r
-\r
-    bool unique() const  // never throws\r
-    {\r
-        return *pn == 1;\r
-    }\r
-\r
-    void swap(shared_array<T> & other)  // never throws\r
-    {\r
-        std::swap(px, other.px);\r
-        std::swap(pn, other.pn);\r
-    }\r
-\r
-private:\r
-\r
-    T * px;            // contained pointer\r
-    count_type * pn;   // ptr to reference counter\r
-      \r
-};  // shared_array\r
-\r
-template<class T, class U> inline bool operator==(shared_array<T> const & a, shared_array<U> const & b)\r
-{\r
-    return a.get() == b.get();\r
-}\r
-\r
-template<class T, class U> inline bool operator!=(shared_array<T> const & a, shared_array<U> const & b)\r
-{\r
-    return a.get() != b.get();\r
-}\r
-\r
-template<class T> inline bool operator<(shared_array<T> const & a, shared_array<T> const & b)\r
-{\r
-    return std::less<T*>()(a.get(), b.get());\r
-}\r
-\r
-template<class T> void swap(shared_array<T> & a, shared_array<T> & b)\r
-{\r
-    a.swap(b);\r
-}\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED
+
+//
+//  detail/shared_array_nmt.hpp - shared_array.hpp without member templates
+//
+//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
+//  Copyright (c) 2001, 2002 Peter Dimov
+//
+//  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/smart_ptr/shared_array.htm for documentation.
+//
+
+#include <boost/assert.hpp>
+#include <boost/checked_delete.hpp>
+#include <boost/throw_exception.hpp>
+#include <boost/smart_ptr/detail/atomic_count.hpp>
+
+#include <cstddef>          // for std::ptrdiff_t
+#include <algorithm>        // for std::swap
+#include <functional>       // for std::less
+#include <new>              // for std::bad_alloc
+
+namespace boost
+{
+
+template<class T> class shared_array
+{
+private:
+
+    typedef detail::atomic_count count_type;
+
+public:
+
+    typedef T element_type;
+      
+    explicit shared_array(T * p = 0): px(p)
+    {
+#ifndef BOOST_NO_EXCEPTIONS
+
+        try  // prevent leak if new throws
+        {
+            pn = new count_type(1);
+        }
+        catch(...)
+        {
+            boost::checked_array_delete(p);
+            throw;
+        }
+
+#else
+
+        pn = new count_type(1);
+
+        if(pn == 0)
+        {
+            boost::checked_array_delete(p);
+            boost::throw_exception(std::bad_alloc());
+        }
+
+#endif
+    }
+
+    ~shared_array()
+    {
+        if(--*pn == 0)
+        {
+            boost::checked_array_delete(px);
+            delete pn;
+        }
+    }
+
+    shared_array(shared_array const & r) : px(r.px)  // never throws
+    {
+        pn = r.pn;
+        ++*pn;
+    }
+
+    shared_array & operator=(shared_array const & r)
+    {
+        shared_array(r).swap(*this);
+        return *this;
+    }
+
+    void reset(T * p = 0)
+    {
+        BOOST_ASSERT(p == 0 || p != px);
+        shared_array(p).swap(*this);
+    }
+
+    T * get() const  // never throws
+    {
+        return px;
+    }
+
+    T & operator[](std::ptrdiff_t i) const  // never throws
+    {
+        BOOST_ASSERT(px != 0);
+        BOOST_ASSERT(i >= 0);
+        return px[i];
+    }
+
+    long use_count() const  // never throws
+    {
+        return *pn;
+    }
+
+    bool unique() const  // never throws
+    {
+        return *pn == 1;
+    }
+
+    void swap(shared_array<T> & other)  // never throws
+    {
+        std::swap(px, other.px);
+        std::swap(pn, other.pn);
+    }
+
+private:
+
+    T * px;            // contained pointer
+    count_type * pn;   // ptr to reference counter
+      
+};  // shared_array
+
+template<class T, class U> inline bool operator==(shared_array<T> const & a, shared_array<U> const & b)
+{
+    return a.get() == b.get();
+}
+
+template<class T, class U> inline bool operator!=(shared_array<T> const & a, shared_array<U> const & b)
+{
+    return a.get() != b.get();
+}
+
+template<class T> inline bool operator<(shared_array<T> const & a, shared_array<T> const & b)
+{
+    return std::less<T*>()(a.get(), b.get());
+}
+
+template<class T> void swap(shared_array<T> & a, shared_array<T> & b)
+{
+    a.swap(b);
+}
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED
index ce1beb0c98a677a564e3de1196b84218a6a6421d..4943e37643fc5ed7399128f27303774eca2a22e0 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  detail/shared_count.hpp\r
-//\r
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
-//  Copyright 2004-2005 Peter Dimov\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#ifdef __BORLANDC__\r
-# pragma warn -8027     // Functions containing try are not expanded inline\r
-#endif\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/checked_delete.hpp>\r
-#include <boost/throw_exception.hpp>\r
-#include <boost/smart_ptr/bad_weak_ptr.hpp>\r
-#include <boost/smart_ptr/detail/sp_counted_base.hpp>\r
-#include <boost/smart_ptr/detail/sp_counted_impl.hpp>\r
-#include <boost/detail/workaround.hpp>\r
-// In order to avoid circular dependencies with Boost.TR1\r
-// we make sure that our include of <memory> doesn't try to\r
-// pull in the TR1 headers: that's why we use this header \r
-// rather than including <memory> directly:\r
-#include <boost/config/no_tr1/memory.hpp>  // std::auto_ptr\r
-#include <functional>       // std::less\r
-#include <new>              // std::bad_alloc\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-\r
-int const shared_count_id = 0x2C35F101;\r
-int const   weak_count_id = 0x298C38A4;\r
-\r
-#endif\r
-\r
-struct sp_nothrow_tag {};\r
-\r
-class weak_count;\r
-\r
-class shared_count\r
-{\r
-private:\r
-\r
-    sp_counted_base * pi_;\r
-\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-    int id_;\r
-#endif\r
-\r
-    friend class weak_count;\r
-\r
-public:\r
-\r
-    shared_count(): pi_(0) // nothrow\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        , id_(shared_count_id)\r
-#endif\r
-    {\r
-    }\r
-\r
-    template<class Y> explicit shared_count( Y * p ): pi_( 0 )\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        , id_(shared_count_id)\r
-#endif\r
-    {\r
-#ifndef BOOST_NO_EXCEPTIONS\r
-\r
-        try\r
-        {\r
-            pi_ = new sp_counted_impl_p<Y>( p );\r
-        }\r
-        catch(...)\r
-        {\r
-            boost::checked_delete( p );\r
-            throw;\r
-        }\r
-\r
-#else\r
-\r
-        pi_ = new sp_counted_impl_p<Y>( p );\r
-\r
-        if( pi_ == 0 )\r
-        {\r
-            boost::checked_delete( p );\r
-            boost::throw_exception( std::bad_alloc() );\r
-        }\r
-\r
-#endif\r
-    }\r
-\r
-#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, <= 1200 )\r
-    template<class Y, class D> shared_count( Y * p, D d ): pi_(0)\r
-#else\r
-    template<class P, class D> shared_count( P p, D d ): pi_(0)\r
-#endif\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        , id_(shared_count_id)\r
-#endif\r
-    {\r
-#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, <= 1200 )\r
-        typedef Y* P;\r
-#endif\r
-#ifndef BOOST_NO_EXCEPTIONS\r
-\r
-        try\r
-        {\r
-            pi_ = new sp_counted_impl_pd<P, D>(p, d);\r
-        }\r
-        catch(...)\r
-        {\r
-            d(p); // delete p\r
-            throw;\r
-        }\r
-\r
-#else\r
-\r
-        pi_ = new sp_counted_impl_pd<P, D>(p, d);\r
-\r
-        if(pi_ == 0)\r
-        {\r
-            d(p); // delete p\r
-            boost::throw_exception(std::bad_alloc());\r
-        }\r
-\r
-#endif\r
-    }\r
-\r
-    template<class P, class D, class A> shared_count( P p, D d, A a ): pi_( 0 )\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        , id_(shared_count_id)\r
-#endif\r
-    {\r
-        typedef sp_counted_impl_pda<P, D, A> impl_type;\r
-        typedef typename A::template rebind< impl_type >::other A2;\r
-\r
-        A2 a2( a );\r
-\r
-#ifndef BOOST_NO_EXCEPTIONS\r
-\r
-        try\r
-        {\r
-            pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );\r
-            new( static_cast< void* >( pi_ ) ) impl_type( p, d, a );\r
-        }\r
-        catch(...)\r
-        {\r
-            d( p );\r
-\r
-            if( pi_ != 0 )\r
-            {\r
-                a2.deallocate( static_cast< impl_type* >( pi_ ), 1 );\r
-            }\r
-\r
-            throw;\r
-        }\r
-\r
-#else\r
-\r
-        pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );\r
-\r
-        if( pi_ != 0 )\r
-        {\r
-            new( static_cast< void* >( pi_ ) ) impl_type( p, d, a );\r
-        }\r
-        else\r
-        {\r
-            d( p );\r
-            boost::throw_exception( std::bad_alloc() );\r
-        }\r
-\r
-#endif\r
-    }\r
-\r
-#ifndef BOOST_NO_AUTO_PTR\r
-\r
-    // auto_ptr<Y> is special cased to provide the strong guarantee\r
-\r
-    template<class Y>\r
-    explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        , id_(shared_count_id)\r
-#endif\r
-    {\r
-#ifdef BOOST_NO_EXCEPTIONS\r
-\r
-        if( pi_ == 0 )\r
-        {\r
-            boost::throw_exception(std::bad_alloc());\r
-        }\r
-\r
-#endif\r
-\r
-        r.release();\r
-    }\r
-\r
-#endif \r
-\r
-    ~shared_count() // nothrow\r
-    {\r
-        if( pi_ != 0 ) pi_->release();\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        id_ = 0;\r
-#endif\r
-    }\r
-\r
-    shared_count(shared_count const & r): pi_(r.pi_) // nothrow\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        , id_(shared_count_id)\r
-#endif\r
-    {\r
-        if( pi_ != 0 ) pi_->add_ref_copy();\r
-    }\r
-\r
-#if defined( BOOST_HAS_RVALUE_REFS )\r
-\r
-    shared_count(shared_count && r): pi_(r.pi_) // nothrow\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        , id_(shared_count_id)\r
-#endif\r
-    {\r
-        r.pi_ = 0;\r
-    }\r
-\r
-#endif\r
-\r
-    explicit shared_count(weak_count const & r); // throws bad_weak_ptr when r.use_count() == 0\r
-    shared_count( weak_count const & r, sp_nothrow_tag ); // constructs an empty *this when r.use_count() == 0\r
-\r
-    shared_count & operator= (shared_count const & r) // nothrow\r
-    {\r
-        sp_counted_base * tmp = r.pi_;\r
-\r
-        if( tmp != pi_ )\r
-        {\r
-            if( tmp != 0 ) tmp->add_ref_copy();\r
-            if( pi_ != 0 ) pi_->release();\r
-            pi_ = tmp;\r
-        }\r
-\r
-        return *this;\r
-    }\r
-\r
-    void swap(shared_count & r) // nothrow\r
-    {\r
-        sp_counted_base * tmp = r.pi_;\r
-        r.pi_ = pi_;\r
-        pi_ = tmp;\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        return pi_ != 0? pi_->use_count(): 0;\r
-    }\r
-\r
-    bool unique() const // nothrow\r
-    {\r
-        return use_count() == 1;\r
-    }\r
-\r
-    bool empty() const // nothrow\r
-    {\r
-        return pi_ == 0;\r
-    }\r
-\r
-    friend inline bool operator==(shared_count const & a, shared_count const & b)\r
-    {\r
-        return a.pi_ == b.pi_;\r
-    }\r
-\r
-    friend inline bool operator<(shared_count const & a, shared_count const & b)\r
-    {\r
-        return std::less<sp_counted_base *>()( a.pi_, b.pi_ );\r
-    }\r
-\r
-    void * get_deleter( sp_typeinfo const & ti ) const\r
-    {\r
-        return pi_? pi_->get_deleter( ti ): 0;\r
-    }\r
-};\r
-\r
-\r
-class weak_count\r
-{\r
-private:\r
-\r
-    sp_counted_base * pi_;\r
-\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-    int id_;\r
-#endif\r
-\r
-    friend class shared_count;\r
-\r
-public:\r
-\r
-    weak_count(): pi_(0) // nothrow\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        , id_(weak_count_id)\r
-#endif\r
-    {\r
-    }\r
-\r
-    weak_count(shared_count const & r): pi_(r.pi_) // nothrow\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        , id_(weak_count_id)\r
-#endif\r
-    {\r
-        if(pi_ != 0) pi_->weak_add_ref();\r
-    }\r
-\r
-    weak_count(weak_count const & r): pi_(r.pi_) // nothrow\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        , id_(weak_count_id)\r
-#endif\r
-    {\r
-        if(pi_ != 0) pi_->weak_add_ref();\r
-    }\r
-\r
-// Move support\r
-\r
-#if defined( BOOST_HAS_RVALUE_REFS )\r
-\r
-    weak_count(weak_count && r): pi_(r.pi_) // nothrow\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        , id_(weak_count_id)\r
-#endif\r
-    {\r
-        r.pi_ = 0;\r
-    }\r
-\r
-#endif\r
-\r
-    ~weak_count() // nothrow\r
-    {\r
-        if(pi_ != 0) pi_->weak_release();\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        id_ = 0;\r
-#endif\r
-    }\r
-\r
-    weak_count & operator= (shared_count const & r) // nothrow\r
-    {\r
-        sp_counted_base * tmp = r.pi_;\r
-\r
-        if( tmp != pi_ )\r
-        {\r
-            if(tmp != 0) tmp->weak_add_ref();\r
-            if(pi_ != 0) pi_->weak_release();\r
-            pi_ = tmp;\r
-        }\r
-\r
-        return *this;\r
-    }\r
-\r
-    weak_count & operator= (weak_count const & r) // nothrow\r
-    {\r
-        sp_counted_base * tmp = r.pi_;\r
-\r
-        if( tmp != pi_ )\r
-        {\r
-            if(tmp != 0) tmp->weak_add_ref();\r
-            if(pi_ != 0) pi_->weak_release();\r
-            pi_ = tmp;\r
-        }\r
-\r
-        return *this;\r
-    }\r
-\r
-    void swap(weak_count & r) // nothrow\r
-    {\r
-        sp_counted_base * tmp = r.pi_;\r
-        r.pi_ = pi_;\r
-        pi_ = tmp;\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        return pi_ != 0? pi_->use_count(): 0;\r
-    }\r
-\r
-    bool empty() const // nothrow\r
-    {\r
-        return pi_ == 0;\r
-    }\r
-\r
-    friend inline bool operator==(weak_count const & a, weak_count const & b)\r
-    {\r
-        return a.pi_ == b.pi_;\r
-    }\r
-\r
-    friend inline bool operator<(weak_count const & a, weak_count const & b)\r
-    {\r
-        return std::less<sp_counted_base *>()(a.pi_, b.pi_);\r
-    }\r
-};\r
-\r
-inline shared_count::shared_count( weak_count const & r ): pi_( r.pi_ )\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        , id_(shared_count_id)\r
-#endif\r
-{\r
-    if( pi_ == 0 || !pi_->add_ref_lock() )\r
-    {\r
-        boost::throw_exception( boost::bad_weak_ptr() );\r
-    }\r
-}\r
-\r
-inline shared_count::shared_count( weak_count const & r, sp_nothrow_tag ): pi_( r.pi_ )\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        , id_(shared_count_id)\r
-#endif\r
-{\r
-    if( pi_ != 0 && !pi_->add_ref_lock() )\r
-    {\r
-        pi_ = 0;\r
-    }\r
-}\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#ifdef __BORLANDC__\r
-# pragma warn .8027     // Functions containing try are not expanded inline\r
-#endif\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  detail/shared_count.hpp
+//
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
+//  Copyright 2004-2005 Peter Dimov
+//
+// 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)
+//
+
+#ifdef __BORLANDC__
+# pragma warn -8027     // Functions containing try are not expanded inline
+#endif
+
+#include <boost/config.hpp>
+#include <boost/checked_delete.hpp>
+#include <boost/throw_exception.hpp>
+#include <boost/smart_ptr/bad_weak_ptr.hpp>
+#include <boost/smart_ptr/detail/sp_counted_base.hpp>
+#include <boost/smart_ptr/detail/sp_counted_impl.hpp>
+#include <boost/detail/workaround.hpp>
+// In order to avoid circular dependencies with Boost.TR1
+// we make sure that our include of <memory> doesn't try to
+// pull in the TR1 headers: that's why we use this header 
+// rather than including <memory> directly:
+#include <boost/config/no_tr1/memory.hpp>  // std::auto_ptr
+#include <functional>       // std::less
+#include <new>              // std::bad_alloc
+
+namespace boost
+{
+
+namespace detail
+{
+
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+
+int const shared_count_id = 0x2C35F101;
+int const   weak_count_id = 0x298C38A4;
+
+#endif
+
+struct sp_nothrow_tag {};
+
+class weak_count;
+
+class shared_count
+{
+private:
+
+    sp_counted_base * pi_;
+
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+    int id_;
+#endif
+
+    friend class weak_count;
+
+public:
+
+    shared_count(): pi_(0) // nothrow
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        , id_(shared_count_id)
+#endif
+    {
+    }
+
+    template<class Y> explicit shared_count( Y * p ): pi_( 0 )
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        , id_(shared_count_id)
+#endif
+    {
+#ifndef BOOST_NO_EXCEPTIONS
+
+        try
+        {
+            pi_ = new sp_counted_impl_p<Y>( p );
+        }
+        catch(...)
+        {
+            boost::checked_delete( p );
+            throw;
+        }
+
+#else
+
+        pi_ = new sp_counted_impl_p<Y>( p );
+
+        if( pi_ == 0 )
+        {
+            boost::checked_delete( p );
+            boost::throw_exception( std::bad_alloc() );
+        }
+
+#endif
+    }
+
+#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, <= 1200 )
+    template<class Y, class D> shared_count( Y * p, D d ): pi_(0)
+#else
+    template<class P, class D> shared_count( P p, D d ): pi_(0)
+#endif
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        , id_(shared_count_id)
+#endif
+    {
+#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, <= 1200 )
+        typedef Y* P;
+#endif
+#ifndef BOOST_NO_EXCEPTIONS
+
+        try
+        {
+            pi_ = new sp_counted_impl_pd<P, D>(p, d);
+        }
+        catch(...)
+        {
+            d(p); // delete p
+            throw;
+        }
+
+#else
+
+        pi_ = new sp_counted_impl_pd<P, D>(p, d);
+
+        if(pi_ == 0)
+        {
+            d(p); // delete p
+            boost::throw_exception(std::bad_alloc());
+        }
+
+#endif
+    }
+
+    template<class P, class D, class A> shared_count( P p, D d, A a ): pi_( 0 )
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        , id_(shared_count_id)
+#endif
+    {
+        typedef sp_counted_impl_pda<P, D, A> impl_type;
+        typedef typename A::template rebind< impl_type >::other A2;
+
+        A2 a2( a );
+
+#ifndef BOOST_NO_EXCEPTIONS
+
+        try
+        {
+            pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );
+            new( static_cast< void* >( pi_ ) ) impl_type( p, d, a );
+        }
+        catch(...)
+        {
+            d( p );
+
+            if( pi_ != 0 )
+            {
+                a2.deallocate( static_cast< impl_type* >( pi_ ), 1 );
+            }
+
+            throw;
+        }
+
+#else
+
+        pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );
+
+        if( pi_ != 0 )
+        {
+            new( static_cast< void* >( pi_ ) ) impl_type( p, d, a );
+        }
+        else
+        {
+            d( p );
+            boost::throw_exception( std::bad_alloc() );
+        }
+
+#endif
+    }
+
+#ifndef BOOST_NO_AUTO_PTR
+
+    // auto_ptr<Y> is special cased to provide the strong guarantee
+
+    template<class Y>
+    explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        , id_(shared_count_id)
+#endif
+    {
+#ifdef BOOST_NO_EXCEPTIONS
+
+        if( pi_ == 0 )
+        {
+            boost::throw_exception(std::bad_alloc());
+        }
+
+#endif
+
+        r.release();
+    }
+
+#endif 
+
+    ~shared_count() // nothrow
+    {
+        if( pi_ != 0 ) pi_->release();
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        id_ = 0;
+#endif
+    }
+
+    shared_count(shared_count const & r): pi_(r.pi_) // nothrow
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        , id_(shared_count_id)
+#endif
+    {
+        if( pi_ != 0 ) pi_->add_ref_copy();
+    }
+
+#if defined( BOOST_HAS_RVALUE_REFS )
+
+    shared_count(shared_count && r): pi_(r.pi_) // nothrow
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        , id_(shared_count_id)
+#endif
+    {
+        r.pi_ = 0;
+    }
+
+#endif
+
+    explicit shared_count(weak_count const & r); // throws bad_weak_ptr when r.use_count() == 0
+    shared_count( weak_count const & r, sp_nothrow_tag ); // constructs an empty *this when r.use_count() == 0
+
+    shared_count & operator= (shared_count const & r) // nothrow
+    {
+        sp_counted_base * tmp = r.pi_;
+
+        if( tmp != pi_ )
+        {
+            if( tmp != 0 ) tmp->add_ref_copy();
+            if( pi_ != 0 ) pi_->release();
+            pi_ = tmp;
+        }
+
+        return *this;
+    }
+
+    void swap(shared_count & r) // nothrow
+    {
+        sp_counted_base * tmp = r.pi_;
+        r.pi_ = pi_;
+        pi_ = tmp;
+    }
+
+    long use_count() const // nothrow
+    {
+        return pi_ != 0? pi_->use_count(): 0;
+    }
+
+    bool unique() const // nothrow
+    {
+        return use_count() == 1;
+    }
+
+    bool empty() const // nothrow
+    {
+        return pi_ == 0;
+    }
+
+    friend inline bool operator==(shared_count const & a, shared_count const & b)
+    {
+        return a.pi_ == b.pi_;
+    }
+
+    friend inline bool operator<(shared_count const & a, shared_count const & b)
+    {
+        return std::less<sp_counted_base *>()( a.pi_, b.pi_ );
+    }
+
+    void * get_deleter( sp_typeinfo const & ti ) const
+    {
+        return pi_? pi_->get_deleter( ti ): 0;
+    }
+};
+
+
+class weak_count
+{
+private:
+
+    sp_counted_base * pi_;
+
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+    int id_;
+#endif
+
+    friend class shared_count;
+
+public:
+
+    weak_count(): pi_(0) // nothrow
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        , id_(weak_count_id)
+#endif
+    {
+    }
+
+    weak_count(shared_count const & r): pi_(r.pi_) // nothrow
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        , id_(weak_count_id)
+#endif
+    {
+        if(pi_ != 0) pi_->weak_add_ref();
+    }
+
+    weak_count(weak_count const & r): pi_(r.pi_) // nothrow
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        , id_(weak_count_id)
+#endif
+    {
+        if(pi_ != 0) pi_->weak_add_ref();
+    }
+
+// Move support
+
+#if defined( BOOST_HAS_RVALUE_REFS )
+
+    weak_count(weak_count && r): pi_(r.pi_) // nothrow
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        , id_(weak_count_id)
+#endif
+    {
+        r.pi_ = 0;
+    }
+
+#endif
+
+    ~weak_count() // nothrow
+    {
+        if(pi_ != 0) pi_->weak_release();
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        id_ = 0;
+#endif
+    }
+
+    weak_count & operator= (shared_count const & r) // nothrow
+    {
+        sp_counted_base * tmp = r.pi_;
+
+        if( tmp != pi_ )
+        {
+            if(tmp != 0) tmp->weak_add_ref();
+            if(pi_ != 0) pi_->weak_release();
+            pi_ = tmp;
+        }
+
+        return *this;
+    }
+
+    weak_count & operator= (weak_count const & r) // nothrow
+    {
+        sp_counted_base * tmp = r.pi_;
+
+        if( tmp != pi_ )
+        {
+            if(tmp != 0) tmp->weak_add_ref();
+            if(pi_ != 0) pi_->weak_release();
+            pi_ = tmp;
+        }
+
+        return *this;
+    }
+
+    void swap(weak_count & r) // nothrow
+    {
+        sp_counted_base * tmp = r.pi_;
+        r.pi_ = pi_;
+        pi_ = tmp;
+    }
+
+    long use_count() const // nothrow
+    {
+        return pi_ != 0? pi_->use_count(): 0;
+    }
+
+    bool empty() const // nothrow
+    {
+        return pi_ == 0;
+    }
+
+    friend inline bool operator==(weak_count const & a, weak_count const & b)
+    {
+        return a.pi_ == b.pi_;
+    }
+
+    friend inline bool operator<(weak_count const & a, weak_count const & b)
+    {
+        return std::less<sp_counted_base *>()(a.pi_, b.pi_);
+    }
+};
+
+inline shared_count::shared_count( weak_count const & r ): pi_( r.pi_ )
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        , id_(shared_count_id)
+#endif
+{
+    if( pi_ == 0 || !pi_->add_ref_lock() )
+    {
+        boost::throw_exception( boost::bad_weak_ptr() );
+    }
+}
+
+inline shared_count::shared_count( weak_count const & r, sp_nothrow_tag ): pi_( r.pi_ )
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        , id_(shared_count_id)
+#endif
+{
+    if( pi_ != 0 && !pi_->add_ref_lock() )
+    {
+        pi_ = 0;
+    }
+}
+
+} // namespace detail
+
+} // namespace boost
+
+#ifdef __BORLANDC__
+# pragma warn .8027     // Functions containing try are not expanded inline
+#endif
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
index 2921f41bda48b54975267a31dcde7ded402aab8d..afc1ec03f1b569a55dcb00d2248088511d788400 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED\r
-\r
-//\r
-//  detail/shared_ptr_nmt.hpp - shared_ptr.hpp without member templates\r
-//\r
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.\r
-//  Copyright (c) 2001, 2002 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation.\r
-//\r
-\r
-#include <boost/assert.hpp>\r
-#include <boost/checked_delete.hpp>\r
-#include <boost/throw_exception.hpp>\r
-#include <boost/smart_ptr/detail/atomic_count.hpp>\r
-\r
-#ifndef BOOST_NO_AUTO_PTR\r
-# include <memory>          // for std::auto_ptr\r
-#endif\r
-\r
-#include <algorithm>        // for std::swap\r
-#include <functional>       // for std::less\r
-#include <new>              // for std::bad_alloc\r
-\r
-namespace boost\r
-{\r
-\r
-template<class T> class shared_ptr\r
-{\r
-private:\r
-\r
-    typedef detail::atomic_count count_type;\r
-\r
-public:\r
-\r
-    typedef T element_type;\r
-    typedef T value_type;\r
-\r
-    explicit shared_ptr(T * p = 0): px(p)\r
-    {\r
-#ifndef BOOST_NO_EXCEPTIONS\r
-\r
-        try  // prevent leak if new throws\r
-        {\r
-            pn = new count_type(1);\r
-        }\r
-        catch(...)\r
-        {\r
-            boost::checked_delete(p);\r
-            throw;\r
-        }\r
-\r
-#else\r
-\r
-        pn = new count_type(1);\r
-\r
-        if(pn == 0)\r
-        {\r
-            boost::checked_delete(p);\r
-            boost::throw_exception(std::bad_alloc());\r
-        }\r
-\r
-#endif\r
-    }\r
-\r
-    ~shared_ptr()\r
-    {\r
-        if(--*pn == 0)\r
-        {\r
-            boost::checked_delete(px);\r
-            delete pn;\r
-        }\r
-    }\r
-\r
-    shared_ptr(shared_ptr const & r): px(r.px)  // never throws\r
-    {\r
-        pn = r.pn;\r
-        ++*pn;\r
-    }\r
-\r
-    shared_ptr & operator=(shared_ptr const & r)\r
-    {\r
-        shared_ptr(r).swap(*this);\r
-        return *this;\r
-    }\r
-\r
-#ifndef BOOST_NO_AUTO_PTR\r
-\r
-    explicit shared_ptr(std::auto_ptr<T> & r)\r
-    { \r
-        pn = new count_type(1); // may throw\r
-        px = r.release(); // fix: moved here to stop leak if new throws\r
-    } \r
-\r
-    shared_ptr & operator=(std::auto_ptr<T> & r)\r
-    {\r
-        shared_ptr(r).swap(*this);\r
-        return *this;\r
-    }\r
-\r
-#endif\r
-\r
-    void reset(T * p = 0)\r
-    {\r
-        BOOST_ASSERT(p == 0 || p != px);\r
-        shared_ptr(p).swap(*this);\r
-    }\r
-\r
-    T & operator*() const  // never throws\r
-    {\r
-        BOOST_ASSERT(px != 0);\r
-        return *px;\r
-    }\r
-\r
-    T * operator->() const  // never throws\r
-    {\r
-        BOOST_ASSERT(px != 0);\r
-        return px;\r
-    }\r
-\r
-    T * get() const  // never throws\r
-    {\r
-        return px;\r
-    }\r
-\r
-    long use_count() const  // never throws\r
-    {\r
-        return *pn;\r
-    }\r
-\r
-    bool unique() const  // never throws\r
-    {\r
-        return *pn == 1;\r
-    }\r
-    \r
-    void swap(shared_ptr<T> & other)  // never throws\r
-    {\r
-        std::swap(px, other.px);\r
-        std::swap(pn, other.pn);\r
-    }\r
-\r
-private:\r
-\r
-    T * px;            // contained pointer\r
-    count_type * pn;   // ptr to reference counter\r
-};\r
-\r
-template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b)\r
-{\r
-    return a.get() == b.get();\r
-}\r
-\r
-template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b)\r
-{\r
-    return a.get() != b.get();\r
-}\r
-\r
-template<class T> inline bool operator<(shared_ptr<T> const & a, shared_ptr<T> const & b)\r
-{\r
-    return std::less<T*>()(a.get(), b.get());\r
-}\r
-\r
-template<class T> void swap(shared_ptr<T> & a, shared_ptr<T> & b)\r
-{\r
-    a.swap(b);\r
-}\r
-\r
-// get_pointer() enables boost::mem_fn to recognize shared_ptr\r
-\r
-template<class T> inline T * get_pointer(shared_ptr<T> const & p)\r
-{\r
-    return p.get();\r
-}\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED
+
+//
+//  detail/shared_ptr_nmt.hpp - shared_ptr.hpp without member templates
+//
+//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
+//  Copyright (c) 2001, 2002 Peter Dimov
+//
+//  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/smart_ptr/shared_ptr.htm for documentation.
+//
+
+#include <boost/assert.hpp>
+#include <boost/checked_delete.hpp>
+#include <boost/throw_exception.hpp>
+#include <boost/smart_ptr/detail/atomic_count.hpp>
+
+#ifndef BOOST_NO_AUTO_PTR
+# include <memory>          // for std::auto_ptr
+#endif
+
+#include <algorithm>        // for std::swap
+#include <functional>       // for std::less
+#include <new>              // for std::bad_alloc
+
+namespace boost
+{
+
+template<class T> class shared_ptr
+{
+private:
+
+    typedef detail::atomic_count count_type;
+
+public:
+
+    typedef T element_type;
+    typedef T value_type;
+
+    explicit shared_ptr(T * p = 0): px(p)
+    {
+#ifndef BOOST_NO_EXCEPTIONS
+
+        try  // prevent leak if new throws
+        {
+            pn = new count_type(1);
+        }
+        catch(...)
+        {
+            boost::checked_delete(p);
+            throw;
+        }
+
+#else
+
+        pn = new count_type(1);
+
+        if(pn == 0)
+        {
+            boost::checked_delete(p);
+            boost::throw_exception(std::bad_alloc());
+        }
+
+#endif
+    }
+
+    ~shared_ptr()
+    {
+        if(--*pn == 0)
+        {
+            boost::checked_delete(px);
+            delete pn;
+        }
+    }
+
+    shared_ptr(shared_ptr const & r): px(r.px)  // never throws
+    {
+        pn = r.pn;
+        ++*pn;
+    }
+
+    shared_ptr & operator=(shared_ptr const & r)
+    {
+        shared_ptr(r).swap(*this);
+        return *this;
+    }
+
+#ifndef BOOST_NO_AUTO_PTR
+
+    explicit shared_ptr(std::auto_ptr<T> & r)
+    { 
+        pn = new count_type(1); // may throw
+        px = r.release(); // fix: moved here to stop leak if new throws
+    } 
+
+    shared_ptr & operator=(std::auto_ptr<T> & r)
+    {
+        shared_ptr(r).swap(*this);
+        return *this;
+    }
+
+#endif
+
+    void reset(T * p = 0)
+    {
+        BOOST_ASSERT(p == 0 || p != px);
+        shared_ptr(p).swap(*this);
+    }
+
+    T & operator*() const  // never throws
+    {
+        BOOST_ASSERT(px != 0);
+        return *px;
+    }
+
+    T * operator->() const  // never throws
+    {
+        BOOST_ASSERT(px != 0);
+        return px;
+    }
+
+    T * get() const  // never throws
+    {
+        return px;
+    }
+
+    long use_count() const  // never throws
+    {
+        return *pn;
+    }
+
+    bool unique() const  // never throws
+    {
+        return *pn == 1;
+    }
+    
+    void swap(shared_ptr<T> & other)  // never throws
+    {
+        std::swap(px, other.px);
+        std::swap(pn, other.pn);
+    }
+
+private:
+
+    T * px;            // contained pointer
+    count_type * pn;   // ptr to reference counter
+};
+
+template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b)
+{
+    return a.get() == b.get();
+}
+
+template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b)
+{
+    return a.get() != b.get();
+}
+
+template<class T> inline bool operator<(shared_ptr<T> const & a, shared_ptr<T> const & b)
+{
+    return std::less<T*>()(a.get(), b.get());
+}
+
+template<class T> void swap(shared_ptr<T> & a, shared_ptr<T> & b)
+{
+    a.swap(b);
+}
+
+// get_pointer() enables boost::mem_fn to recognize shared_ptr
+
+template<class T> inline T * get_pointer(shared_ptr<T> const & p)
+{
+    return p.get();
+}
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED
index b446f203d43c15682de666524fd3fe0ee03b5c56..66e5ec7338aeb326f1fb0b24a0e6d7257bafae91 100644 (file)
@@ -1,76 +1,76 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//  detail/sp_convertible.hpp\r
-//\r
-//  Copyright 2008 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt\r
-\r
-#include <boost/config.hpp>\r
-\r
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( BOOST_NO_SFINAE )\r
-# define BOOST_SP_NO_SP_CONVERTIBLE\r
-#endif\r
-\r
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ < 303 )\r
-# define BOOST_SP_NO_SP_CONVERTIBLE\r
-#endif\r
-\r
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __BORLANDC__ ) && ( __BORLANDC__ <= 0x610 )\r
-# define BOOST_SP_NO_SP_CONVERTIBLE\r
-#endif\r
-\r
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-template< class Y, class T > struct sp_convertible\r
-{\r
-    typedef char (&yes) [1];\r
-    typedef char (&no)  [2];\r
-\r
-    static yes f( T* );\r
-    static no  f( ... );\r
-\r
-    enum _vt { value = sizeof( f( static_cast<Y*>(0) ) ) == sizeof(yes) };\r
-};\r
-\r
-struct sp_empty\r
-{\r
-};\r
-\r
-template< bool > struct sp_enable_if_convertible_impl;\r
-\r
-template<> struct sp_enable_if_convertible_impl<true>\r
-{\r
-    typedef sp_empty type;\r
-};\r
-\r
-template<> struct sp_enable_if_convertible_impl<false>\r
-{\r
-};\r
-\r
-template< class Y, class T > struct sp_enable_if_convertible: public sp_enable_if_convertible_impl< sp_convertible< Y, T >::value >\r
-{\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif // !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//  detail/sp_convertible.hpp
+//
+//  Copyright 2008 Peter Dimov
+//
+//  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
+
+#include <boost/config.hpp>
+
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( BOOST_NO_SFINAE )
+# define BOOST_SP_NO_SP_CONVERTIBLE
+#endif
+
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ < 303 )
+# define BOOST_SP_NO_SP_CONVERTIBLE
+#endif
+
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __BORLANDC__ ) && ( __BORLANDC__ <= 0x610 )
+# define BOOST_SP_NO_SP_CONVERTIBLE
+#endif
+
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+
+namespace boost
+{
+
+namespace detail
+{
+
+template< class Y, class T > struct sp_convertible
+{
+    typedef char (&yes) [1];
+    typedef char (&no)  [2];
+
+    static yes f( T* );
+    static no  f( ... );
+
+    enum _vt { value = sizeof( f( static_cast<Y*>(0) ) ) == sizeof(yes) };
+};
+
+struct sp_empty
+{
+};
+
+template< bool > struct sp_enable_if_convertible_impl;
+
+template<> struct sp_enable_if_convertible_impl<true>
+{
+    typedef sp_empty type;
+};
+
+template<> struct sp_enable_if_convertible_impl<false>
+{
+};
+
+template< class Y, class T > struct sp_enable_if_convertible: public sp_enable_if_convertible_impl< sp_convertible< Y, T >::value >
+{
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif // !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED
index 7302560011e734f11363ac9f76a3abafd28ea01b..cab45cce30dc41e4ee45cd1c151ce6e4fa9410bd 100644 (file)
@@ -1,70 +1,70 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  detail/sp_counted_base.hpp\r
-//\r
-//  Copyright 2005, 2006 Peter Dimov\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/smart_ptr/detail/sp_has_sync.hpp>\r
-\r
-#if defined( BOOST_SP_DISABLE_THREADS )\r
-# include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>\r
-\r
-#elif defined( BOOST_SP_USE_SPINLOCK )\r
-# include <boost/smart_ptr/detail/sp_counted_base_spin.hpp>\r
-\r
-#elif defined( BOOST_SP_USE_PTHREADS )\r
-# include <boost/smart_ptr/detail/sp_counted_base_pt.hpp>\r
-\r
-#elif defined( BOOST_DISABLE_THREADS ) && !defined( BOOST_SP_ENABLE_THREADS ) && !defined( BOOST_DISABLE_WIN32 )\r
-# include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>\r
-\r
-#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) )\r
-# include <boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp>\r
-\r
-#elif defined( __GNUC__ ) && defined( __ia64__ ) && !defined( __INTEL_COMPILER )\r
-# include <boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp>\r
-\r
-#elif defined(__HP_aCC) && defined(__ia64)\r
-# include <boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp>\r
-\r
-#elif defined( __MWERKS__ ) && defined( __POWERPC__ )\r
-# include <boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp>\r
-\r
-#elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) )\r
-# include <boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp>\r
-\r
-#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) )\r
-# include <boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp>\r
-\r
-#elif defined( BOOST_SP_HAS_SYNC )\r
-# include <boost/smart_ptr/detail/sp_counted_base_sync.hpp>\r
-\r
-#elif defined(__GNUC__) && ( defined( __sparcv9 ) || ( defined( __sparcv8 ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 402 ) ) )\r
-# include <boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp>\r
-\r
-#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined(__CYGWIN__)\r
-# include <boost/smart_ptr/detail/sp_counted_base_w32.hpp>\r
-\r
-#elif !defined( BOOST_HAS_THREADS )\r
-# include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>\r
-\r
-#else\r
-# include <boost/smart_ptr/detail/sp_counted_base_spin.hpp>\r
-\r
-#endif\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  detail/sp_counted_base.hpp
+//
+//  Copyright 2005, 2006 Peter Dimov
+//
+// 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)
+//
+
+#include <boost/config.hpp>
+#include <boost/smart_ptr/detail/sp_has_sync.hpp>
+
+#if defined( BOOST_SP_DISABLE_THREADS )
+# include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>
+
+#elif defined( BOOST_SP_USE_SPINLOCK )
+# include <boost/smart_ptr/detail/sp_counted_base_spin.hpp>
+
+#elif defined( BOOST_SP_USE_PTHREADS )
+# include <boost/smart_ptr/detail/sp_counted_base_pt.hpp>
+
+#elif defined( BOOST_DISABLE_THREADS ) && !defined( BOOST_SP_ENABLE_THREADS ) && !defined( BOOST_DISABLE_WIN32 )
+# include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>
+
+#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) )
+# include <boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp>
+
+#elif defined( __GNUC__ ) && defined( __ia64__ ) && !defined( __INTEL_COMPILER )
+# include <boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp>
+
+#elif defined(__HP_aCC) && defined(__ia64)
+# include <boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp>
+
+#elif defined( __MWERKS__ ) && defined( __POWERPC__ )
+# include <boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp>
+
+#elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) )
+# include <boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp>
+
+#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) )
+# include <boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp>
+
+#elif defined( BOOST_SP_HAS_SYNC )
+# include <boost/smart_ptr/detail/sp_counted_base_sync.hpp>
+
+#elif defined(__GNUC__) && ( defined( __sparcv9 ) || ( defined( __sparcv8 ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 402 ) ) )
+# include <boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp>
+
+#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined(__CYGWIN__)
+# include <boost/smart_ptr/detail/sp_counted_base_w32.hpp>
+
+#elif !defined( BOOST_HAS_THREADS )
+# include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>
+
+#else
+# include <boost/smart_ptr/detail/sp_counted_base_spin.hpp>
+
+#endif
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
index 1fe23260cf368cf53ce8d23767b67a185db22430..dffd995b16e6fecfd282124d75f4c72170a60655 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED\r
-\r
-//\r
-//  detail/sp_counted_base_acc_ia64.hpp - aC++ on HP-UX IA64\r
-//\r
-//  Copyright 2007 Baruch Zilber\r
-//  Copyright 2007 Boris Gubenko\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//\r
-//  Lock-free algorithm by Alexander Terekhov\r
-//\r
-\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-#include <machine/sys/inline.h>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-inline void atomic_increment( int * pw )\r
-{\r
-    // ++*pw;\r
-\r
-    _Asm_fetchadd(_FASZ_W, _SEM_REL, pw, +1, _LDHINT_NONE);\r
-} \r
-\r
-inline int atomic_decrement( int * pw )\r
-{\r
-    // return --*pw;\r
-\r
-    int r = static_cast<int>(_Asm_fetchadd(_FASZ_W, _SEM_REL, pw, -1, _LDHINT_NONE));\r
-    if (1 == r)\r
-    {\r
-        _Asm_mf();\r
-    }\r
-    \r
-    return r - 1;\r
-}\r
-\r
-inline int atomic_conditional_increment( int * pw )\r
-{\r
-    // if( *pw != 0 ) ++*pw;\r
-    // return *pw;\r
-\r
-    int v = *pw;\r
-    \r
-    for (;;)\r
-    {\r
-        if (0 == v)\r
-        {\r
-            return 0;\r
-        }\r
-        \r
-        _Asm_mov_to_ar(_AREG_CCV,\r
-                       v,\r
-                       (_UP_CALL_FENCE | _UP_SYS_FENCE | _DOWN_CALL_FENCE | _DOWN_SYS_FENCE));\r
-        int r = static_cast<int>(_Asm_cmpxchg(_SZ_W, _SEM_ACQ, pw, v + 1, _LDHINT_NONE));\r
-        if (r == v)\r
-        {\r
-            return r + 1;\r
-        }\r
-        \r
-        v = r;\r
-    }\r
-}\r
-\r
-class sp_counted_base\r
-{\r
-private:\r
-\r
-    sp_counted_base( sp_counted_base const & );\r
-    sp_counted_base & operator= ( sp_counted_base const & );\r
-\r
-    int use_count_;        // #shared\r
-    int weak_count_;       // #weak + (#shared != 0)\r
-\r
-public:\r
-\r
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
-    {\r
-    }\r
-\r
-    virtual ~sp_counted_base() // nothrow\r
-    {\r
-    }\r
-\r
-    // dispose() is called when use_count_ drops to zero, to release\r
-    // the resources managed by *this.\r
-\r
-    virtual void dispose() = 0; // nothrow\r
-\r
-    // destroy() is called when weak_count_ drops to zero.\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        delete this;\r
-    }\r
-\r
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
-\r
-    void add_ref_copy()\r
-    {\r
-        atomic_increment( &use_count_ );\r
-    }\r
-\r
-    bool add_ref_lock() // true on success\r
-    {\r
-        return atomic_conditional_increment( &use_count_ ) != 0;\r
-    }\r
-\r
-    void release() // nothrow\r
-    {\r
-        if( atomic_decrement( &use_count_ ) == 0 )\r
-        {\r
-            dispose();\r
-            weak_release();\r
-        }\r
-    }\r
-\r
-    void weak_add_ref() // nothrow\r
-    {\r
-        atomic_increment( &weak_count_ );\r
-    }\r
-\r
-    void weak_release() // nothrow\r
-    {\r
-        if( atomic_decrement( &weak_count_ ) == 0 )\r
-        {\r
-            destroy();\r
-        }\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        return static_cast<int const volatile &>( use_count_ ); // TODO use ld.acq here\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED
+
+//
+//  detail/sp_counted_base_acc_ia64.hpp - aC++ on HP-UX IA64
+//
+//  Copyright 2007 Baruch Zilber
+//  Copyright 2007 Boris Gubenko
+//
+//  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)
+//
+//
+//  Lock-free algorithm by Alexander Terekhov
+//
+
+#include <boost/detail/sp_typeinfo.hpp>
+#include <machine/sys/inline.h>
+
+namespace boost
+{
+
+namespace detail
+{
+
+inline void atomic_increment( int * pw )
+{
+    // ++*pw;
+
+    _Asm_fetchadd(_FASZ_W, _SEM_REL, pw, +1, _LDHINT_NONE);
+} 
+
+inline int atomic_decrement( int * pw )
+{
+    // return --*pw;
+
+    int r = static_cast<int>(_Asm_fetchadd(_FASZ_W, _SEM_REL, pw, -1, _LDHINT_NONE));
+    if (1 == r)
+    {
+        _Asm_mf();
+    }
+    
+    return r - 1;
+}
+
+inline int atomic_conditional_increment( int * pw )
+{
+    // if( *pw != 0 ) ++*pw;
+    // return *pw;
+
+    int v = *pw;
+    
+    for (;;)
+    {
+        if (0 == v)
+        {
+            return 0;
+        }
+        
+        _Asm_mov_to_ar(_AREG_CCV,
+                       v,
+                       (_UP_CALL_FENCE | _UP_SYS_FENCE | _DOWN_CALL_FENCE | _DOWN_SYS_FENCE));
+        int r = static_cast<int>(_Asm_cmpxchg(_SZ_W, _SEM_ACQ, pw, v + 1, _LDHINT_NONE));
+        if (r == v)
+        {
+            return r + 1;
+        }
+        
+        v = r;
+    }
+}
+
+class sp_counted_base
+{
+private:
+
+    sp_counted_base( sp_counted_base const & );
+    sp_counted_base & operator= ( sp_counted_base const & );
+
+    int use_count_;        // #shared
+    int weak_count_;       // #weak + (#shared != 0)
+
+public:
+
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
+    {
+    }
+
+    virtual ~sp_counted_base() // nothrow
+    {
+    }
+
+    // dispose() is called when use_count_ drops to zero, to release
+    // the resources managed by *this.
+
+    virtual void dispose() = 0; // nothrow
+
+    // destroy() is called when weak_count_ drops to zero.
+
+    virtual void destroy() // nothrow
+    {
+        delete this;
+    }
+
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
+
+    void add_ref_copy()
+    {
+        atomic_increment( &use_count_ );
+    }
+
+    bool add_ref_lock() // true on success
+    {
+        return atomic_conditional_increment( &use_count_ ) != 0;
+    }
+
+    void release() // nothrow
+    {
+        if( atomic_decrement( &use_count_ ) == 0 )
+        {
+            dispose();
+            weak_release();
+        }
+    }
+
+    void weak_add_ref() // nothrow
+    {
+        atomic_increment( &weak_count_ );
+    }
+
+    void weak_release() // nothrow
+    {
+        if( atomic_decrement( &weak_count_ ) == 0 )
+        {
+            destroy();
+        }
+    }
+
+    long use_count() const // nothrow
+    {
+        return static_cast<int const volatile &>( use_count_ ); // TODO use ld.acq here
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED
index 01c0c454f640ccd65ba7e6fd8d2379c8cfc7ec2f..51ac56a943835ad95fffb8e068d6ff612808a9f2 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  detail/sp_counted_base_cw_ppc.hpp - CodeWarrior on PowerPC\r
-//\r
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
-//  Copyright 2004-2005 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//\r
-//  Lock-free algorithm by Alexander Terekhov\r
-//\r
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)\r
-//  formulation\r
-//\r
-\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-inline void atomic_increment( register long * pw )\r
-{\r
-    register int a;\r
-\r
-    asm\r
-    {\r
-loop:\r
-\r
-    lwarx   a, 0, pw\r
-    addi    a, a, 1\r
-    stwcx.  a, 0, pw\r
-    bne-    loop\r
-    }\r
-}\r
-\r
-inline long atomic_decrement( register long * pw )\r
-{\r
-    register int a;\r
-\r
-    asm\r
-    {\r
-    sync\r
-\r
-loop:\r
-\r
-    lwarx   a, 0, pw\r
-    addi    a, a, -1\r
-    stwcx.  a, 0, pw\r
-    bne-    loop\r
-\r
-    isync\r
-    }\r
-\r
-    return a;\r
-}\r
-\r
-inline long atomic_conditional_increment( register long * pw )\r
-{\r
-    register int a;\r
-\r
-    asm\r
-    {\r
-loop:\r
-\r
-    lwarx   a, 0, pw\r
-    cmpwi   a, 0\r
-    beq     store\r
-\r
-    addi    a, a, 1\r
-\r
-store:\r
-\r
-    stwcx.  a, 0, pw\r
-    bne-    loop\r
-    }\r
-\r
-    return a;\r
-}\r
-\r
-class sp_counted_base\r
-{\r
-private:\r
-\r
-    sp_counted_base( sp_counted_base const & );\r
-    sp_counted_base & operator= ( sp_counted_base const & );\r
-\r
-    long use_count_;        // #shared\r
-    long weak_count_;       // #weak + (#shared != 0)\r
-\r
-public:\r
-\r
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
-    {\r
-    }\r
-\r
-    virtual ~sp_counted_base() // nothrow\r
-    {\r
-    }\r
-\r
-    // dispose() is called when use_count_ drops to zero, to release\r
-    // the resources managed by *this.\r
-\r
-    virtual void dispose() = 0; // nothrow\r
-\r
-    // destroy() is called when weak_count_ drops to zero.\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        delete this;\r
-    }\r
-\r
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
-\r
-    void add_ref_copy()\r
-    {\r
-        atomic_increment( &use_count_ );\r
-    }\r
-\r
-    bool add_ref_lock() // true on success\r
-    {\r
-        return atomic_conditional_increment( &use_count_ ) != 0;\r
-    }\r
-\r
-    void release() // nothrow\r
-    {\r
-        if( atomic_decrement( &use_count_ ) == 0 )\r
-        {\r
-            dispose();\r
-            weak_release();\r
-        }\r
-    }\r
-\r
-    void weak_add_ref() // nothrow\r
-    {\r
-        atomic_increment( &weak_count_ );\r
-    }\r
-\r
-    void weak_release() // nothrow\r
-    {\r
-        if( atomic_decrement( &weak_count_ ) == 0 )\r
-        {\r
-            destroy();\r
-        }\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        return static_cast<long const volatile &>( use_count_ );\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  detail/sp_counted_base_cw_ppc.hpp - CodeWarrior on PowerPC
+//
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
+//  Copyright 2004-2005 Peter Dimov
+//
+//  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)
+//
+//
+//  Lock-free algorithm by Alexander Terekhov
+//
+//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
+//  formulation
+//
+
+#include <boost/detail/sp_typeinfo.hpp>
+
+namespace boost
+{
+
+namespace detail
+{
+
+inline void atomic_increment( register long * pw )
+{
+    register int a;
+
+    asm
+    {
+loop:
+
+    lwarx   a, 0, pw
+    addi    a, a, 1
+    stwcx.  a, 0, pw
+    bne-    loop
+    }
+}
+
+inline long atomic_decrement( register long * pw )
+{
+    register int a;
+
+    asm
+    {
+    sync
+
+loop:
+
+    lwarx   a, 0, pw
+    addi    a, a, -1
+    stwcx.  a, 0, pw
+    bne-    loop
+
+    isync
+    }
+
+    return a;
+}
+
+inline long atomic_conditional_increment( register long * pw )
+{
+    register int a;
+
+    asm
+    {
+loop:
+
+    lwarx   a, 0, pw
+    cmpwi   a, 0
+    beq     store
+
+    addi    a, a, 1
+
+store:
+
+    stwcx.  a, 0, pw
+    bne-    loop
+    }
+
+    return a;
+}
+
+class sp_counted_base
+{
+private:
+
+    sp_counted_base( sp_counted_base const & );
+    sp_counted_base & operator= ( sp_counted_base const & );
+
+    long use_count_;        // #shared
+    long weak_count_;       // #weak + (#shared != 0)
+
+public:
+
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
+    {
+    }
+
+    virtual ~sp_counted_base() // nothrow
+    {
+    }
+
+    // dispose() is called when use_count_ drops to zero, to release
+    // the resources managed by *this.
+
+    virtual void dispose() = 0; // nothrow
+
+    // destroy() is called when weak_count_ drops to zero.
+
+    virtual void destroy() // nothrow
+    {
+        delete this;
+    }
+
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
+
+    void add_ref_copy()
+    {
+        atomic_increment( &use_count_ );
+    }
+
+    bool add_ref_lock() // true on success
+    {
+        return atomic_conditional_increment( &use_count_ ) != 0;
+    }
+
+    void release() // nothrow
+    {
+        if( atomic_decrement( &use_count_ ) == 0 )
+        {
+            dispose();
+            weak_release();
+        }
+    }
+
+    void weak_add_ref() // nothrow
+    {
+        atomic_increment( &weak_count_ );
+    }
+
+    void weak_release() // nothrow
+    {
+        if( atomic_decrement( &weak_count_ ) == 0 )
+        {
+            destroy();
+        }
+    }
+
+    long use_count() const // nothrow
+    {
+        return static_cast<long const volatile &>( use_count_ );
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED
index cc1590180691b29d7ccd0a1d5b686e6f27ae621d..1234e78a6b487c31d97bff845589eef73dc4dff4 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  detail/sp_counted_base_cw_x86.hpp - CodeWarrion on 486+\r
-//\r
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
-//  Copyright 2004-2005 Peter Dimov\r
-//  Copyright 2005 Rene Rivera\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//\r
-//  Lock-free algorithm by Alexander Terekhov\r
-//\r
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)\r
-//  formulation\r
-//\r
-\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-inline int atomic_exchange_and_add( int * pw, int dv )\r
-{\r
-    // int r = *pw;\r
-    // *pw += dv;\r
-    // return r;\r
-\r
-    asm\r
-    {\r
-        mov esi, [pw]\r
-        mov eax, dv\r
-        lock xadd dword ptr [esi], eax\r
-    }\r
-}\r
-\r
-inline void atomic_increment( int * pw )\r
-{\r
-    //atomic_exchange_and_add( pw, 1 );\r
-\r
-    asm\r
-    {\r
-        mov esi, [pw]\r
-        lock inc dword ptr [esi]\r
-    }\r
-}\r
-\r
-inline int atomic_conditional_increment( int * pw )\r
-{\r
-    // int rv = *pw;\r
-    // if( rv != 0 ) ++*pw;\r
-    // return rv;\r
-\r
-    asm\r
-    {\r
-        mov esi, [pw]\r
-        mov eax, dword ptr [esi]\r
-    L0:\r
-        test eax, eax\r
-        je L1\r
-        mov ebx, eax\r
-        inc ebx\r
-        lock cmpxchg dword ptr [esi], ebx\r
-        jne L0\r
-    L1:\r
-    }\r
-}\r
-\r
-class sp_counted_base\r
-{\r
-private:\r
-\r
-    sp_counted_base( sp_counted_base const & );\r
-    sp_counted_base & operator= ( sp_counted_base const & );\r
-\r
-    int use_count_;        // #shared\r
-    int weak_count_;       // #weak + (#shared != 0)\r
-\r
-public:\r
-\r
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
-    {\r
-    }\r
-\r
-    virtual ~sp_counted_base() // nothrow\r
-    {\r
-    }\r
-\r
-    // dispose() is called when use_count_ drops to zero, to release\r
-    // the resources managed by *this.\r
-\r
-    virtual void dispose() = 0; // nothrow\r
-\r
-    // destroy() is called when weak_count_ drops to zero.\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        delete this;\r
-    }\r
-\r
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
-\r
-    void add_ref_copy()\r
-    {\r
-        atomic_increment( &use_count_ );\r
-    }\r
-\r
-    bool add_ref_lock() // true on success\r
-    {\r
-        return atomic_conditional_increment( &use_count_ ) != 0;\r
-    }\r
-\r
-    void release() // nothrow\r
-    {\r
-        if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )\r
-        {\r
-            dispose();\r
-            weak_release();\r
-        }\r
-    }\r
-\r
-    void weak_add_ref() // nothrow\r
-    {\r
-        atomic_increment( &weak_count_ );\r
-    }\r
-\r
-    void weak_release() // nothrow\r
-    {\r
-        if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )\r
-        {\r
-            destroy();\r
-        }\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        return static_cast<int const volatile &>( use_count_ );\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  detail/sp_counted_base_cw_x86.hpp - CodeWarrion on 486+
+//
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
+//  Copyright 2004-2005 Peter Dimov
+//  Copyright 2005 Rene Rivera
+//
+//  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)
+//
+//
+//  Lock-free algorithm by Alexander Terekhov
+//
+//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
+//  formulation
+//
+
+#include <boost/detail/sp_typeinfo.hpp>
+
+namespace boost
+{
+
+namespace detail
+{
+
+inline int atomic_exchange_and_add( int * pw, int dv )
+{
+    // int r = *pw;
+    // *pw += dv;
+    // return r;
+
+    asm
+    {
+        mov esi, [pw]
+        mov eax, dv
+        lock xadd dword ptr [esi], eax
+    }
+}
+
+inline void atomic_increment( int * pw )
+{
+    //atomic_exchange_and_add( pw, 1 );
+
+    asm
+    {
+        mov esi, [pw]
+        lock inc dword ptr [esi]
+    }
+}
+
+inline int atomic_conditional_increment( int * pw )
+{
+    // int rv = *pw;
+    // if( rv != 0 ) ++*pw;
+    // return rv;
+
+    asm
+    {
+        mov esi, [pw]
+        mov eax, dword ptr [esi]
+    L0:
+        test eax, eax
+        je L1
+        mov ebx, eax
+        inc ebx
+        lock cmpxchg dword ptr [esi], ebx
+        jne L0
+    L1:
+    }
+}
+
+class sp_counted_base
+{
+private:
+
+    sp_counted_base( sp_counted_base const & );
+    sp_counted_base & operator= ( sp_counted_base const & );
+
+    int use_count_;        // #shared
+    int weak_count_;       // #weak + (#shared != 0)
+
+public:
+
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
+    {
+    }
+
+    virtual ~sp_counted_base() // nothrow
+    {
+    }
+
+    // dispose() is called when use_count_ drops to zero, to release
+    // the resources managed by *this.
+
+    virtual void dispose() = 0; // nothrow
+
+    // destroy() is called when weak_count_ drops to zero.
+
+    virtual void destroy() // nothrow
+    {
+        delete this;
+    }
+
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
+
+    void add_ref_copy()
+    {
+        atomic_increment( &use_count_ );
+    }
+
+    bool add_ref_lock() // true on success
+    {
+        return atomic_conditional_increment( &use_count_ ) != 0;
+    }
+
+    void release() // nothrow
+    {
+        if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )
+        {
+            dispose();
+            weak_release();
+        }
+    }
+
+    void weak_add_ref() // nothrow
+    {
+        atomic_increment( &weak_count_ );
+    }
+
+    void weak_release() // nothrow
+    {
+        if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )
+        {
+            destroy();
+        }
+    }
+
+    long use_count() const // nothrow
+    {
+        return static_cast<int const volatile &>( use_count_ );
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED
index c7f37d8a19df079c79ed73e6da60f4d34a18cfb6..d122a49bdb2dd879de958b3bca97839901d994b4 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED\r
-\r
-//\r
-//  detail/sp_counted_base_gcc_ia64.hpp - g++ on IA64\r
-//\r
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
-//  Copyright 2004-2006 Peter Dimov\r
-//  Copyright 2005 Ben Hutchings\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//\r
-//  Lock-free algorithm by Alexander Terekhov\r
-//\r
-\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-inline void atomic_increment( int * pw )\r
-{\r
-    // ++*pw;\r
-\r
-    int tmp;\r
-\r
-    // No barrier is required here but fetchadd always has an acquire or\r
-    // release barrier associated with it.  We choose release as it should be\r
-    // cheaper.\r
-    __asm__ ("fetchadd4.rel %0=%1,1" :\r
-         "=r"(tmp), "=m"(*pw) :\r
-         "m"( *pw ));\r
-}\r
-\r
-inline int atomic_decrement( int * pw )\r
-{\r
-    // return --*pw;\r
-\r
-    int rv;\r
-\r
-    __asm__ ("     fetchadd4.rel %0=%1,-1 ;; \n"\r
-             "     cmp.eq        p7,p0=1,%0 ;; \n"\r
-             "(p7) ld4.acq       %0=%1    " :\r
-             "=&r"(rv), "=m"(*pw) :\r
-             "m"( *pw ) :\r
-             "p7");\r
-\r
-    return rv;\r
-}\r
-\r
-inline int atomic_conditional_increment( int * pw )\r
-{\r
-    // if( *pw != 0 ) ++*pw;\r
-    // return *pw;\r
-\r
-    int rv, tmp, tmp2;\r
-\r
-    __asm__ ("0:   ld4          %0=%3           ;; \n"\r
-         "     cmp.eq       p7,p0=0,%0        ;; \n"\r
-         "(p7) br.cond.spnt 1f                \n"\r
-         "     mov          ar.ccv=%0         \n"\r
-         "     add          %1=1,%0           ;; \n"\r
-         "     cmpxchg4.acq %2=%3,%1,ar.ccv ;; \n"\r
-         "     cmp.ne       p7,p0=%0,%2       ;; \n"\r
-         "(p7) br.cond.spnt 0b                \n"\r
-         "     mov          %0=%1             ;; \n"\r
-         "1:" : \r
-         "=&r"(rv), "=&r"(tmp), "=&r"(tmp2), "=m"(*pw) :\r
-         "m"( *pw ) :\r
-         "ar.ccv", "p7");\r
-\r
-    return rv;\r
-}\r
-\r
-class sp_counted_base\r
-{\r
-private:\r
-\r
-    sp_counted_base( sp_counted_base const & );\r
-    sp_counted_base & operator= ( sp_counted_base const & );\r
-\r
-    int use_count_;        // #shared\r
-    int weak_count_;       // #weak + (#shared != 0)\r
-\r
-public:\r
-\r
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
-    {\r
-    }\r
-\r
-    virtual ~sp_counted_base() // nothrow\r
-    {\r
-    }\r
-\r
-    // dispose() is called when use_count_ drops to zero, to release\r
-    // the resources managed by *this.\r
-\r
-    virtual void dispose() = 0; // nothrow\r
-\r
-    // destroy() is called when weak_count_ drops to zero.\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        delete this;\r
-    }\r
-\r
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
-\r
-    void add_ref_copy()\r
-    {\r
-        atomic_increment( &use_count_ );\r
-    }\r
-\r
-    bool add_ref_lock() // true on success\r
-    {\r
-        return atomic_conditional_increment( &use_count_ ) != 0;\r
-    }\r
-\r
-    void release() // nothrow\r
-    {\r
-        if( atomic_decrement( &use_count_ ) == 0 )\r
-        {\r
-            dispose();\r
-            weak_release();\r
-        }\r
-    }\r
-\r
-    void weak_add_ref() // nothrow\r
-    {\r
-        atomic_increment( &weak_count_ );\r
-    }\r
-\r
-    void weak_release() // nothrow\r
-    {\r
-        if( atomic_decrement( &weak_count_ ) == 0 )\r
-        {\r
-            destroy();\r
-        }\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        return static_cast<int const volatile &>( use_count_ ); // TODO use ld.acq here\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED
+
+//
+//  detail/sp_counted_base_gcc_ia64.hpp - g++ on IA64
+//
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
+//  Copyright 2004-2006 Peter Dimov
+//  Copyright 2005 Ben Hutchings
+//
+//  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)
+//
+//
+//  Lock-free algorithm by Alexander Terekhov
+//
+
+#include <boost/detail/sp_typeinfo.hpp>
+
+namespace boost
+{
+
+namespace detail
+{
+
+inline void atomic_increment( int * pw )
+{
+    // ++*pw;
+
+    int tmp;
+
+    // No barrier is required here but fetchadd always has an acquire or
+    // release barrier associated with it.  We choose release as it should be
+    // cheaper.
+    __asm__ ("fetchadd4.rel %0=%1,1" :
+         "=r"(tmp), "=m"(*pw) :
+         "m"( *pw ));
+}
+
+inline int atomic_decrement( int * pw )
+{
+    // return --*pw;
+
+    int rv;
+
+    __asm__ ("     fetchadd4.rel %0=%1,-1 ;; \n"
+             "     cmp.eq        p7,p0=1,%0 ;; \n"
+             "(p7) ld4.acq       %0=%1    " :
+             "=&r"(rv), "=m"(*pw) :
+             "m"( *pw ) :
+             "p7");
+
+    return rv;
+}
+
+inline int atomic_conditional_increment( int * pw )
+{
+    // if( *pw != 0 ) ++*pw;
+    // return *pw;
+
+    int rv, tmp, tmp2;
+
+    __asm__ ("0:   ld4          %0=%3           ;; \n"
+         "     cmp.eq       p7,p0=0,%0        ;; \n"
+         "(p7) br.cond.spnt 1f                \n"
+         "     mov          ar.ccv=%0         \n"
+         "     add          %1=1,%0           ;; \n"
+         "     cmpxchg4.acq %2=%3,%1,ar.ccv ;; \n"
+         "     cmp.ne       p7,p0=%0,%2       ;; \n"
+         "(p7) br.cond.spnt 0b                \n"
+         "     mov          %0=%1             ;; \n"
+         "1:" : 
+         "=&r"(rv), "=&r"(tmp), "=&r"(tmp2), "=m"(*pw) :
+         "m"( *pw ) :
+         "ar.ccv", "p7");
+
+    return rv;
+}
+
+class sp_counted_base
+{
+private:
+
+    sp_counted_base( sp_counted_base const & );
+    sp_counted_base & operator= ( sp_counted_base const & );
+
+    int use_count_;        // #shared
+    int weak_count_;       // #weak + (#shared != 0)
+
+public:
+
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
+    {
+    }
+
+    virtual ~sp_counted_base() // nothrow
+    {
+    }
+
+    // dispose() is called when use_count_ drops to zero, to release
+    // the resources managed by *this.
+
+    virtual void dispose() = 0; // nothrow
+
+    // destroy() is called when weak_count_ drops to zero.
+
+    virtual void destroy() // nothrow
+    {
+        delete this;
+    }
+
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
+
+    void add_ref_copy()
+    {
+        atomic_increment( &use_count_ );
+    }
+
+    bool add_ref_lock() // true on success
+    {
+        return atomic_conditional_increment( &use_count_ ) != 0;
+    }
+
+    void release() // nothrow
+    {
+        if( atomic_decrement( &use_count_ ) == 0 )
+        {
+            dispose();
+            weak_release();
+        }
+    }
+
+    void weak_add_ref() // nothrow
+    {
+        atomic_increment( &weak_count_ );
+    }
+
+    void weak_release() // nothrow
+    {
+        if( atomic_decrement( &weak_count_ ) == 0 )
+        {
+            destroy();
+        }
+    }
+
+    long use_count() const // nothrow
+    {
+        return static_cast<int const volatile &>( use_count_ ); // TODO use ld.acq here
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED
index addc0095731a87194f512343f90ed50af781ef29..0c69b0b891f2d62c261d39d40bcfeb1311bcc335 100644 (file)
-#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED\r
-#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  detail/sp_counted_base_gcc_mips.hpp - g++ on MIPS\r
-//\r
-//  Copyright (c) 2009, Spirent Communications, Inc.\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//\r
-//  Lock-free algorithm by Alexander Terekhov\r
-//\r
-\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-inline void atomic_increment( int * pw )\r
-{\r
-    // ++*pw;\r
-\r
-    int tmp;\r
-\r
-    __asm__ __volatile__\r
-    (\r
-        "0:\n\t"\r
-        "ll %0, %1\n\t"\r
-        "addiu %0, 1\n\t"\r
-        "sc %0, %1\n\t"\r
-        "beqz %0, 0b":\r
-        "=&r"( tmp ), "=m"( *pw ):\r
-        "m"( *pw )\r
-    );\r
-}\r
-\r
-inline int atomic_decrement( int * pw )\r
-{\r
-    // return --*pw;\r
-\r
-    int rv, tmp;\r
-\r
-    __asm__ __volatile__\r
-    (\r
-        "0:\n\t"\r
-        "ll %1, %2\n\t"\r
-        "addiu %0, %1, -1\n\t"\r
-        "sc %0, %2\n\t"\r
-        "beqz %0, 0b\n\t"\r
-        "addiu %0, %1, -1":\r
-        "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ):\r
-        "m"( *pw ):\r
-        "memory"\r
-    );\r
-\r
-    return rv;\r
-}\r
-\r
-inline int atomic_conditional_increment( int * pw )\r
-{\r
-    // if( *pw != 0 ) ++*pw;\r
-    // return *pw;\r
-\r
-    int rv, tmp;\r
-\r
-    __asm__ __volatile__\r
-    (\r
-        "0:\n\t"\r
-        "ll %0, %2\n\t"\r
-        "beqz %0, 1f\n\t"\r
-        "addiu %1, %0, 1\n\t"\r
-        "sc %1, %2\n\t"\r
-        "beqz %1, 0b\n\t"\r
-        "addiu %0, %0, 1\n\t"\r
-        "1:":\r
-        "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ):\r
-        "m"( *pw ):\r
-        "memory"\r
-    );\r
-\r
-    return rv;\r
-}\r
-\r
-class sp_counted_base\r
-{\r
-private:\r
-\r
-    sp_counted_base( sp_counted_base const & );\r
-    sp_counted_base & operator= ( sp_counted_base const & );\r
-\r
-    int use_count_;        // #shared\r
-    int weak_count_;       // #weak + (#shared != 0)\r
-\r
-public:\r
-\r
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
-    {\r
-    }\r
-\r
-    virtual ~sp_counted_base() // nothrow\r
-    {\r
-    }\r
-\r
-    // dispose() is called when use_count_ drops to zero, to release\r
-    // the resources managed by *this.\r
-\r
-    virtual void dispose() = 0; // nothrow\r
-\r
-    // destroy() is called when weak_count_ drops to zero.\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        delete this;\r
-    }\r
-\r
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
-\r
-    void add_ref_copy()\r
-    {\r
-        atomic_increment( &use_count_ );\r
-    }\r
-\r
-    bool add_ref_lock() // true on success\r
-    {\r
-        return atomic_conditional_increment( &use_count_ ) != 0;\r
-    }\r
-\r
-    void release() // nothrow\r
-    {\r
-        if( atomic_decrement( &use_count_ ) == 0 )\r
-        {\r
-            dispose();\r
-            weak_release();\r
-        }\r
-    }\r
-\r
-    void weak_add_ref() // nothrow\r
-    {\r
-        atomic_increment( &weak_count_ );\r
-    }\r
-\r
-    void weak_release() // nothrow\r
-    {\r
-        if( atomic_decrement( &weak_count_ ) == 0 )\r
-        {\r
-            destroy();\r
-        }\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        return static_cast<int const volatile &>( use_count_ );\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED\r
+#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
+#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  detail/sp_counted_base_gcc_mips.hpp - g++ on MIPS
+//
+//  Copyright (c) 2009, Spirent Communications, Inc.
+//
+//  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)
+//
+//
+//  Lock-free algorithm by Alexander Terekhov
+//
+
+#include <boost/detail/sp_typeinfo.hpp>
+
+namespace boost
+{
+
+namespace detail
+{
+
+inline void atomic_increment( int * pw )
+{
+    // ++*pw;
+
+    int tmp;
+
+    __asm__ __volatile__
+    (
+        "0:\n\t"
+        "ll %0, %1\n\t"
+        "addiu %0, 1\n\t"
+        "sc %0, %1\n\t"
+        "beqz %0, 0b":
+        "=&r"( tmp ), "=m"( *pw ):
+        "m"( *pw )
+    );
+}
+
+inline int atomic_decrement( int * pw )
+{
+    // return --*pw;
+
+    int rv, tmp;
+
+    __asm__ __volatile__
+    (
+        "0:\n\t"
+        "ll %1, %2\n\t"
+        "addiu %0, %1, -1\n\t"
+        "sc %0, %2\n\t"
+        "beqz %0, 0b\n\t"
+        "addiu %0, %1, -1":
+        "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ):
+        "m"( *pw ):
+        "memory"
+    );
+
+    return rv;
+}
+
+inline int atomic_conditional_increment( int * pw )
+{
+    // if( *pw != 0 ) ++*pw;
+    // return *pw;
+
+    int rv, tmp;
+
+    __asm__ __volatile__
+    (
+        "0:\n\t"
+        "ll %0, %2\n\t"
+        "beqz %0, 1f\n\t"
+        "addiu %1, %0, 1\n\t"
+        "sc %1, %2\n\t"
+        "beqz %1, 0b\n\t"
+        "addiu %0, %0, 1\n\t"
+        "1:":
+        "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ):
+        "m"( *pw ):
+        "memory"
+    );
+
+    return rv;
+}
+
+class sp_counted_base
+{
+private:
+
+    sp_counted_base( sp_counted_base const & );
+    sp_counted_base & operator= ( sp_counted_base const & );
+
+    int use_count_;        // #shared
+    int weak_count_;       // #weak + (#shared != 0)
+
+public:
+
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
+    {
+    }
+
+    virtual ~sp_counted_base() // nothrow
+    {
+    }
+
+    // dispose() is called when use_count_ drops to zero, to release
+    // the resources managed by *this.
+
+    virtual void dispose() = 0; // nothrow
+
+    // destroy() is called when weak_count_ drops to zero.
+
+    virtual void destroy() // nothrow
+    {
+        delete this;
+    }
+
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
+
+    void add_ref_copy()
+    {
+        atomic_increment( &use_count_ );
+    }
+
+    bool add_ref_lock() // true on success
+    {
+        return atomic_conditional_increment( &use_count_ ) != 0;
+    }
+
+    void release() // nothrow
+    {
+        if( atomic_decrement( &use_count_ ) == 0 )
+        {
+            dispose();
+            weak_release();
+        }
+    }
+
+    void weak_add_ref() // nothrow
+    {
+        atomic_increment( &weak_count_ );
+    }
+
+    void weak_release() // nothrow
+    {
+        if( atomic_decrement( &weak_count_ ) == 0 )
+        {
+            destroy();
+        }
+    }
+
+    long use_count() const // nothrow
+    {
+        return static_cast<int const volatile &>( use_count_ );
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
index 1fa8bf64f73dbaec5f409c50a62934689e9163c0..7f5c414f17fa518c3a98495136a26d84134b4330 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  detail/sp_counted_base_gcc_ppc.hpp - g++ on PowerPC\r
-//\r
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
-//  Copyright 2004-2005 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//\r
-//  Lock-free algorithm by Alexander Terekhov\r
-//\r
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)\r
-//  formulation\r
-//\r
-\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-inline void atomic_increment( int * pw )\r
-{\r
-    // ++*pw;\r
-\r
-    int tmp;\r
-\r
-    __asm__\r
-    (\r
-        "0:\n\t"\r
-        "lwarx %1, 0, %2\n\t"\r
-        "addi %1, %1, 1\n\t"\r
-        "stwcx. %1, 0, %2\n\t"\r
-        "bne- 0b":\r
-\r
-        "=m"( *pw ), "=&b"( tmp ):\r
-        "r"( pw ), "m"( *pw ):\r
-        "cc"\r
-    );\r
-}\r
-\r
-inline int atomic_decrement( int * pw )\r
-{\r
-    // return --*pw;\r
-\r
-    int rv;\r
-\r
-    __asm__ __volatile__\r
-    (\r
-        "sync\n\t"\r
-        "0:\n\t"\r
-        "lwarx %1, 0, %2\n\t"\r
-        "addi %1, %1, -1\n\t"\r
-        "stwcx. %1, 0, %2\n\t"\r
-        "bne- 0b\n\t"\r
-        "isync":\r
-\r
-        "=m"( *pw ), "=&b"( rv ):\r
-        "r"( pw ), "m"( *pw ):\r
-        "memory", "cc"\r
-    );\r
-\r
-    return rv;\r
-}\r
-\r
-inline int atomic_conditional_increment( int * pw )\r
-{\r
-    // if( *pw != 0 ) ++*pw;\r
-    // return *pw;\r
-\r
-    int rv;\r
-\r
-    __asm__\r
-    (\r
-        "0:\n\t"\r
-        "lwarx %1, 0, %2\n\t"\r
-        "cmpwi %1, 0\n\t"\r
-        "beq 1f\n\t"\r
-        "addi %1, %1, 1\n\t"\r
-        "1:\n\t"\r
-        "stwcx. %1, 0, %2\n\t"\r
-        "bne- 0b":\r
-\r
-        "=m"( *pw ), "=&b"( rv ):\r
-        "r"( pw ), "m"( *pw ):\r
-        "cc"\r
-    );\r
-\r
-    return rv;\r
-}\r
-\r
-class sp_counted_base\r
-{\r
-private:\r
-\r
-    sp_counted_base( sp_counted_base const & );\r
-    sp_counted_base & operator= ( sp_counted_base const & );\r
-\r
-    int use_count_;        // #shared\r
-    int weak_count_;       // #weak + (#shared != 0)\r
-\r
-public:\r
-\r
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
-    {\r
-    }\r
-\r
-    virtual ~sp_counted_base() // nothrow\r
-    {\r
-    }\r
-\r
-    // dispose() is called when use_count_ drops to zero, to release\r
-    // the resources managed by *this.\r
-\r
-    virtual void dispose() = 0; // nothrow\r
-\r
-    // destroy() is called when weak_count_ drops to zero.\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        delete this;\r
-    }\r
-\r
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
-\r
-    void add_ref_copy()\r
-    {\r
-        atomic_increment( &use_count_ );\r
-    }\r
-\r
-    bool add_ref_lock() // true on success\r
-    {\r
-        return atomic_conditional_increment( &use_count_ ) != 0;\r
-    }\r
-\r
-    void release() // nothrow\r
-    {\r
-        if( atomic_decrement( &use_count_ ) == 0 )\r
-        {\r
-            dispose();\r
-            weak_release();\r
-        }\r
-    }\r
-\r
-    void weak_add_ref() // nothrow\r
-    {\r
-        atomic_increment( &weak_count_ );\r
-    }\r
-\r
-    void weak_release() // nothrow\r
-    {\r
-        if( atomic_decrement( &weak_count_ ) == 0 )\r
-        {\r
-            destroy();\r
-        }\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        return static_cast<int const volatile &>( use_count_ );\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  detail/sp_counted_base_gcc_ppc.hpp - g++ on PowerPC
+//
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
+//  Copyright 2004-2005 Peter Dimov
+//
+//  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)
+//
+//
+//  Lock-free algorithm by Alexander Terekhov
+//
+//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
+//  formulation
+//
+
+#include <boost/detail/sp_typeinfo.hpp>
+
+namespace boost
+{
+
+namespace detail
+{
+
+inline void atomic_increment( int * pw )
+{
+    // ++*pw;
+
+    int tmp;
+
+    __asm__
+    (
+        "0:\n\t"
+        "lwarx %1, 0, %2\n\t"
+        "addi %1, %1, 1\n\t"
+        "stwcx. %1, 0, %2\n\t"
+        "bne- 0b":
+
+        "=m"( *pw ), "=&b"( tmp ):
+        "r"( pw ), "m"( *pw ):
+        "cc"
+    );
+}
+
+inline int atomic_decrement( int * pw )
+{
+    // return --*pw;
+
+    int rv;
+
+    __asm__ __volatile__
+    (
+        "sync\n\t"
+        "0:\n\t"
+        "lwarx %1, 0, %2\n\t"
+        "addi %1, %1, -1\n\t"
+        "stwcx. %1, 0, %2\n\t"
+        "bne- 0b\n\t"
+        "isync":
+
+        "=m"( *pw ), "=&b"( rv ):
+        "r"( pw ), "m"( *pw ):
+        "memory", "cc"
+    );
+
+    return rv;
+}
+
+inline int atomic_conditional_increment( int * pw )
+{
+    // if( *pw != 0 ) ++*pw;
+    // return *pw;
+
+    int rv;
+
+    __asm__
+    (
+        "0:\n\t"
+        "lwarx %1, 0, %2\n\t"
+        "cmpwi %1, 0\n\t"
+        "beq 1f\n\t"
+        "addi %1, %1, 1\n\t"
+        "1:\n\t"
+        "stwcx. %1, 0, %2\n\t"
+        "bne- 0b":
+
+        "=m"( *pw ), "=&b"( rv ):
+        "r"( pw ), "m"( *pw ):
+        "cc"
+    );
+
+    return rv;
+}
+
+class sp_counted_base
+{
+private:
+
+    sp_counted_base( sp_counted_base const & );
+    sp_counted_base & operator= ( sp_counted_base const & );
+
+    int use_count_;        // #shared
+    int weak_count_;       // #weak + (#shared != 0)
+
+public:
+
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
+    {
+    }
+
+    virtual ~sp_counted_base() // nothrow
+    {
+    }
+
+    // dispose() is called when use_count_ drops to zero, to release
+    // the resources managed by *this.
+
+    virtual void dispose() = 0; // nothrow
+
+    // destroy() is called when weak_count_ drops to zero.
+
+    virtual void destroy() // nothrow
+    {
+        delete this;
+    }
+
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
+
+    void add_ref_copy()
+    {
+        atomic_increment( &use_count_ );
+    }
+
+    bool add_ref_lock() // true on success
+    {
+        return atomic_conditional_increment( &use_count_ ) != 0;
+    }
+
+    void release() // nothrow
+    {
+        if( atomic_decrement( &use_count_ ) == 0 )
+        {
+            dispose();
+            weak_release();
+        }
+    }
+
+    void weak_add_ref() // nothrow
+    {
+        atomic_increment( &weak_count_ );
+    }
+
+    void weak_release() // nothrow
+    {
+        if( atomic_decrement( &weak_count_ ) == 0 )
+        {
+            destroy();
+        }
+    }
+
+    long use_count() const // nothrow
+    {
+        return static_cast<int const volatile &>( use_count_ );
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED
index 0d03acfa6a3b0c95f4aa55cddc722b84e743f39f..8af6f0a972ab11f1157573e5c6e5a4e496ab84fb 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//  detail/sp_counted_base_gcc_sparc.hpp - g++ on Sparc V8+\r
-//\r
-//  Copyright (c) 2006 Piotr Wyderski\r
-//  Copyright (c) 2006 Tomas Puverle\r
-//  Copyright (c) 2006 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt\r
-//\r
-//  Thanks to Michael van der Westhuizen\r
-\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-#include <inttypes.h> // int32_t\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-inline int32_t compare_and_swap( int32_t * dest_, int32_t compare_, int32_t swap_ )\r
-{\r
-    __asm__ __volatile__( "cas %0, %2, %1"\r
-                        : "+m" (*dest_), "+r" (swap_)\r
-                        : "r" (compare_)\r
-                        : "memory" );\r
-\r
-    return swap_;\r
-}\r
-\r
-inline int32_t atomic_fetch_and_add( int32_t * pw, int32_t dv )\r
-{\r
-    // long r = *pw;\r
-    // *pw += dv;\r
-    // return r;\r
-\r
-    for( ;; )\r
-    {\r
-        int32_t r = *pw;\r
-\r
-        if( __builtin_expect((compare_and_swap(pw, r, r + dv) == r), 1) )\r
-        {\r
-            return r;\r
-        }\r
-    }\r
-}\r
-\r
-inline void atomic_increment( int32_t * pw )\r
-{\r
-    atomic_fetch_and_add( pw, 1 );\r
-}\r
-\r
-inline int32_t atomic_decrement( int32_t * pw )\r
-{\r
-    return atomic_fetch_and_add( pw, -1 );\r
-}\r
-\r
-inline int32_t atomic_conditional_increment( int32_t * pw )\r
-{\r
-    // long r = *pw;\r
-    // if( r != 0 ) ++*pw;\r
-    // return r;\r
-\r
-    for( ;; )\r
-    {\r
-        int32_t r = *pw;\r
-\r
-        if( r == 0 )\r
-        {\r
-            return r;\r
-        }\r
-\r
-        if( __builtin_expect( ( compare_and_swap( pw, r, r + 1 ) == r ), 1 ) )\r
-        {\r
-            return r;\r
-        }\r
-    }    \r
-}\r
-\r
-class sp_counted_base\r
-{\r
-private:\r
-\r
-    sp_counted_base( sp_counted_base const & );\r
-    sp_counted_base & operator= ( sp_counted_base const & );\r
-\r
-    int32_t use_count_;        // #shared\r
-    int32_t weak_count_;       // #weak + (#shared != 0)\r
-\r
-public:\r
-\r
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
-    {\r
-    }\r
-\r
-    virtual ~sp_counted_base() // nothrow\r
-    {\r
-    }\r
-\r
-    // dispose() is called when use_count_ drops to zero, to release\r
-    // the resources managed by *this.\r
-\r
-    virtual void dispose() = 0; // nothrow\r
-\r
-    // destroy() is called when weak_count_ drops to zero.\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        delete this;\r
-    }\r
-\r
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
-\r
-    void add_ref_copy()\r
-    {\r
-        atomic_increment( &use_count_ );\r
-    }\r
-\r
-    bool add_ref_lock() // true on success\r
-    {\r
-        return atomic_conditional_increment( &use_count_ ) != 0;\r
-    }\r
-\r
-    void release() // nothrow\r
-    {\r
-        if( atomic_decrement( &use_count_ ) == 1 )\r
-        {\r
-            dispose();\r
-            weak_release();\r
-        }\r
-    }\r
-\r
-    void weak_add_ref() // nothrow\r
-    {\r
-        atomic_increment( &weak_count_ );\r
-    }\r
-\r
-    void weak_release() // nothrow\r
-    {\r
-        if( atomic_decrement( &weak_count_ ) == 1 )\r
-        {\r
-            destroy();\r
-        }\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        return const_cast< int32_t const volatile & >( use_count_ );\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//  detail/sp_counted_base_gcc_sparc.hpp - g++ on Sparc V8+
+//
+//  Copyright (c) 2006 Piotr Wyderski
+//  Copyright (c) 2006 Tomas Puverle
+//  Copyright (c) 2006 Peter Dimov
+//
+//  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
+//
+//  Thanks to Michael van der Westhuizen
+
+#include <boost/detail/sp_typeinfo.hpp>
+#include <inttypes.h> // int32_t
+
+namespace boost
+{
+
+namespace detail
+{
+
+inline int32_t compare_and_swap( int32_t * dest_, int32_t compare_, int32_t swap_ )
+{
+    __asm__ __volatile__( "cas %0, %2, %1"
+                        : "+m" (*dest_), "+r" (swap_)
+                        : "r" (compare_)
+                        : "memory" );
+
+    return swap_;
+}
+
+inline int32_t atomic_fetch_and_add( int32_t * pw, int32_t dv )
+{
+    // long r = *pw;
+    // *pw += dv;
+    // return r;
+
+    for( ;; )
+    {
+        int32_t r = *pw;
+
+        if( __builtin_expect((compare_and_swap(pw, r, r + dv) == r), 1) )
+        {
+            return r;
+        }
+    }
+}
+
+inline void atomic_increment( int32_t * pw )
+{
+    atomic_fetch_and_add( pw, 1 );
+}
+
+inline int32_t atomic_decrement( int32_t * pw )
+{
+    return atomic_fetch_and_add( pw, -1 );
+}
+
+inline int32_t atomic_conditional_increment( int32_t * pw )
+{
+    // long r = *pw;
+    // if( r != 0 ) ++*pw;
+    // return r;
+
+    for( ;; )
+    {
+        int32_t r = *pw;
+
+        if( r == 0 )
+        {
+            return r;
+        }
+
+        if( __builtin_expect( ( compare_and_swap( pw, r, r + 1 ) == r ), 1 ) )
+        {
+            return r;
+        }
+    }    
+}
+
+class sp_counted_base
+{
+private:
+
+    sp_counted_base( sp_counted_base const & );
+    sp_counted_base & operator= ( sp_counted_base const & );
+
+    int32_t use_count_;        // #shared
+    int32_t weak_count_;       // #weak + (#shared != 0)
+
+public:
+
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
+    {
+    }
+
+    virtual ~sp_counted_base() // nothrow
+    {
+    }
+
+    // dispose() is called when use_count_ drops to zero, to release
+    // the resources managed by *this.
+
+    virtual void dispose() = 0; // nothrow
+
+    // destroy() is called when weak_count_ drops to zero.
+
+    virtual void destroy() // nothrow
+    {
+        delete this;
+    }
+
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
+
+    void add_ref_copy()
+    {
+        atomic_increment( &use_count_ );
+    }
+
+    bool add_ref_lock() // true on success
+    {
+        return atomic_conditional_increment( &use_count_ ) != 0;
+    }
+
+    void release() // nothrow
+    {
+        if( atomic_decrement( &use_count_ ) == 1 )
+        {
+            dispose();
+            weak_release();
+        }
+    }
+
+    void weak_add_ref() // nothrow
+    {
+        atomic_increment( &weak_count_ );
+    }
+
+    void weak_release() // nothrow
+    {
+        if( atomic_decrement( &weak_count_ ) == 1 )
+        {
+            destroy();
+        }
+    }
+
+    long use_count() const // nothrow
+    {
+        return const_cast< int32_t const volatile & >( use_count_ );
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED
index d357d31a6f3e8ee92a0c002f9e13959530b7071d..4d7fa8d4ab3ea0c03405388819bc6ddb6e330cb1 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  detail/sp_counted_base_gcc_x86.hpp - g++ on 486+ or AMD64\r
-//\r
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
-//  Copyright 2004-2005 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//\r
-//  Lock-free algorithm by Alexander Terekhov\r
-//\r
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)\r
-//  formulation\r
-//\r
-\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-inline int atomic_exchange_and_add( int * pw, int dv )\r
-{\r
-    // int r = *pw;\r
-    // *pw += dv;\r
-    // return r;\r
-\r
-    int r;\r
-\r
-    __asm__ __volatile__\r
-    (\r
-        "lock\n\t"\r
-        "xadd %1, %0":\r
-        "=m"( *pw ), "=r"( r ): // outputs (%0, %1)\r
-        "m"( *pw ), "1"( dv ): // inputs (%2, %3 == %1)\r
-        "memory", "cc" // clobbers\r
-    );\r
-\r
-    return r;\r
-}\r
-\r
-inline void atomic_increment( int * pw )\r
-{\r
-    //atomic_exchange_and_add( pw, 1 );\r
-\r
-    __asm__\r
-    (\r
-        "lock\n\t"\r
-        "incl %0":\r
-        "=m"( *pw ): // output (%0)\r
-        "m"( *pw ): // input (%1)\r
-        "cc" // clobbers\r
-    );\r
-}\r
-\r
-inline int atomic_conditional_increment( int * pw )\r
-{\r
-    // int rv = *pw;\r
-    // if( rv != 0 ) ++*pw;\r
-    // return rv;\r
-\r
-    int rv, tmp;\r
-\r
-    __asm__\r
-    (\r
-        "movl %0, %%eax\n\t"\r
-        "0:\n\t"\r
-        "test %%eax, %%eax\n\t"\r
-        "je 1f\n\t"\r
-        "movl %%eax, %2\n\t"\r
-        "incl %2\n\t"\r
-        "lock\n\t"\r
-        "cmpxchgl %2, %0\n\t"\r
-        "jne 0b\n\t"\r
-        "1:":\r
-        "=m"( *pw ), "=&a"( rv ), "=&r"( tmp ): // outputs (%0, %1, %2)\r
-        "m"( *pw ): // input (%3)\r
-        "cc" // clobbers\r
-    );\r
-\r
-    return rv;\r
-}\r
-\r
-class sp_counted_base\r
-{\r
-private:\r
-\r
-    sp_counted_base( sp_counted_base const & );\r
-    sp_counted_base & operator= ( sp_counted_base const & );\r
-\r
-    int use_count_;        // #shared\r
-    int weak_count_;       // #weak + (#shared != 0)\r
-\r
-public:\r
-\r
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
-    {\r
-    }\r
-\r
-    virtual ~sp_counted_base() // nothrow\r
-    {\r
-    }\r
-\r
-    // dispose() is called when use_count_ drops to zero, to release\r
-    // the resources managed by *this.\r
-\r
-    virtual void dispose() = 0; // nothrow\r
-\r
-    // destroy() is called when weak_count_ drops to zero.\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        delete this;\r
-    }\r
-\r
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
-\r
-    void add_ref_copy()\r
-    {\r
-        atomic_increment( &use_count_ );\r
-    }\r
-\r
-    bool add_ref_lock() // true on success\r
-    {\r
-        return atomic_conditional_increment( &use_count_ ) != 0;\r
-    }\r
-\r
-    void release() // nothrow\r
-    {\r
-        if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )\r
-        {\r
-            dispose();\r
-            weak_release();\r
-        }\r
-    }\r
-\r
-    void weak_add_ref() // nothrow\r
-    {\r
-        atomic_increment( &weak_count_ );\r
-    }\r
-\r
-    void weak_release() // nothrow\r
-    {\r
-        if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )\r
-        {\r
-            destroy();\r
-        }\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        return static_cast<int const volatile &>( use_count_ );\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  detail/sp_counted_base_gcc_x86.hpp - g++ on 486+ or AMD64
+//
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
+//  Copyright 2004-2005 Peter Dimov
+//
+//  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)
+//
+//
+//  Lock-free algorithm by Alexander Terekhov
+//
+//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
+//  formulation
+//
+
+#include <boost/detail/sp_typeinfo.hpp>
+
+namespace boost
+{
+
+namespace detail
+{
+
+inline int atomic_exchange_and_add( int * pw, int dv )
+{
+    // int r = *pw;
+    // *pw += dv;
+    // return r;
+
+    int r;
+
+    __asm__ __volatile__
+    (
+        "lock\n\t"
+        "xadd %1, %0":
+        "=m"( *pw ), "=r"( r ): // outputs (%0, %1)
+        "m"( *pw ), "1"( dv ): // inputs (%2, %3 == %1)
+        "memory", "cc" // clobbers
+    );
+
+    return r;
+}
+
+inline void atomic_increment( int * pw )
+{
+    //atomic_exchange_and_add( pw, 1 );
+
+    __asm__
+    (
+        "lock\n\t"
+        "incl %0":
+        "=m"( *pw ): // output (%0)
+        "m"( *pw ): // input (%1)
+        "cc" // clobbers
+    );
+}
+
+inline int atomic_conditional_increment( int * pw )
+{
+    // int rv = *pw;
+    // if( rv != 0 ) ++*pw;
+    // return rv;
+
+    int rv, tmp;
+
+    __asm__
+    (
+        "movl %0, %%eax\n\t"
+        "0:\n\t"
+        "test %%eax, %%eax\n\t"
+        "je 1f\n\t"
+        "movl %%eax, %2\n\t"
+        "incl %2\n\t"
+        "lock\n\t"
+        "cmpxchgl %2, %0\n\t"
+        "jne 0b\n\t"
+        "1:":
+        "=m"( *pw ), "=&a"( rv ), "=&r"( tmp ): // outputs (%0, %1, %2)
+        "m"( *pw ): // input (%3)
+        "cc" // clobbers
+    );
+
+    return rv;
+}
+
+class sp_counted_base
+{
+private:
+
+    sp_counted_base( sp_counted_base const & );
+    sp_counted_base & operator= ( sp_counted_base const & );
+
+    int use_count_;        // #shared
+    int weak_count_;       // #weak + (#shared != 0)
+
+public:
+
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
+    {
+    }
+
+    virtual ~sp_counted_base() // nothrow
+    {
+    }
+
+    // dispose() is called when use_count_ drops to zero, to release
+    // the resources managed by *this.
+
+    virtual void dispose() = 0; // nothrow
+
+    // destroy() is called when weak_count_ drops to zero.
+
+    virtual void destroy() // nothrow
+    {
+        delete this;
+    }
+
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
+
+    void add_ref_copy()
+    {
+        atomic_increment( &use_count_ );
+    }
+
+    bool add_ref_lock() // true on success
+    {
+        return atomic_conditional_increment( &use_count_ ) != 0;
+    }
+
+    void release() // nothrow
+    {
+        if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )
+        {
+            dispose();
+            weak_release();
+        }
+    }
+
+    void weak_add_ref() // nothrow
+    {
+        atomic_increment( &weak_count_ );
+    }
+
+    void weak_release() // nothrow
+    {
+        if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )
+        {
+            destroy();
+        }
+    }
+
+    long use_count() const // nothrow
+    {
+        return static_cast<int const volatile &>( use_count_ );
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
index 612e1d8eaea02e5f10ace39e21ee97ee36f4fadf..dfd70e7d7e0bd24214b13c346a88aca0dee8aca6 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  detail/sp_counted_base_nt.hpp\r
-//\r
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
-//  Copyright 2004-2005 Peter Dimov\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class sp_counted_base\r
-{\r
-private:\r
-\r
-    sp_counted_base( sp_counted_base const & );\r
-    sp_counted_base & operator= ( sp_counted_base const & );\r
-\r
-    long use_count_;        // #shared\r
-    long weak_count_;       // #weak + (#shared != 0)\r
-\r
-public:\r
-\r
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
-    {\r
-    }\r
-\r
-    virtual ~sp_counted_base() // nothrow\r
-    {\r
-    }\r
-\r
-    // dispose() is called when use_count_ drops to zero, to release\r
-    // the resources managed by *this.\r
-\r
-    virtual void dispose() = 0; // nothrow\r
-\r
-    // destroy() is called when weak_count_ drops to zero.\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        delete this;\r
-    }\r
-\r
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
-\r
-    void add_ref_copy()\r
-    {\r
-        ++use_count_;\r
-    }\r
-\r
-    bool add_ref_lock() // true on success\r
-    {\r
-        if( use_count_ == 0 ) return false;\r
-        ++use_count_;\r
-        return true;\r
-    }\r
-\r
-    void release() // nothrow\r
-    {\r
-        if( --use_count_ == 0 )\r
-        {\r
-            dispose();\r
-            weak_release();\r
-        }\r
-    }\r
-\r
-    void weak_add_ref() // nothrow\r
-    {\r
-        ++weak_count_;\r
-    }\r
-\r
-    void weak_release() // nothrow\r
-    {\r
-        if( --weak_count_ == 0 )\r
-        {\r
-            destroy();\r
-        }\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        return use_count_;\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  detail/sp_counted_base_nt.hpp
+//
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
+//  Copyright 2004-2005 Peter Dimov
+//
+// 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)
+//
+
+#include <boost/detail/sp_typeinfo.hpp>
+
+namespace boost
+{
+
+namespace detail
+{
+
+class sp_counted_base
+{
+private:
+
+    sp_counted_base( sp_counted_base const & );
+    sp_counted_base & operator= ( sp_counted_base const & );
+
+    long use_count_;        // #shared
+    long weak_count_;       // #weak + (#shared != 0)
+
+public:
+
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
+    {
+    }
+
+    virtual ~sp_counted_base() // nothrow
+    {
+    }
+
+    // dispose() is called when use_count_ drops to zero, to release
+    // the resources managed by *this.
+
+    virtual void dispose() = 0; // nothrow
+
+    // destroy() is called when weak_count_ drops to zero.
+
+    virtual void destroy() // nothrow
+    {
+        delete this;
+    }
+
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
+
+    void add_ref_copy()
+    {
+        ++use_count_;
+    }
+
+    bool add_ref_lock() // true on success
+    {
+        if( use_count_ == 0 ) return false;
+        ++use_count_;
+        return true;
+    }
+
+    void release() // nothrow
+    {
+        if( --use_count_ == 0 )
+        {
+            dispose();
+            weak_release();
+        }
+    }
+
+    void weak_add_ref() // nothrow
+    {
+        ++weak_count_;
+    }
+
+    void weak_release() // nothrow
+    {
+        if( --weak_count_ == 0 )
+        {
+            destroy();
+        }
+    }
+
+    long use_count() const // nothrow
+    {
+        return use_count_;
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
index 346976437356d35a45a654ed553843bf99306422..3c56fecfc362c56c45fd170db28487dbb1205541 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  detail/sp_counted_base_pt.hpp\r
-//\r
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
-//  Copyright 2004-2005 Peter Dimov\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-#include <pthread.h>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class sp_counted_base\r
-{\r
-private:\r
-\r
-    sp_counted_base( sp_counted_base const & );\r
-    sp_counted_base & operator= ( sp_counted_base const & );\r
-\r
-    long use_count_;        // #shared\r
-    long weak_count_;       // #weak + (#shared != 0)\r
-\r
-    mutable pthread_mutex_t m_;\r
-\r
-public:\r
-\r
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
-    {\r
-// HPUX 10.20 / DCE has a nonstandard pthread_mutex_init\r
-\r
-#if defined(__hpux) && defined(_DECTHREADS_)\r
-        pthread_mutex_init( &m_, pthread_mutexattr_default );\r
-#else\r
-        pthread_mutex_init( &m_, 0 );\r
-#endif\r
-    }\r
-\r
-    virtual ~sp_counted_base() // nothrow\r
-    {\r
-        pthread_mutex_destroy( &m_ );\r
-    }\r
-\r
-    // dispose() is called when use_count_ drops to zero, to release\r
-    // the resources managed by *this.\r
-\r
-    virtual void dispose() = 0; // nothrow\r
-\r
-    // destroy() is called when weak_count_ drops to zero.\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        delete this;\r
-    }\r
-\r
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
-\r
-    void add_ref_copy()\r
-    {\r
-        pthread_mutex_lock( &m_ );\r
-        ++use_count_;\r
-        pthread_mutex_unlock( &m_ );\r
-    }\r
-\r
-    bool add_ref_lock() // true on success\r
-    {\r
-        pthread_mutex_lock( &m_ );\r
-        bool r = use_count_ == 0? false: ( ++use_count_, true );\r
-        pthread_mutex_unlock( &m_ );\r
-        return r;\r
-    }\r
-\r
-    void release() // nothrow\r
-    {\r
-        pthread_mutex_lock( &m_ );\r
-        long new_use_count = --use_count_;\r
-        pthread_mutex_unlock( &m_ );\r
-\r
-        if( new_use_count == 0 )\r
-        {\r
-            dispose();\r
-            weak_release();\r
-        }\r
-    }\r
-\r
-    void weak_add_ref() // nothrow\r
-    {\r
-        pthread_mutex_lock( &m_ );\r
-        ++weak_count_;\r
-        pthread_mutex_unlock( &m_ );\r
-    }\r
-\r
-    void weak_release() // nothrow\r
-    {\r
-        pthread_mutex_lock( &m_ );\r
-        long new_weak_count = --weak_count_;\r
-        pthread_mutex_unlock( &m_ );\r
-\r
-        if( new_weak_count == 0 )\r
-        {\r
-            destroy();\r
-        }\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        pthread_mutex_lock( &m_ );\r
-        long r = use_count_;\r
-        pthread_mutex_unlock( &m_ );\r
-\r
-        return r;\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  detail/sp_counted_base_pt.hpp
+//
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
+//  Copyright 2004-2005 Peter Dimov
+//
+// 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)
+//
+
+#include <boost/detail/sp_typeinfo.hpp>
+#include <pthread.h>
+
+namespace boost
+{
+
+namespace detail
+{
+
+class sp_counted_base
+{
+private:
+
+    sp_counted_base( sp_counted_base const & );
+    sp_counted_base & operator= ( sp_counted_base const & );
+
+    long use_count_;        // #shared
+    long weak_count_;       // #weak + (#shared != 0)
+
+    mutable pthread_mutex_t m_;
+
+public:
+
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
+    {
+// HPUX 10.20 / DCE has a nonstandard pthread_mutex_init
+
+#if defined(__hpux) && defined(_DECTHREADS_)
+        pthread_mutex_init( &m_, pthread_mutexattr_default );
+#else
+        pthread_mutex_init( &m_, 0 );
+#endif
+    }
+
+    virtual ~sp_counted_base() // nothrow
+    {
+        pthread_mutex_destroy( &m_ );
+    }
+
+    // dispose() is called when use_count_ drops to zero, to release
+    // the resources managed by *this.
+
+    virtual void dispose() = 0; // nothrow
+
+    // destroy() is called when weak_count_ drops to zero.
+
+    virtual void destroy() // nothrow
+    {
+        delete this;
+    }
+
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
+
+    void add_ref_copy()
+    {
+        pthread_mutex_lock( &m_ );
+        ++use_count_;
+        pthread_mutex_unlock( &m_ );
+    }
+
+    bool add_ref_lock() // true on success
+    {
+        pthread_mutex_lock( &m_ );
+        bool r = use_count_ == 0? false: ( ++use_count_, true );
+        pthread_mutex_unlock( &m_ );
+        return r;
+    }
+
+    void release() // nothrow
+    {
+        pthread_mutex_lock( &m_ );
+        long new_use_count = --use_count_;
+        pthread_mutex_unlock( &m_ );
+
+        if( new_use_count == 0 )
+        {
+            dispose();
+            weak_release();
+        }
+    }
+
+    void weak_add_ref() // nothrow
+    {
+        pthread_mutex_lock( &m_ );
+        ++weak_count_;
+        pthread_mutex_unlock( &m_ );
+    }
+
+    void weak_release() // nothrow
+    {
+        pthread_mutex_lock( &m_ );
+        long new_weak_count = --weak_count_;
+        pthread_mutex_unlock( &m_ );
+
+        if( new_weak_count == 0 )
+        {
+            destroy();
+        }
+    }
+
+    long use_count() const // nothrow
+    {
+        pthread_mutex_lock( &m_ );
+        long r = use_count_;
+        pthread_mutex_unlock( &m_ );
+
+        return r;
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
index f76514fc89040977ef5b93acc47ecf07701a2077..d1b6beceb1832c1319a59e595be499f14a85c98f 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED\r
-\r
-//\r
-//  detail/sp_counted_base_solaris.hpp\r
-//   based on: detail/sp_counted_base_w32.hpp\r
-//\r
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
-//  Copyright 2004-2005 Peter Dimov\r
-//  Copyright 2006 Michael van der Westhuizen\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//\r
-//  Lock-free algorithm by Alexander Terekhov\r
-//\r
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)\r
-//  formulation\r
-//\r
-\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-#include <atomic.h>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class sp_counted_base\r
-{\r
-private:\r
-\r
-    sp_counted_base( sp_counted_base const & );\r
-    sp_counted_base & operator= ( sp_counted_base const & );\r
-\r
-    uint32_t use_count_;        // #shared\r
-    uint32_t weak_count_;       // #weak + (#shared != 0)\r
-\r
-public:\r
-\r
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
-    {\r
-    }\r
-\r
-    virtual ~sp_counted_base() // nothrow\r
-    {\r
-    }\r
-\r
-    // dispose() is called when use_count_ drops to zero, to release\r
-    // the resources managed by *this.\r
-\r
-    virtual void dispose() = 0; // nothrow\r
-\r
-    // destroy() is called when weak_count_ drops to zero.\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        delete this;\r
-    }\r
-\r
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
-\r
-    void add_ref_copy()\r
-    {\r
-        atomic_inc_32( &use_count_ );\r
-    }\r
-\r
-    bool add_ref_lock() // true on success\r
-    {\r
-        for( ;; )\r
-        {\r
-            uint32_t tmp = static_cast< uint32_t const volatile& >( use_count_ );\r
-            if( tmp == 0 ) return false;\r
-            if( atomic_cas_32( &use_count_, tmp, tmp + 1 ) == tmp ) return true;\r
-        }\r
-    }\r
-\r
-    void release() // nothrow\r
-    {\r
-        if( atomic_dec_32_nv( &use_count_ ) == 0 )\r
-        {\r
-            dispose();\r
-            weak_release();\r
-        }\r
-    }\r
-\r
-    void weak_add_ref() // nothrow\r
-    {\r
-        atomic_inc_32( &weak_count_ );\r
-    }\r
-\r
-    void weak_release() // nothrow\r
-    {\r
-        if( atomic_dec_32_nv( &weak_count_ ) == 0 )\r
-        {\r
-            destroy();\r
-        }\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        return static_cast<long const volatile &>( use_count_ );\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED
+
+//
+//  detail/sp_counted_base_solaris.hpp
+//   based on: detail/sp_counted_base_w32.hpp
+//
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
+//  Copyright 2004-2005 Peter Dimov
+//  Copyright 2006 Michael van der Westhuizen
+//
+//  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)
+//
+//
+//  Lock-free algorithm by Alexander Terekhov
+//
+//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
+//  formulation
+//
+
+#include <boost/detail/sp_typeinfo.hpp>
+#include <atomic.h>
+
+namespace boost
+{
+
+namespace detail
+{
+
+class sp_counted_base
+{
+private:
+
+    sp_counted_base( sp_counted_base const & );
+    sp_counted_base & operator= ( sp_counted_base const & );
+
+    uint32_t use_count_;        // #shared
+    uint32_t weak_count_;       // #weak + (#shared != 0)
+
+public:
+
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
+    {
+    }
+
+    virtual ~sp_counted_base() // nothrow
+    {
+    }
+
+    // dispose() is called when use_count_ drops to zero, to release
+    // the resources managed by *this.
+
+    virtual void dispose() = 0; // nothrow
+
+    // destroy() is called when weak_count_ drops to zero.
+
+    virtual void destroy() // nothrow
+    {
+        delete this;
+    }
+
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
+
+    void add_ref_copy()
+    {
+        atomic_inc_32( &use_count_ );
+    }
+
+    bool add_ref_lock() // true on success
+    {
+        for( ;; )
+        {
+            uint32_t tmp = static_cast< uint32_t const volatile& >( use_count_ );
+            if( tmp == 0 ) return false;
+            if( atomic_cas_32( &use_count_, tmp, tmp + 1 ) == tmp ) return true;
+        }
+    }
+
+    void release() // nothrow
+    {
+        if( atomic_dec_32_nv( &use_count_ ) == 0 )
+        {
+            dispose();
+            weak_release();
+        }
+    }
+
+    void weak_add_ref() // nothrow
+    {
+        atomic_inc_32( &weak_count_ );
+    }
+
+    void weak_release() // nothrow
+    {
+        if( atomic_dec_32_nv( &weak_count_ ) == 0 )
+        {
+            destroy();
+        }
+    }
+
+    long use_count() const // nothrow
+    {
+        return static_cast<long const volatile &>( use_count_ );
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED
index 09feb63433d91f0433be261ccf7a0159ec4f0468..bbd11e60e905bdf1a2e74122aab4b073f01a14c5 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  detail/sp_counted_base_spin.hpp - spinlock pool atomic emulation\r
-//\r
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
-//  Copyright 2004-2008 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-#include <boost/smart_ptr/detail/spinlock_pool.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-inline int atomic_exchange_and_add( int * pw, int dv )\r
-{\r
-    spinlock_pool<1>::scoped_lock lock( pw );\r
-\r
-    int r = *pw;\r
-    *pw += dv;\r
-    return r;\r
-}\r
-\r
-inline void atomic_increment( int * pw )\r
-{\r
-    spinlock_pool<1>::scoped_lock lock( pw );\r
-    ++*pw;\r
-}\r
-\r
-inline int atomic_conditional_increment( int * pw )\r
-{\r
-    spinlock_pool<1>::scoped_lock lock( pw );\r
-\r
-    int rv = *pw;\r
-    if( rv != 0 ) ++*pw;\r
-    return rv;\r
-}\r
-\r
-class sp_counted_base\r
-{\r
-private:\r
-\r
-    sp_counted_base( sp_counted_base const & );\r
-    sp_counted_base & operator= ( sp_counted_base const & );\r
-\r
-    int use_count_;        // #shared\r
-    int weak_count_;       // #weak + (#shared != 0)\r
-\r
-public:\r
-\r
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
-    {\r
-    }\r
-\r
-    virtual ~sp_counted_base() // nothrow\r
-    {\r
-    }\r
-\r
-    // dispose() is called when use_count_ drops to zero, to release\r
-    // the resources managed by *this.\r
-\r
-    virtual void dispose() = 0; // nothrow\r
-\r
-    // destroy() is called when weak_count_ drops to zero.\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        delete this;\r
-    }\r
-\r
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
-\r
-    void add_ref_copy()\r
-    {\r
-        atomic_increment( &use_count_ );\r
-    }\r
-\r
-    bool add_ref_lock() // true on success\r
-    {\r
-        return atomic_conditional_increment( &use_count_ ) != 0;\r
-    }\r
-\r
-    void release() // nothrow\r
-    {\r
-        if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )\r
-        {\r
-            dispose();\r
-            weak_release();\r
-        }\r
-    }\r
-\r
-    void weak_add_ref() // nothrow\r
-    {\r
-        atomic_increment( &weak_count_ );\r
-    }\r
-\r
-    void weak_release() // nothrow\r
-    {\r
-        if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )\r
-        {\r
-            destroy();\r
-        }\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        spinlock_pool<1>::scoped_lock lock( &use_count_ );\r
-        return use_count_;\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  detail/sp_counted_base_spin.hpp - spinlock pool atomic emulation
+//
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
+//  Copyright 2004-2008 Peter Dimov
+//
+//  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)
+//
+
+#include <boost/detail/sp_typeinfo.hpp>
+#include <boost/smart_ptr/detail/spinlock_pool.hpp>
+
+namespace boost
+{
+
+namespace detail
+{
+
+inline int atomic_exchange_and_add( int * pw, int dv )
+{
+    spinlock_pool<1>::scoped_lock lock( pw );
+
+    int r = *pw;
+    *pw += dv;
+    return r;
+}
+
+inline void atomic_increment( int * pw )
+{
+    spinlock_pool<1>::scoped_lock lock( pw );
+    ++*pw;
+}
+
+inline int atomic_conditional_increment( int * pw )
+{
+    spinlock_pool<1>::scoped_lock lock( pw );
+
+    int rv = *pw;
+    if( rv != 0 ) ++*pw;
+    return rv;
+}
+
+class sp_counted_base
+{
+private:
+
+    sp_counted_base( sp_counted_base const & );
+    sp_counted_base & operator= ( sp_counted_base const & );
+
+    int use_count_;        // #shared
+    int weak_count_;       // #weak + (#shared != 0)
+
+public:
+
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
+    {
+    }
+
+    virtual ~sp_counted_base() // nothrow
+    {
+    }
+
+    // dispose() is called when use_count_ drops to zero, to release
+    // the resources managed by *this.
+
+    virtual void dispose() = 0; // nothrow
+
+    // destroy() is called when weak_count_ drops to zero.
+
+    virtual void destroy() // nothrow
+    {
+        delete this;
+    }
+
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
+
+    void add_ref_copy()
+    {
+        atomic_increment( &use_count_ );
+    }
+
+    bool add_ref_lock() // true on success
+    {
+        return atomic_conditional_increment( &use_count_ ) != 0;
+    }
+
+    void release() // nothrow
+    {
+        if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )
+        {
+            dispose();
+            weak_release();
+        }
+    }
+
+    void weak_add_ref() // nothrow
+    {
+        atomic_increment( &weak_count_ );
+    }
+
+    void weak_release() // nothrow
+    {
+        if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )
+        {
+            destroy();
+        }
+    }
+
+    long use_count() const // nothrow
+    {
+        spinlock_pool<1>::scoped_lock lock( &use_count_ );
+        return use_count_;
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED
index 5a074c0b218ae4cf3b7f6f02169d641934ba6fce..41f654e19b19c87381019c6809c6444d897b1f1e 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//  detail/sp_counted_base_sync.hpp - g++ 4.1+ __sync intrinsics\r
-//\r
-//  Copyright (c) 2007 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt\r
-\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-#include <limits.h>\r
-\r
-#if defined( __ia64__ ) && defined( __INTEL_COMPILER )\r
-# include <ia64intrin.h>\r
-#endif\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-#if INT_MAX >= 2147483647\r
-\r
-typedef int sp_int32_t;\r
-\r
-#else\r
-\r
-typedef long sp_int32_t;\r
-\r
-#endif\r
-\r
-inline void atomic_increment( sp_int32_t * pw )\r
-{\r
-    __sync_fetch_and_add( pw, 1 );\r
-}\r
-\r
-inline sp_int32_t atomic_decrement( sp_int32_t * pw )\r
-{\r
-    return __sync_fetch_and_add( pw, -1 );\r
-}\r
-\r
-inline sp_int32_t atomic_conditional_increment( sp_int32_t * pw )\r
-{\r
-    // long r = *pw;\r
-    // if( r != 0 ) ++*pw;\r
-    // return r;\r
-\r
-    sp_int32_t r = *pw;\r
-\r
-    for( ;; )\r
-    {\r
-        if( r == 0 )\r
-        {\r
-            return r;\r
-        }\r
-\r
-        sp_int32_t r2 = __sync_val_compare_and_swap( pw, r, r + 1 );\r
-\r
-        if( r2 == r )\r
-        {\r
-            return r;\r
-        }\r
-        else\r
-        {\r
-            r = r2;\r
-        }\r
-    }    \r
-}\r
-\r
-class sp_counted_base\r
-{\r
-private:\r
-\r
-    sp_counted_base( sp_counted_base const & );\r
-    sp_counted_base & operator= ( sp_counted_base const & );\r
-\r
-    sp_int32_t use_count_;        // #shared\r
-    sp_int32_t weak_count_;       // #weak + (#shared != 0)\r
-\r
-public:\r
-\r
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
-    {\r
-    }\r
-\r
-    virtual ~sp_counted_base() // nothrow\r
-    {\r
-    }\r
-\r
-    // dispose() is called when use_count_ drops to zero, to release\r
-    // the resources managed by *this.\r
-\r
-    virtual void dispose() = 0; // nothrow\r
-\r
-    // destroy() is called when weak_count_ drops to zero.\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        delete this;\r
-    }\r
-\r
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
-\r
-    void add_ref_copy()\r
-    {\r
-        atomic_increment( &use_count_ );\r
-    }\r
-\r
-    bool add_ref_lock() // true on success\r
-    {\r
-        return atomic_conditional_increment( &use_count_ ) != 0;\r
-    }\r
-\r
-    void release() // nothrow\r
-    {\r
-        if( atomic_decrement( &use_count_ ) == 1 )\r
-        {\r
-            dispose();\r
-            weak_release();\r
-        }\r
-    }\r
-\r
-    void weak_add_ref() // nothrow\r
-    {\r
-        atomic_increment( &weak_count_ );\r
-    }\r
-\r
-    void weak_release() // nothrow\r
-    {\r
-        if( atomic_decrement( &weak_count_ ) == 1 )\r
-        {\r
-            destroy();\r
-        }\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        return const_cast< sp_int32_t const volatile & >( use_count_ );\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//  detail/sp_counted_base_sync.hpp - g++ 4.1+ __sync intrinsics
+//
+//  Copyright (c) 2007 Peter Dimov
+//
+//  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
+
+#include <boost/detail/sp_typeinfo.hpp>
+#include <limits.h>
+
+#if defined( __ia64__ ) && defined( __INTEL_COMPILER )
+# include <ia64intrin.h>
+#endif
+
+namespace boost
+{
+
+namespace detail
+{
+
+#if INT_MAX >= 2147483647
+
+typedef int sp_int32_t;
+
+#else
+
+typedef long sp_int32_t;
+
+#endif
+
+inline void atomic_increment( sp_int32_t * pw )
+{
+    __sync_fetch_and_add( pw, 1 );
+}
+
+inline sp_int32_t atomic_decrement( sp_int32_t * pw )
+{
+    return __sync_fetch_and_add( pw, -1 );
+}
+
+inline sp_int32_t atomic_conditional_increment( sp_int32_t * pw )
+{
+    // long r = *pw;
+    // if( r != 0 ) ++*pw;
+    // return r;
+
+    sp_int32_t r = *pw;
+
+    for( ;; )
+    {
+        if( r == 0 )
+        {
+            return r;
+        }
+
+        sp_int32_t r2 = __sync_val_compare_and_swap( pw, r, r + 1 );
+
+        if( r2 == r )
+        {
+            return r;
+        }
+        else
+        {
+            r = r2;
+        }
+    }    
+}
+
+class sp_counted_base
+{
+private:
+
+    sp_counted_base( sp_counted_base const & );
+    sp_counted_base & operator= ( sp_counted_base const & );
+
+    sp_int32_t use_count_;        // #shared
+    sp_int32_t weak_count_;       // #weak + (#shared != 0)
+
+public:
+
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
+    {
+    }
+
+    virtual ~sp_counted_base() // nothrow
+    {
+    }
+
+    // dispose() is called when use_count_ drops to zero, to release
+    // the resources managed by *this.
+
+    virtual void dispose() = 0; // nothrow
+
+    // destroy() is called when weak_count_ drops to zero.
+
+    virtual void destroy() // nothrow
+    {
+        delete this;
+    }
+
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
+
+    void add_ref_copy()
+    {
+        atomic_increment( &use_count_ );
+    }
+
+    bool add_ref_lock() // true on success
+    {
+        return atomic_conditional_increment( &use_count_ ) != 0;
+    }
+
+    void release() // nothrow
+    {
+        if( atomic_decrement( &use_count_ ) == 1 )
+        {
+            dispose();
+            weak_release();
+        }
+    }
+
+    void weak_add_ref() // nothrow
+    {
+        atomic_increment( &weak_count_ );
+    }
+
+    void weak_release() // nothrow
+    {
+        if( atomic_decrement( &weak_count_ ) == 1 )
+        {
+            destroy();
+        }
+    }
+
+    long use_count() const // nothrow
+    {
+        return const_cast< sp_int32_t const volatile & >( use_count_ );
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
index 84ac67b0afcbb5b208686e2d9aaced0d88e1a2db..06aa4565712e240a220c2440298cb6d032f5b6d1 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  detail/sp_counted_base_w32.hpp\r
-//\r
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
-//  Copyright 2004-2005 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//\r
-//  Lock-free algorithm by Alexander Terekhov\r
-//\r
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)\r
-//  formulation\r
-//\r
-\r
-#include <boost/detail/interlocked.hpp>\r
-#include <boost/detail/workaround.hpp>\r
-#include <boost/detail/sp_typeinfo.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class sp_counted_base\r
-{\r
-private:\r
-\r
-    sp_counted_base( sp_counted_base const & );\r
-    sp_counted_base & operator= ( sp_counted_base const & );\r
-\r
-    long use_count_;        // #shared\r
-    long weak_count_;       // #weak + (#shared != 0)\r
-\r
-public:\r
-\r
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
-    {\r
-    }\r
-\r
-    virtual ~sp_counted_base() // nothrow\r
-    {\r
-    }\r
-\r
-    // dispose() is called when use_count_ drops to zero, to release\r
-    // the resources managed by *this.\r
-\r
-    virtual void dispose() = 0; // nothrow\r
-\r
-    // destroy() is called when weak_count_ drops to zero.\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        delete this;\r
-    }\r
-\r
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
-\r
-    void add_ref_copy()\r
-    {\r
-        BOOST_INTERLOCKED_INCREMENT( &use_count_ );\r
-    }\r
-\r
-    bool add_ref_lock() // true on success\r
-    {\r
-        for( ;; )\r
-        {\r
-            long tmp = static_cast< long const volatile& >( use_count_ );\r
-            if( tmp == 0 ) return false;\r
-\r
-#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1200 )\r
-\r
-            // work around a code generation bug\r
-\r
-            long tmp2 = tmp + 1;\r
-            if( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp2, tmp ) == tmp2 - 1 ) return true;\r
-\r
-#else\r
-\r
-            if( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp + 1, tmp ) == tmp ) return true;\r
-\r
-#endif\r
-        }\r
-    }\r
-\r
-    void release() // nothrow\r
-    {\r
-        if( BOOST_INTERLOCKED_DECREMENT( &use_count_ ) == 0 )\r
-        {\r
-            dispose();\r
-            weak_release();\r
-        }\r
-    }\r
-\r
-    void weak_add_ref() // nothrow\r
-    {\r
-        BOOST_INTERLOCKED_INCREMENT( &weak_count_ );\r
-    }\r
-\r
-    void weak_release() // nothrow\r
-    {\r
-        if( BOOST_INTERLOCKED_DECREMENT( &weak_count_ ) == 0 )\r
-        {\r
-            destroy();\r
-        }\r
-    }\r
-\r
-    long use_count() const // nothrow\r
-    {\r
-        return static_cast<long const volatile &>( use_count_ );\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  detail/sp_counted_base_w32.hpp
+//
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
+//  Copyright 2004-2005 Peter Dimov
+//
+//  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)
+//
+//
+//  Lock-free algorithm by Alexander Terekhov
+//
+//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
+//  formulation
+//
+
+#include <boost/detail/interlocked.hpp>
+#include <boost/detail/workaround.hpp>
+#include <boost/detail/sp_typeinfo.hpp>
+
+namespace boost
+{
+
+namespace detail
+{
+
+class sp_counted_base
+{
+private:
+
+    sp_counted_base( sp_counted_base const & );
+    sp_counted_base & operator= ( sp_counted_base const & );
+
+    long use_count_;        // #shared
+    long weak_count_;       // #weak + (#shared != 0)
+
+public:
+
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
+    {
+    }
+
+    virtual ~sp_counted_base() // nothrow
+    {
+    }
+
+    // dispose() is called when use_count_ drops to zero, to release
+    // the resources managed by *this.
+
+    virtual void dispose() = 0; // nothrow
+
+    // destroy() is called when weak_count_ drops to zero.
+
+    virtual void destroy() // nothrow
+    {
+        delete this;
+    }
+
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
+
+    void add_ref_copy()
+    {
+        BOOST_INTERLOCKED_INCREMENT( &use_count_ );
+    }
+
+    bool add_ref_lock() // true on success
+    {
+        for( ;; )
+        {
+            long tmp = static_cast< long const volatile& >( use_count_ );
+            if( tmp == 0 ) return false;
+
+#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1200 )
+
+            // work around a code generation bug
+
+            long tmp2 = tmp + 1;
+            if( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp2, tmp ) == tmp2 - 1 ) return true;
+
+#else
+
+            if( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp + 1, tmp ) == tmp ) return true;
+
+#endif
+        }
+    }
+
+    void release() // nothrow
+    {
+        if( BOOST_INTERLOCKED_DECREMENT( &use_count_ ) == 0 )
+        {
+            dispose();
+            weak_release();
+        }
+    }
+
+    void weak_add_ref() // nothrow
+    {
+        BOOST_INTERLOCKED_INCREMENT( &weak_count_ );
+    }
+
+    void weak_release() // nothrow
+    {
+        if( BOOST_INTERLOCKED_DECREMENT( &weak_count_ ) == 0 )
+        {
+            destroy();
+        }
+    }
+
+    long use_count() const // nothrow
+    {
+        return static_cast<long const volatile &>( use_count_ );
+    }
+};
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
index c513b82aa644dc3f6edcf2444d26449adcd5dba6..397421ae9fae05e5efa6d081333a86ed5f6e1dcf 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  detail/sp_counted_impl.hpp\r
-//\r
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
-//  Copyright 2004-2005 Peter Dimov\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <boost/config.hpp>\r
-\r
-#if defined(BOOST_SP_USE_STD_ALLOCATOR) && defined(BOOST_SP_USE_QUICK_ALLOCATOR)\r
-# error BOOST_SP_USE_STD_ALLOCATOR and BOOST_SP_USE_QUICK_ALLOCATOR are incompatible.\r
-#endif\r
-\r
-#include <boost/checked_delete.hpp>\r
-#include <boost/smart_ptr/detail/sp_counted_base.hpp>\r
-\r
-#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)\r
-#include <boost/smart_ptr/detail/quick_allocator.hpp>\r
-#endif\r
-\r
-#if defined(BOOST_SP_USE_STD_ALLOCATOR)\r
-#include <memory>           // std::allocator\r
-#endif\r
-\r
-#include <cstddef>          // std::size_t\r
-\r
-namespace boost\r
-{\r
-\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-\r
-void sp_scalar_constructor_hook( void * px, std::size_t size, void * pn );\r
-void sp_scalar_destructor_hook( void * px, std::size_t size, void * pn );\r
-\r
-#endif\r
-\r
-namespace detail\r
-{\r
-\r
-template<class X> class sp_counted_impl_p: public sp_counted_base\r
-{\r
-private:\r
-\r
-    X * px_;\r
-\r
-    sp_counted_impl_p( sp_counted_impl_p const & );\r
-    sp_counted_impl_p & operator= ( sp_counted_impl_p const & );\r
-\r
-    typedef sp_counted_impl_p<X> this_type;\r
-\r
-public:\r
-\r
-    explicit sp_counted_impl_p( X * px ): px_( px )\r
-    {\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        boost::sp_scalar_constructor_hook( px, sizeof(X), this );\r
-#endif\r
-    }\r
-\r
-    virtual void dispose() // nothrow\r
-    {\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        boost::sp_scalar_destructor_hook( px_, sizeof(X), this );\r
-#endif\r
-        boost::checked_delete( px_ );\r
-    }\r
-\r
-    virtual void * get_deleter( detail::sp_typeinfo const & )\r
-    {\r
-        return 0;\r
-    }\r
-\r
-#if defined(BOOST_SP_USE_STD_ALLOCATOR)\r
-\r
-    void * operator new( std::size_t )\r
-    {\r
-        return std::allocator<this_type>().allocate( 1, static_cast<this_type *>(0) );\r
-    }\r
-\r
-    void operator delete( void * p )\r
-    {\r
-        std::allocator<this_type>().deallocate( static_cast<this_type *>(p), 1 );\r
-    }\r
-\r
-#endif\r
-\r
-#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)\r
-\r
-    void * operator new( std::size_t )\r
-    {\r
-        return quick_allocator<this_type>::alloc();\r
-    }\r
-\r
-    void operator delete( void * p )\r
-    {\r
-        quick_allocator<this_type>::dealloc( p );\r
-    }\r
-\r
-#endif\r
-};\r
-\r
-//\r
-// Borland's Codeguard trips up over the -Vx- option here:\r
-//\r
-#ifdef __CODEGUARD__\r
-# pragma option push -Vx-\r
-#endif\r
-\r
-template<class P, class D> class sp_counted_impl_pd: public sp_counted_base\r
-{\r
-private:\r
-\r
-    P ptr; // copy constructor must not throw\r
-    D del; // copy constructor must not throw\r
-\r
-    sp_counted_impl_pd( sp_counted_impl_pd const & );\r
-    sp_counted_impl_pd & operator= ( sp_counted_impl_pd const & );\r
-\r
-    typedef sp_counted_impl_pd<P, D> this_type;\r
-\r
-public:\r
-\r
-    // pre: d(p) must not throw\r
-\r
-    sp_counted_impl_pd( P p, D d ): ptr(p), del(d)\r
-    {\r
-    }\r
-\r
-    virtual void dispose() // nothrow\r
-    {\r
-        del( ptr );\r
-    }\r
-\r
-    virtual void * get_deleter( detail::sp_typeinfo const & ti )\r
-    {\r
-        return ti == BOOST_SP_TYPEID(D)? &reinterpret_cast<char&>( del ): 0;\r
-    }\r
-\r
-#if defined(BOOST_SP_USE_STD_ALLOCATOR)\r
-\r
-    void * operator new( std::size_t )\r
-    {\r
-        return std::allocator<this_type>().allocate( 1, static_cast<this_type *>(0) );\r
-    }\r
-\r
-    void operator delete( void * p )\r
-    {\r
-        std::allocator<this_type>().deallocate( static_cast<this_type *>(p), 1 );\r
-    }\r
-\r
-#endif\r
-\r
-#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)\r
-\r
-    void * operator new( std::size_t )\r
-    {\r
-        return quick_allocator<this_type>::alloc();\r
-    }\r
-\r
-    void operator delete( void * p )\r
-    {\r
-        quick_allocator<this_type>::dealloc( p );\r
-    }\r
-\r
-#endif\r
-};\r
-\r
-template<class P, class D, class A> class sp_counted_impl_pda: public sp_counted_base\r
-{\r
-private:\r
-\r
-    P p_; // copy constructor must not throw\r
-    D d_; // copy constructor must not throw\r
-    A a_; // copy constructor must not throw\r
-\r
-    sp_counted_impl_pda( sp_counted_impl_pda const & );\r
-    sp_counted_impl_pda & operator= ( sp_counted_impl_pda const & );\r
-\r
-    typedef sp_counted_impl_pda<P, D, A> this_type;\r
-\r
-public:\r
-\r
-    // pre: d( p ) must not throw\r
-\r
-    sp_counted_impl_pda( P p, D d, A a ): p_( p ), d_( d ), a_( a )\r
-    {\r
-    }\r
-\r
-    virtual void dispose() // nothrow\r
-    {\r
-        d_( p_ );\r
-    }\r
-\r
-    virtual void destroy() // nothrow\r
-    {\r
-        typedef typename A::template rebind< this_type >::other A2;\r
-\r
-        A2 a2( a_ );\r
-\r
-        this->~this_type();\r
-        a2.deallocate( this, 1 );\r
-    }\r
-\r
-    virtual void * get_deleter( detail::sp_typeinfo const & ti )\r
-    {\r
-        return ti == BOOST_SP_TYPEID( D )? &reinterpret_cast<char&>( d_ ): 0;\r
-    }\r
-};\r
-\r
-#ifdef __CODEGUARD__\r
-# pragma option pop\r
-#endif\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  detail/sp_counted_impl.hpp
+//
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
+//  Copyright 2004-2005 Peter Dimov
+//
+// 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)
+//
+
+#include <boost/config.hpp>
+
+#if defined(BOOST_SP_USE_STD_ALLOCATOR) && defined(BOOST_SP_USE_QUICK_ALLOCATOR)
+# error BOOST_SP_USE_STD_ALLOCATOR and BOOST_SP_USE_QUICK_ALLOCATOR are incompatible.
+#endif
+
+#include <boost/checked_delete.hpp>
+#include <boost/smart_ptr/detail/sp_counted_base.hpp>
+
+#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)
+#include <boost/smart_ptr/detail/quick_allocator.hpp>
+#endif
+
+#if defined(BOOST_SP_USE_STD_ALLOCATOR)
+#include <memory>           // std::allocator
+#endif
+
+#include <cstddef>          // std::size_t
+
+namespace boost
+{
+
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+
+void sp_scalar_constructor_hook( void * px, std::size_t size, void * pn );
+void sp_scalar_destructor_hook( void * px, std::size_t size, void * pn );
+
+#endif
+
+namespace detail
+{
+
+template<class X> class sp_counted_impl_p: public sp_counted_base
+{
+private:
+
+    X * px_;
+
+    sp_counted_impl_p( sp_counted_impl_p const & );
+    sp_counted_impl_p & operator= ( sp_counted_impl_p const & );
+
+    typedef sp_counted_impl_p<X> this_type;
+
+public:
+
+    explicit sp_counted_impl_p( X * px ): px_( px )
+    {
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        boost::sp_scalar_constructor_hook( px, sizeof(X), this );
+#endif
+    }
+
+    virtual void dispose() // nothrow
+    {
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        boost::sp_scalar_destructor_hook( px_, sizeof(X), this );
+#endif
+        boost::checked_delete( px_ );
+    }
+
+    virtual void * get_deleter( detail::sp_typeinfo const & )
+    {
+        return 0;
+    }
+
+#if defined(BOOST_SP_USE_STD_ALLOCATOR)
+
+    void * operator new( std::size_t )
+    {
+        return std::allocator<this_type>().allocate( 1, static_cast<this_type *>(0) );
+    }
+
+    void operator delete( void * p )
+    {
+        std::allocator<this_type>().deallocate( static_cast<this_type *>(p), 1 );
+    }
+
+#endif
+
+#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)
+
+    void * operator new( std::size_t )
+    {
+        return quick_allocator<this_type>::alloc();
+    }
+
+    void operator delete( void * p )
+    {
+        quick_allocator<this_type>::dealloc( p );
+    }
+
+#endif
+};
+
+//
+// Borland's Codeguard trips up over the -Vx- option here:
+//
+#ifdef __CODEGUARD__
+# pragma option push -Vx-
+#endif
+
+template<class P, class D> class sp_counted_impl_pd: public sp_counted_base
+{
+private:
+
+    P ptr; // copy constructor must not throw
+    D del; // copy constructor must not throw
+
+    sp_counted_impl_pd( sp_counted_impl_pd const & );
+    sp_counted_impl_pd & operator= ( sp_counted_impl_pd const & );
+
+    typedef sp_counted_impl_pd<P, D> this_type;
+
+public:
+
+    // pre: d(p) must not throw
+
+    sp_counted_impl_pd( P p, D d ): ptr(p), del(d)
+    {
+    }
+
+    virtual void dispose() // nothrow
+    {
+        del( ptr );
+    }
+
+    virtual void * get_deleter( detail::sp_typeinfo const & ti )
+    {
+        return ti == BOOST_SP_TYPEID(D)? &reinterpret_cast<char&>( del ): 0;
+    }
+
+#if defined(BOOST_SP_USE_STD_ALLOCATOR)
+
+    void * operator new( std::size_t )
+    {
+        return std::allocator<this_type>().allocate( 1, static_cast<this_type *>(0) );
+    }
+
+    void operator delete( void * p )
+    {
+        std::allocator<this_type>().deallocate( static_cast<this_type *>(p), 1 );
+    }
+
+#endif
+
+#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)
+
+    void * operator new( std::size_t )
+    {
+        return quick_allocator<this_type>::alloc();
+    }
+
+    void operator delete( void * p )
+    {
+        quick_allocator<this_type>::dealloc( p );
+    }
+
+#endif
+};
+
+template<class P, class D, class A> class sp_counted_impl_pda: public sp_counted_base
+{
+private:
+
+    P p_; // copy constructor must not throw
+    D d_; // copy constructor must not throw
+    A a_; // copy constructor must not throw
+
+    sp_counted_impl_pda( sp_counted_impl_pda const & );
+    sp_counted_impl_pda & operator= ( sp_counted_impl_pda const & );
+
+    typedef sp_counted_impl_pda<P, D, A> this_type;
+
+public:
+
+    // pre: d( p ) must not throw
+
+    sp_counted_impl_pda( P p, D d, A a ): p_( p ), d_( d ), a_( a )
+    {
+    }
+
+    virtual void dispose() // nothrow
+    {
+        d_( p_ );
+    }
+
+    virtual void destroy() // nothrow
+    {
+        typedef typename A::template rebind< this_type >::other A2;
+
+        A2 a2( a_ );
+
+        this->~this_type();
+        a2.deallocate( this, 1 );
+    }
+
+    virtual void * get_deleter( detail::sp_typeinfo const & ti )
+    {
+        return ti == BOOST_SP_TYPEID( D )? &reinterpret_cast<char&>( d_ ): 0;
+    }
+};
+
+#ifdef __CODEGUARD__
+# pragma option pop
+#endif
+
+} // namespace detail
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED
index 1d5dc48019233fc99e4c16a2aa8fad5ba767684f..cb0282dbad7bb528a4c991980229aba9d2e5eff9 100644 (file)
@@ -1,49 +1,49 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  boost/smart_ptr/detail/sp_has_sync.hpp\r
-//\r
-//  Copyright (c) 2008, 2009 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  Defines the BOOST_SP_HAS_SYNC macro if the __sync_* intrinsics\r
-//  are available.\r
-//\r
-\r
-#if defined(__GNUC__) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 )\r
-\r
-#define BOOST_SP_HAS_SYNC\r
-\r
-#if defined( __arm__ )  || defined( __armel__ )\r
-#undef BOOST_SP_HAS_SYNC\r
-#endif\r
-\r
-#if defined( __hppa ) || defined( __hppa__ )\r
-#undef BOOST_SP_HAS_SYNC\r
-#endif\r
-\r
-#if defined( __m68k__ )\r
-#undef BOOST_SP_HAS_SYNC\r
-#endif\r
-\r
-#if defined( __sparc__ )\r
-#undef BOOST_SP_HAS_SYNC\r
-#endif\r
-\r
-#if defined( __INTEL_COMPILER ) && !defined( __ia64__ )\r
-#undef BOOST_SP_HAS_SYNC\r
-#endif\r
-\r
-#endif // __GNUC__ * 100 + __GNUC_MINOR__ >= 401\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  boost/smart_ptr/detail/sp_has_sync.hpp
+//
+//  Copyright (c) 2008, 2009 Peter Dimov
+//
+//  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)
+//
+//  Defines the BOOST_SP_HAS_SYNC macro if the __sync_* intrinsics
+//  are available.
+//
+
+#if defined(__GNUC__) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 )
+
+#define BOOST_SP_HAS_SYNC
+
+#if defined( __arm__ )  || defined( __armel__ )
+#undef BOOST_SP_HAS_SYNC
+#endif
+
+#if defined( __hppa ) || defined( __hppa__ )
+#undef BOOST_SP_HAS_SYNC
+#endif
+
+#if defined( __m68k__ )
+#undef BOOST_SP_HAS_SYNC
+#endif
+
+#if defined( __sparc__ )
+#undef BOOST_SP_HAS_SYNC
+#endif
+
+#if defined( __INTEL_COMPILER ) && !defined( __ia64__ )
+#undef BOOST_SP_HAS_SYNC
+#endif
+
+#endif // __GNUC__ * 100 + __GNUC_MINOR__ >= 401
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
index e4653f784399bcc91f70f79d8362c27f8ca7399b..1640a38d4944a72f5b65252a4d3341917b642553 100644 (file)
@@ -1,53 +1,53 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  boost/detail/spinlock.hpp\r
-//\r
-//  Copyright (c) 2008 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  struct spinlock\r
-//  {\r
-//      void lock();\r
-//      bool try_lock();\r
-//      void unlock();\r
-//\r
-//      class scoped_lock;\r
-//  };\r
-//\r
-//  #define BOOST_DETAIL_SPINLOCK_INIT <unspecified>\r
-//\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/smart_ptr/detail/sp_has_sync.hpp>\r
-\r
-#if defined(__GNUC__) && defined( __arm__ ) && !defined( __thumb__ )\r
-#  include <boost/smart_ptr/detail/spinlock_gcc_arm.hpp>\r
-\r
-#elif defined( BOOST_SP_HAS_SYNC )\r
-#  include <boost/smart_ptr/detail/spinlock_sync.hpp>\r
-\r
-#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)\r
-#  include <boost/smart_ptr/detail/spinlock_w32.hpp>\r
-\r
-#elif defined(BOOST_HAS_PTHREADS)\r
-#  include <boost/smart_ptr/detail/spinlock_pt.hpp>\r
-\r
-#elif !defined(BOOST_HAS_THREADS)\r
-#  include <boost/smart_ptr/detail/spinlock_nt.hpp>\r
-\r
-#else\r
-#  error Unrecognized threading platform\r
-#endif\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  boost/detail/spinlock.hpp
+//
+//  Copyright (c) 2008 Peter Dimov
+//
+//  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)
+//
+//  struct spinlock
+//  {
+//      void lock();
+//      bool try_lock();
+//      void unlock();
+//
+//      class scoped_lock;
+//  };
+//
+//  #define BOOST_DETAIL_SPINLOCK_INIT <unspecified>
+//
+
+#include <boost/config.hpp>
+#include <boost/smart_ptr/detail/sp_has_sync.hpp>
+
+#if defined(__GNUC__) && defined( __arm__ ) && !defined( __thumb__ )
+#  include <boost/smart_ptr/detail/spinlock_gcc_arm.hpp>
+
+#elif defined( BOOST_SP_HAS_SYNC )
+#  include <boost/smart_ptr/detail/spinlock_sync.hpp>
+
+#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#  include <boost/smart_ptr/detail/spinlock_w32.hpp>
+
+#elif defined(BOOST_HAS_PTHREADS)
+#  include <boost/smart_ptr/detail/spinlock_pt.hpp>
+
+#elif !defined(BOOST_HAS_THREADS)
+#  include <boost/smart_ptr/detail/spinlock_nt.hpp>
+
+#else
+#  error Unrecognized threading platform
+#endif
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
index 7d7c786985279c076ade146aa78d32ca456833ed..ba6c511e28015409229a4ef1ec82428a909bc3ee 100644 (file)
@@ -1,85 +1,85 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED\r
-\r
-//\r
-//  Copyright (c) 2008 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <boost/smart_ptr/detail/yield_k.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class spinlock\r
-{\r
-public:\r
-\r
-    int v_;\r
-\r
-public:\r
-\r
-    bool try_lock()\r
-    {\r
-        int r;\r
-\r
-        __asm__ __volatile__(\r
-            "swp %0, %1, [%2]":\r
-            "=&r"( r ): // outputs\r
-            "r"( 1 ), "r"( &v_ ): // inputs\r
-            "memory", "cc" );\r
-\r
-        return r == 0;\r
-    }\r
-\r
-    void lock()\r
-    {\r
-        for( unsigned k = 0; !try_lock(); ++k )\r
-        {\r
-            boost::detail::yield( k );\r
-        }\r
-    }\r
-\r
-    void unlock()\r
-    {\r
-        __asm__ __volatile__( "" ::: "memory" );\r
-        *const_cast< int volatile* >( &v_ ) = 0;\r
-    }\r
-\r
-public:\r
-\r
-    class scoped_lock\r
-    {\r
-    private:\r
-\r
-        spinlock & sp_;\r
-\r
-        scoped_lock( scoped_lock const & );\r
-        scoped_lock & operator=( scoped_lock const & );\r
-\r
-    public:\r
-\r
-        explicit scoped_lock( spinlock & sp ): sp_( sp )\r
-        {\r
-            sp.lock();\r
-        }\r
-\r
-        ~scoped_lock()\r
-        {\r
-            sp_.unlock();\r
-        }\r
-    };\r
-};\r
-\r
-} // namespace detail\r
-} // namespace boost\r
-\r
-#define BOOST_DETAIL_SPINLOCK_INIT {0}\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED
+
+//
+//  Copyright (c) 2008 Peter Dimov
+//
+//  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)
+//
+
+#include <boost/smart_ptr/detail/yield_k.hpp>
+
+namespace boost
+{
+
+namespace detail
+{
+
+class spinlock
+{
+public:
+
+    int v_;
+
+public:
+
+    bool try_lock()
+    {
+        int r;
+
+        __asm__ __volatile__(
+            "swp %0, %1, [%2]":
+            "=&r"( r ): // outputs
+            "r"( 1 ), "r"( &v_ ): // inputs
+            "memory", "cc" );
+
+        return r == 0;
+    }
+
+    void lock()
+    {
+        for( unsigned k = 0; !try_lock(); ++k )
+        {
+            boost::detail::yield( k );
+        }
+    }
+
+    void unlock()
+    {
+        __asm__ __volatile__( "" ::: "memory" );
+        *const_cast< int volatile* >( &v_ ) = 0;
+    }
+
+public:
+
+    class scoped_lock
+    {
+    private:
+
+        spinlock & sp_;
+
+        scoped_lock( scoped_lock const & );
+        scoped_lock & operator=( scoped_lock const & );
+
+    public:
+
+        explicit scoped_lock( spinlock & sp ): sp_( sp )
+        {
+            sp.lock();
+        }
+
+        ~scoped_lock()
+        {
+            sp_.unlock();
+        }
+    };
+};
+
+} // namespace detail
+} // namespace boost
+
+#define BOOST_DETAIL_SPINLOCK_INIT {0}
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED
index 920d67e1621b3b121afeff0cd0554486dd79d976..1f399d0dd4162551b369ac35f27f28bb02275cba 100644 (file)
@@ -1,89 +1,89 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  Copyright (c) 2008 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <boost/assert.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class spinlock\r
-{\r
-public:\r
-\r
-    bool locked_;\r
-\r
-public:\r
-\r
-    inline bool try_lock()\r
-    {\r
-        if( locked_ )\r
-        {\r
-            return false;\r
-        }\r
-        else\r
-        {\r
-            locked_ = true;\r
-            return true;\r
-        }\r
-    }\r
-\r
-    inline void lock()\r
-    {\r
-        BOOST_ASSERT( !locked_ );\r
-        locked_ = true;\r
-    }\r
-\r
-    inline void unlock()\r
-    {\r
-        BOOST_ASSERT( locked_ );\r
-        locked_ = false;\r
-    }\r
-\r
-public:\r
-\r
-    class scoped_lock\r
-    {\r
-    private:\r
-\r
-        spinlock & sp_;\r
-\r
-        scoped_lock( scoped_lock const & );\r
-        scoped_lock & operator=( scoped_lock const & );\r
-\r
-    public:\r
-\r
-        explicit scoped_lock( spinlock & sp ): sp_( sp )\r
-        {\r
-            sp.lock();\r
-        }\r
-\r
-        ~scoped_lock()\r
-        {\r
-            sp_.unlock();\r
-        }\r
-    };\r
-};\r
-\r
-} // namespace detail\r
-} // namespace boost\r
-\r
-#define BOOST_DETAIL_SPINLOCK_INIT { false }\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  Copyright (c) 2008 Peter Dimov
+//
+//  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)
+//
+
+#include <boost/assert.hpp>
+
+namespace boost
+{
+
+namespace detail
+{
+
+class spinlock
+{
+public:
+
+    bool locked_;
+
+public:
+
+    inline bool try_lock()
+    {
+        if( locked_ )
+        {
+            return false;
+        }
+        else
+        {
+            locked_ = true;
+            return true;
+        }
+    }
+
+    inline void lock()
+    {
+        BOOST_ASSERT( !locked_ );
+        locked_ = true;
+    }
+
+    inline void unlock()
+    {
+        BOOST_ASSERT( locked_ );
+        locked_ = false;
+    }
+
+public:
+
+    class scoped_lock
+    {
+    private:
+
+        spinlock & sp_;
+
+        scoped_lock( scoped_lock const & );
+        scoped_lock & operator=( scoped_lock const & );
+
+    public:
+
+        explicit scoped_lock( spinlock & sp ): sp_( sp )
+        {
+            sp.lock();
+        }
+
+        ~scoped_lock()
+        {
+            sp_.unlock();
+        }
+    };
+};
+
+} // namespace detail
+} // namespace boost
+
+#define BOOST_DETAIL_SPINLOCK_INIT { false }
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED
index 8a62a90440acc63a288f4efca4653137b5a55e14..0e2e08ac80a8cc985bcf49a7a01d5cabf616ac2a 100644 (file)
@@ -1,87 +1,87 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  boost/detail/spinlock_pool.hpp\r
-//\r
-//  Copyright (c) 2008 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  spinlock_pool<0> is reserved for atomic<>, when/if it arrives\r
-//  spinlock_pool<1> is reserved for shared_ptr reference counts\r
-//  spinlock_pool<2> is reserved for shared_ptr atomic access\r
-//\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/smart_ptr/detail/spinlock.hpp>\r
-#include <cstddef>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-template< int I > class spinlock_pool\r
-{\r
-private:\r
-\r
-    static spinlock pool_[ 41 ];\r
-\r
-public:\r
-\r
-    static spinlock & spinlock_for( void const * pv )\r
-    {\r
-        std::size_t i = reinterpret_cast< std::size_t >( pv ) % 41;\r
-        return pool_[ i ];\r
-    }\r
-\r
-    class scoped_lock\r
-    {\r
-    private:\r
-\r
-        spinlock & sp_;\r
-\r
-        scoped_lock( scoped_lock const & );\r
-        scoped_lock & operator=( scoped_lock const & );\r
-\r
-    public:\r
-\r
-        explicit scoped_lock( void const * pv ): sp_( spinlock_for( pv ) )\r
-        {\r
-            sp_.lock();\r
-        }\r
-\r
-        ~scoped_lock()\r
-        {\r
-            sp_.unlock();\r
-        }\r
-    };\r
-};\r
-\r
-template< int I > spinlock spinlock_pool< I >::pool_[ 41 ] =\r
-{\r
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
-    BOOST_DETAIL_SPINLOCK_INIT\r
-};\r
-\r
-} // namespace detail\r
-} // namespace boost\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  boost/detail/spinlock_pool.hpp
+//
+//  Copyright (c) 2008 Peter Dimov
+//
+//  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)
+//
+//  spinlock_pool<0> is reserved for atomic<>, when/if it arrives
+//  spinlock_pool<1> is reserved for shared_ptr reference counts
+//  spinlock_pool<2> is reserved for shared_ptr atomic access
+//
+
+#include <boost/config.hpp>
+#include <boost/smart_ptr/detail/spinlock.hpp>
+#include <cstddef>
+
+namespace boost
+{
+
+namespace detail
+{
+
+template< int I > class spinlock_pool
+{
+private:
+
+    static spinlock pool_[ 41 ];
+
+public:
+
+    static spinlock & spinlock_for( void const * pv )
+    {
+        std::size_t i = reinterpret_cast< std::size_t >( pv ) % 41;
+        return pool_[ i ];
+    }
+
+    class scoped_lock
+    {
+    private:
+
+        spinlock & sp_;
+
+        scoped_lock( scoped_lock const & );
+        scoped_lock & operator=( scoped_lock const & );
+
+    public:
+
+        explicit scoped_lock( void const * pv ): sp_( spinlock_for( pv ) )
+        {
+            sp_.lock();
+        }
+
+        ~scoped_lock()
+        {
+            sp_.unlock();
+        }
+    };
+};
+
+template< int I > spinlock spinlock_pool< I >::pool_[ 41 ] =
+{
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
+    BOOST_DETAIL_SPINLOCK_INIT
+};
+
+} // namespace detail
+} // namespace boost
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED
index f55e61f6b786aa8d7653f741f3061c11eeaf10ba..f9cabfc3a7c599b2dfedf28458ef33d4734cfd1f 100644 (file)
@@ -1,79 +1,79 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  Copyright (c) 2008 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <pthread.h>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class spinlock\r
-{\r
-public:\r
-\r
-    pthread_mutex_t v_;\r
-\r
-public:\r
-\r
-    bool try_lock()\r
-    {\r
-        return pthread_mutex_trylock( &v_ ) == 0;\r
-    }\r
-\r
-    void lock()\r
-    {\r
-        pthread_mutex_lock( &v_ );\r
-    }\r
-\r
-    void unlock()\r
-    {\r
-        pthread_mutex_unlock( &v_ );\r
-    }\r
-\r
-public:\r
-\r
-    class scoped_lock\r
-    {\r
-    private:\r
-\r
-        spinlock & sp_;\r
-\r
-        scoped_lock( scoped_lock const & );\r
-        scoped_lock & operator=( scoped_lock const & );\r
-\r
-    public:\r
-\r
-        explicit scoped_lock( spinlock & sp ): sp_( sp )\r
-        {\r
-            sp.lock();\r
-        }\r
-\r
-        ~scoped_lock()\r
-        {\r
-            sp_.unlock();\r
-        }\r
-    };\r
-};\r
-\r
-} // namespace detail\r
-} // namespace boost\r
-\r
-#define BOOST_DETAIL_SPINLOCK_INIT { PTHREAD_MUTEX_INITIALIZER }\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  Copyright (c) 2008 Peter Dimov
+//
+//  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)
+//
+
+#include <pthread.h>
+
+namespace boost
+{
+
+namespace detail
+{
+
+class spinlock
+{
+public:
+
+    pthread_mutex_t v_;
+
+public:
+
+    bool try_lock()
+    {
+        return pthread_mutex_trylock( &v_ ) == 0;
+    }
+
+    void lock()
+    {
+        pthread_mutex_lock( &v_ );
+    }
+
+    void unlock()
+    {
+        pthread_mutex_unlock( &v_ );
+    }
+
+public:
+
+    class scoped_lock
+    {
+    private:
+
+        spinlock & sp_;
+
+        scoped_lock( scoped_lock const & );
+        scoped_lock & operator=( scoped_lock const & );
+
+    public:
+
+        explicit scoped_lock( spinlock & sp ): sp_( sp )
+        {
+            sp.lock();
+        }
+
+        ~scoped_lock()
+        {
+            sp_.unlock();
+        }
+    };
+};
+
+} // namespace detail
+} // namespace boost
+
+#define BOOST_DETAIL_SPINLOCK_INIT { PTHREAD_MUTEX_INITIALIZER }
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED
index f948306a3f24c4eac3dfc8257b2d8e34dde21cf4..a7145c5ac2782e7051a75db82e2f524334ce8443 100644 (file)
@@ -1,87 +1,87 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  Copyright (c) 2008 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <boost/smart_ptr/detail/yield_k.hpp>\r
-\r
-#if defined( __ia64__ ) && defined( __INTEL_COMPILER )\r
-# include <ia64intrin.h>\r
-#endif\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class spinlock\r
-{\r
-public:\r
-\r
-    int v_;\r
-\r
-public:\r
-\r
-    bool try_lock()\r
-    {\r
-        int r = __sync_lock_test_and_set( &v_, 1 );\r
-        return r == 0;\r
-    }\r
-\r
-    void lock()\r
-    {\r
-        for( unsigned k = 0; !try_lock(); ++k )\r
-        {\r
-            boost::detail::yield( k );\r
-        }\r
-    }\r
-\r
-    void unlock()\r
-    {\r
-        __sync_lock_release( &v_ );\r
-    }\r
-\r
-public:\r
-\r
-    class scoped_lock\r
-    {\r
-    private:\r
-\r
-        spinlock & sp_;\r
-\r
-        scoped_lock( scoped_lock const & );\r
-        scoped_lock & operator=( scoped_lock const & );\r
-\r
-    public:\r
-\r
-        explicit scoped_lock( spinlock & sp ): sp_( sp )\r
-        {\r
-            sp.lock();\r
-        }\r
-\r
-        ~scoped_lock()\r
-        {\r
-            sp_.unlock();\r
-        }\r
-    };\r
-};\r
-\r
-} // namespace detail\r
-} // namespace boost\r
-\r
-#define BOOST_DETAIL_SPINLOCK_INIT {0}\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  Copyright (c) 2008 Peter Dimov
+//
+//  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)
+//
+
+#include <boost/smart_ptr/detail/yield_k.hpp>
+
+#if defined( __ia64__ ) && defined( __INTEL_COMPILER )
+# include <ia64intrin.h>
+#endif
+
+namespace boost
+{
+
+namespace detail
+{
+
+class spinlock
+{
+public:
+
+    int v_;
+
+public:
+
+    bool try_lock()
+    {
+        int r = __sync_lock_test_and_set( &v_, 1 );
+        return r == 0;
+    }
+
+    void lock()
+    {
+        for( unsigned k = 0; !try_lock(); ++k )
+        {
+            boost::detail::yield( k );
+        }
+    }
+
+    void unlock()
+    {
+        __sync_lock_release( &v_ );
+    }
+
+public:
+
+    class scoped_lock
+    {
+    private:
+
+        spinlock & sp_;
+
+        scoped_lock( scoped_lock const & );
+        scoped_lock & operator=( scoped_lock const & );
+
+    public:
+
+        explicit scoped_lock( spinlock & sp ): sp_( sp )
+        {
+            sp.lock();
+        }
+
+        ~scoped_lock()
+        {
+            sp_.unlock();
+        }
+    };
+};
+
+} // namespace detail
+} // namespace boost
+
+#define BOOST_DETAIL_SPINLOCK_INIT {0}
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED
index 8caa33c8724ddae649f4d62e8b8951c2b03db876..fb97629c7cdb811fbe0f2997a9b8118c87113cfd 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  Copyright (c) 2008 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-#include <boost/detail/interlocked.hpp>\r
-#include <boost/smart_ptr/detail/yield_k.hpp>\r
-\r
-// BOOST_COMPILER_FENCE\r
-\r
-#if defined(__INTEL_COMPILER)\r
-\r
-#define BOOST_COMPILER_FENCE __memory_barrier();\r
-\r
-#elif defined( _MSC_VER ) && _MSC_VER >= 1310\r
-\r
-extern "C" void _ReadWriteBarrier();\r
-#pragma intrinsic( _ReadWriteBarrier )\r
-\r
-#define BOOST_COMPILER_FENCE _ReadWriteBarrier();\r
-\r
-#elif defined(__GNUC__)\r
-\r
-#define BOOST_COMPILER_FENCE __asm__ __volatile__( "" : : : "memory" );\r
-\r
-#else\r
-\r
-#define BOOST_COMPILER_FENCE\r
-\r
-#endif\r
-\r
-//\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class spinlock\r
-{\r
-public:\r
-\r
-    long v_;\r
-\r
-public:\r
-\r
-    bool try_lock()\r
-    {\r
-        long r = BOOST_INTERLOCKED_EXCHANGE( &v_, 1 );\r
-\r
-        BOOST_COMPILER_FENCE\r
-\r
-        return r == 0;\r
-    }\r
-\r
-    void lock()\r
-    {\r
-        for( unsigned k = 0; !try_lock(); ++k )\r
-        {\r
-            boost::detail::yield( k );\r
-        }\r
-    }\r
-\r
-    void unlock()\r
-    {\r
-        BOOST_COMPILER_FENCE\r
-        *const_cast< long volatile* >( &v_ ) = 0;\r
-    }\r
-\r
-public:\r
-\r
-    class scoped_lock\r
-    {\r
-    private:\r
-\r
-        spinlock & sp_;\r
-\r
-        scoped_lock( scoped_lock const & );\r
-        scoped_lock & operator=( scoped_lock const & );\r
-\r
-    public:\r
-\r
-        explicit scoped_lock( spinlock & sp ): sp_( sp )\r
-        {\r
-            sp.lock();\r
-        }\r
-\r
-        ~scoped_lock()\r
-        {\r
-            sp_.unlock();\r
-        }\r
-    };\r
-};\r
-\r
-} // namespace detail\r
-} // namespace boost\r
-\r
-#define BOOST_DETAIL_SPINLOCK_INIT {0}\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  Copyright (c) 2008 Peter Dimov
+//
+//  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)
+//
+
+#include <boost/detail/interlocked.hpp>
+#include <boost/smart_ptr/detail/yield_k.hpp>
+
+// BOOST_COMPILER_FENCE
+
+#if defined(__INTEL_COMPILER)
+
+#define BOOST_COMPILER_FENCE __memory_barrier();
+
+#elif defined( _MSC_VER ) && _MSC_VER >= 1310
+
+extern "C" void _ReadWriteBarrier();
+#pragma intrinsic( _ReadWriteBarrier )
+
+#define BOOST_COMPILER_FENCE _ReadWriteBarrier();
+
+#elif defined(__GNUC__)
+
+#define BOOST_COMPILER_FENCE __asm__ __volatile__( "" : : : "memory" );
+
+#else
+
+#define BOOST_COMPILER_FENCE
+
+#endif
+
+//
+
+namespace boost
+{
+
+namespace detail
+{
+
+class spinlock
+{
+public:
+
+    long v_;
+
+public:
+
+    bool try_lock()
+    {
+        long r = BOOST_INTERLOCKED_EXCHANGE( &v_, 1 );
+
+        BOOST_COMPILER_FENCE
+
+        return r == 0;
+    }
+
+    void lock()
+    {
+        for( unsigned k = 0; !try_lock(); ++k )
+        {
+            boost::detail::yield( k );
+        }
+    }
+
+    void unlock()
+    {
+        BOOST_COMPILER_FENCE
+        *const_cast< long volatile* >( &v_ ) = 0;
+    }
+
+public:
+
+    class scoped_lock
+    {
+    private:
+
+        spinlock & sp_;
+
+        scoped_lock( scoped_lock const & );
+        scoped_lock & operator=( scoped_lock const & );
+
+    public:
+
+        explicit scoped_lock( spinlock & sp ): sp_( sp )
+        {
+            sp.lock();
+        }
+
+        ~scoped_lock()
+        {
+            sp_.unlock();
+        }
+    };
+};
+
+} // namespace detail
+} // namespace boost
+
+#define BOOST_DETAIL_SPINLOCK_INIT {0}
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED
index 7fafea7d38530ebbfef769eac2b02d9d172696de..a956cc0c974168883d99badc46961e076b983493 100644 (file)
-#ifndef BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED\r
-\r
-// MS compatible compilers support #pragma once\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-# pragma once\r
-#endif\r
-\r
-//\r
-//  yield_k.hpp\r
-//\r
-//  Copyright (c) 2008 Peter Dimov\r
-//\r
-//  void yield( unsigned k );\r
-//\r
-//  Typical use:\r
-//\r
-//  for( unsigned k = 0; !try_lock(); ++k ) yield( k );\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt\r
-//\r
-\r
-#include <boost/config.hpp>\r
-\r
-// BOOST_SMT_PAUSE\r
-\r
-#if defined(_MSC_VER) && _MSC_VER >= 1310 && ( defined(_M_IX86) || defined(_M_X64) )\r
-\r
-extern "C" void _mm_pause();\r
-#pragma intrinsic( _mm_pause )\r
-\r
-#define BOOST_SMT_PAUSE _mm_pause();\r
-\r
-#elif defined(__GNUC__) && ( defined(__i386__) || defined(__x86_64__) )\r
-\r
-#define BOOST_SMT_PAUSE __asm__ __volatile__( "rep; nop" : : : "memory" );\r
-\r
-#endif\r
-\r
-//\r
-\r
-#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )\r
-\r
-#if defined( BOOST_USE_WINDOWS_H )\r
-# include <windows.h>\r
-#endif\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-#if !defined( BOOST_USE_WINDOWS_H )\r
-  extern "C" void __stdcall Sleep( unsigned ms );\r
-#endif\r
-\r
-inline void yield( unsigned k )\r
-{\r
-    if( k < 4 )\r
-    {\r
-    }\r
-#if defined( BOOST_SMT_PAUSE )\r
-    else if( k < 16 )\r
-    {\r
-        BOOST_SMT_PAUSE\r
-    }\r
-#endif\r
-    else if( k < 32 )\r
-    {\r
-        Sleep( 0 );\r
-    }\r
-    else\r
-    {\r
-        Sleep( 1 );\r
-    }\r
-}\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#elif defined( BOOST_HAS_PTHREADS )\r
-\r
-#include <sched.h>\r
-#include <time.h>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-inline void yield( unsigned k )\r
-{\r
-    if( k < 4 )\r
-    {\r
-    }\r
-#if defined( BOOST_SMT_PAUSE )\r
-    else if( k < 16 )\r
-    {\r
-        BOOST_SMT_PAUSE\r
-    }\r
-#endif\r
-    else if( k < 32 || k & 1 )\r
-    {\r
-        sched_yield();\r
-    }\r
-    else\r
-    {\r
-        // g++ -Wextra warns on {} or {0}\r
-        struct timespec rqtp = { 0, 0 };\r
-\r
-        // POSIX says that timespec has tv_sec and tv_nsec\r
-        // But it doesn't guarantee order or placement\r
-\r
-        rqtp.tv_sec = 0;\r
-        rqtp.tv_nsec = 1000;\r
-\r
-        nanosleep( &rqtp, 0 );\r
-    }\r
-}\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#else\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-inline void yield( unsigned )\r
-{\r
-}\r
-\r
-} // namespace detail\r
-\r
-} // namespace boost\r
-\r
-#endif\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED
+#define BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+//  yield_k.hpp
+//
+//  Copyright (c) 2008 Peter Dimov
+//
+//  void yield( unsigned k );
+//
+//  Typical use:
+//
+//  for( unsigned k = 0; !try_lock(); ++k ) yield( k );
+//
+//  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
+//
+
+#include <boost/config.hpp>
+
+// BOOST_SMT_PAUSE
+
+#if defined(_MSC_VER) && _MSC_VER >= 1310 && ( defined(_M_IX86) || defined(_M_X64) )
+
+extern "C" void _mm_pause();
+#pragma intrinsic( _mm_pause )
+
+#define BOOST_SMT_PAUSE _mm_pause();
+
+#elif defined(__GNUC__) && ( defined(__i386__) || defined(__x86_64__) )
+
+#define BOOST_SMT_PAUSE __asm__ __volatile__( "rep; nop" : : : "memory" );
+
+#endif
+
+//
+
+#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
+
+#if defined( BOOST_USE_WINDOWS_H )
+# include <windows.h>
+#endif
+
+namespace boost
+{
+
+namespace detail
+{
+
+#if !defined( BOOST_USE_WINDOWS_H )
+  extern "C" void __stdcall Sleep( unsigned ms );
+#endif
+
+inline void yield( unsigned k )
+{
+    if( k < 4 )
+    {
+    }
+#if defined( BOOST_SMT_PAUSE )
+    else if( k < 16 )
+    {
+        BOOST_SMT_PAUSE
+    }
+#endif
+    else if( k < 32 )
+    {
+        Sleep( 0 );
+    }
+    else
+    {
+        Sleep( 1 );
+    }
+}
+
+} // namespace detail
+
+} // namespace boost
+
+#elif defined( BOOST_HAS_PTHREADS )
+
+#include <sched.h>
+#include <time.h>
+
+namespace boost
+{
+
+namespace detail
+{
+
+inline void yield( unsigned k )
+{
+    if( k < 4 )
+    {
+    }
+#if defined( BOOST_SMT_PAUSE )
+    else if( k < 16 )
+    {
+        BOOST_SMT_PAUSE
+    }
+#endif
+    else if( k < 32 || k & 1 )
+    {
+        sched_yield();
+    }
+    else
+    {
+        // g++ -Wextra warns on {} or {0}
+        struct timespec rqtp = { 0, 0 };
+
+        // POSIX says that timespec has tv_sec and tv_nsec
+        // But it doesn't guarantee order or placement
+
+        rqtp.tv_sec = 0;
+        rqtp.tv_nsec = 1000;
+
+        nanosleep( &rqtp, 0 );
+    }
+}
+
+} // namespace detail
+
+} // namespace boost
+
+#else
+
+namespace boost
+{
+
+namespace detail
+{
+
+inline void yield( unsigned )
+{
+}
+
+} // namespace detail
+
+} // namespace boost
+
+#endif
+
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED
index 20a586d790dcebbdc1074a51f17f128634f18e10..f7b144525b16057341c25ad3ce164a7763480aa9 100644 (file)
@@ -1,79 +1,79 @@
-#ifndef BOOST_SMART_PTR_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED\r
-\r
-//\r
-//  enable_shared_from_this.hpp\r
-//\r
-//  Copyright 2002, 2009 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt\r
-//\r
-//  http://www.boost.org/libs/smart_ptr/enable_shared_from_this.html\r
-//\r
-\r
-#include <boost/smart_ptr/weak_ptr.hpp>\r
-#include <boost/smart_ptr/shared_ptr.hpp>\r
-#include <boost/assert.hpp>\r
-#include <boost/config.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-template<class T> class enable_shared_from_this\r
-{\r
-protected:\r
-\r
-    enable_shared_from_this()\r
-    {\r
-    }\r
-\r
-    enable_shared_from_this(enable_shared_from_this const &)\r
-    {\r
-    }\r
-\r
-    enable_shared_from_this & operator=(enable_shared_from_this const &)\r
-    {\r
-        return *this;\r
-    }\r
-\r
-    ~enable_shared_from_this()\r
-    {\r
-    }\r
-\r
-public:\r
-\r
-    shared_ptr<T> shared_from_this()\r
-    {\r
-        shared_ptr<T> p( weak_this_ );\r
-        BOOST_ASSERT( p.get() == this );\r
-        return p;\r
-    }\r
-\r
-    shared_ptr<T const> shared_from_this() const\r
-    {\r
-        shared_ptr<T const> p( weak_this_ );\r
-        BOOST_ASSERT( p.get() == this );\r
-        return p;\r
-    }\r
-\r
-public: // actually private, but avoids compiler template friendship issues\r
-\r
-    // Note: invoked automatically by shared_ptr; do not call\r
-    template<class X, class Y> void _internal_accept_owner( shared_ptr<X> const * ppx, Y * py ) const\r
-    {\r
-        if( weak_this_.expired() )\r
-        {\r
-            weak_this_ = shared_ptr<T>( *ppx, py );\r
-        }\r
-    }\r
-\r
-private:\r
-\r
-    mutable weak_ptr<T> weak_this_;\r
-};\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED
+#define BOOST_SMART_PTR_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED
+
+//
+//  enable_shared_from_this.hpp
+//
+//  Copyright 2002, 2009 Peter Dimov
+//
+//  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
+//
+//  http://www.boost.org/libs/smart_ptr/enable_shared_from_this.html
+//
+
+#include <boost/smart_ptr/weak_ptr.hpp>
+#include <boost/smart_ptr/shared_ptr.hpp>
+#include <boost/assert.hpp>
+#include <boost/config.hpp>
+
+namespace boost
+{
+
+template<class T> class enable_shared_from_this
+{
+protected:
+
+    enable_shared_from_this()
+    {
+    }
+
+    enable_shared_from_this(enable_shared_from_this const &)
+    {
+    }
+
+    enable_shared_from_this & operator=(enable_shared_from_this const &)
+    {
+        return *this;
+    }
+
+    ~enable_shared_from_this()
+    {
+    }
+
+public:
+
+    shared_ptr<T> shared_from_this()
+    {
+        shared_ptr<T> p( weak_this_ );
+        BOOST_ASSERT( p.get() == this );
+        return p;
+    }
+
+    shared_ptr<T const> shared_from_this() const
+    {
+        shared_ptr<T const> p( weak_this_ );
+        BOOST_ASSERT( p.get() == this );
+        return p;
+    }
+
+public: // actually private, but avoids compiler template friendship issues
+
+    // Note: invoked automatically by shared_ptr; do not call
+    template<class X, class Y> void _internal_accept_owner( shared_ptr<X> const * ppx, Y * py ) const
+    {
+        if( weak_this_.expired() )
+        {
+            weak_this_ = shared_ptr<T>( *ppx, py );
+        }
+    }
+
+private:
+
+    mutable weak_ptr<T> weak_this_;
+};
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED
index fcbce06a9c998e590ee4114f00d327d8b6496898..a5bfcff836fd6dd0a6126c83ca08c9704773c460 100755 (executable)
-#ifndef BOOST_ENABLE_SHARED_FROM_THIS2_HPP_INCLUDED\r
-#define BOOST_ENABLE_SHARED_FROM_THIS2_HPP_INCLUDED\r
-\r
-//\r
-//  enable_shared_from_this2.hpp\r
-//\r
-//  Copyright 2002, 2009 Peter Dimov\r
-//  Copyright 2008 Frank Mori Hess\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt\r
-//\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/shared_ptr.hpp>\r
-#include <boost/assert.hpp>\r
-#include <boost/detail/workaround.hpp>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-class esft2_deleter_wrapper\r
-{\r
-private:\r
-\r
-    shared_ptr<void> deleter_;\r
-\r
-public:\r
-\r
-    esft2_deleter_wrapper()\r
-    {\r
-    }\r
-\r
-    template< class T > void set_deleter( shared_ptr<T> const & deleter )\r
-    {\r
-        deleter_ = deleter;\r
-    }\r
-\r
-    template< class T> void operator()( T* )\r
-    {\r
-        BOOST_ASSERT( deleter_.use_count() <= 1 );\r
-        deleter_.reset();\r
-    }\r
-};\r
-\r
-} // namespace detail\r
-\r
-template< class T > class enable_shared_from_this2\r
-{\r
-protected:\r
-\r
-    enable_shared_from_this2()\r
-    {\r
-    }\r
-\r
-    enable_shared_from_this2( enable_shared_from_this2 const & )\r
-    {\r
-    }\r
-\r
-    enable_shared_from_this2 & operator=( enable_shared_from_this2 const & )\r
-    {\r
-        return *this;\r
-    }\r
-\r
-    ~enable_shared_from_this2()\r
-    {\r
-        BOOST_ASSERT( shared_this_.use_count() <= 1 ); // make sure no dangling shared_ptr objects exist\r
-    }\r
-\r
-private:\r
-\r
-    mutable weak_ptr<T> weak_this_;\r
-    mutable shared_ptr<T> shared_this_;\r
-\r
-public:\r
-\r
-    shared_ptr<T> shared_from_this()\r
-    {\r
-        init_weak_once();\r
-        return shared_ptr<T>( weak_this_ );\r
-    }\r
-\r
-    shared_ptr<T const> shared_from_this() const\r
-    {\r
-        init_weak_once();\r
-        return shared_ptr<T>( weak_this_ );\r
-    }\r
-\r
-private:\r
-\r
-    void init_weak_once() const\r
-    {\r
-        if( weak_this_._empty() )\r
-        {\r
-            shared_this_.reset( static_cast< T* >( 0 ), detail::esft2_deleter_wrapper() );\r
-            weak_this_ = shared_this_;\r
-        }\r
-    }\r
-\r
-public: // actually private, but avoids compiler template friendship issues\r
-\r
-    // Note: invoked automatically by shared_ptr; do not call\r
-    template<class X, class Y> void _internal_accept_owner( shared_ptr<X> * ppx, Y * py ) const\r
-    {\r
-        BOOST_ASSERT( ppx != 0 );\r
-\r
-        if( weak_this_.use_count() == 0 )\r
-        {\r
-            weak_this_ = shared_ptr<T>( *ppx, py );\r
-        }\r
-        else if( shared_this_.use_count() != 0 )\r
-        {\r
-            BOOST_ASSERT( ppx->unique() ); // no weak_ptrs should exist either, but there's no way to check that\r
-\r
-            detail::esft2_deleter_wrapper * pd = boost::get_deleter<detail::esft2_deleter_wrapper>( shared_this_ );\r
-            BOOST_ASSERT( pd != 0 );\r
-\r
-            pd->set_deleter( *ppx );\r
-\r
-            ppx->reset( shared_this_, ppx->get() );\r
-            shared_this_.reset();\r
-        }\r
-    }\r
-};\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_ENABLE_SHARED_FROM_THIS2_HPP_INCLUDED\r
+#ifndef BOOST_ENABLE_SHARED_FROM_THIS2_HPP_INCLUDED
+#define BOOST_ENABLE_SHARED_FROM_THIS2_HPP_INCLUDED
+
+//
+//  enable_shared_from_this2.hpp
+//
+//  Copyright 2002, 2009 Peter Dimov
+//  Copyright 2008 Frank Mori Hess
+//
+//  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
+//
+
+#include <boost/config.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/assert.hpp>
+#include <boost/detail/workaround.hpp>
+
+namespace boost
+{
+
+namespace detail
+{
+
+class esft2_deleter_wrapper
+{
+private:
+
+    shared_ptr<void> deleter_;
+
+public:
+
+    esft2_deleter_wrapper()
+    {
+    }
+
+    template< class T > void set_deleter( shared_ptr<T> const & deleter )
+    {
+        deleter_ = deleter;
+    }
+
+    template< class T> void operator()( T* )
+    {
+        BOOST_ASSERT( deleter_.use_count() <= 1 );
+        deleter_.reset();
+    }
+};
+
+} // namespace detail
+
+template< class T > class enable_shared_from_this2
+{
+protected:
+
+    enable_shared_from_this2()
+    {
+    }
+
+    enable_shared_from_this2( enable_shared_from_this2 const & )
+    {
+    }
+
+    enable_shared_from_this2 & operator=( enable_shared_from_this2 const & )
+    {
+        return *this;
+    }
+
+    ~enable_shared_from_this2()
+    {
+        BOOST_ASSERT( shared_this_.use_count() <= 1 ); // make sure no dangling shared_ptr objects exist
+    }
+
+private:
+
+    mutable weak_ptr<T> weak_this_;
+    mutable shared_ptr<T> shared_this_;
+
+public:
+
+    shared_ptr<T> shared_from_this()
+    {
+        init_weak_once();
+        return shared_ptr<T>( weak_this_ );
+    }
+
+    shared_ptr<T const> shared_from_this() const
+    {
+        init_weak_once();
+        return shared_ptr<T>( weak_this_ );
+    }
+
+private:
+
+    void init_weak_once() const
+    {
+        if( weak_this_._empty() )
+        {
+            shared_this_.reset( static_cast< T* >( 0 ), detail::esft2_deleter_wrapper() );
+            weak_this_ = shared_this_;
+        }
+    }
+
+public: // actually private, but avoids compiler template friendship issues
+
+    // Note: invoked automatically by shared_ptr; do not call
+    template<class X, class Y> void _internal_accept_owner( shared_ptr<X> * ppx, Y * py ) const
+    {
+        BOOST_ASSERT( ppx != 0 );
+
+        if( weak_this_.use_count() == 0 )
+        {
+            weak_this_ = shared_ptr<T>( *ppx, py );
+        }
+        else if( shared_this_.use_count() != 0 )
+        {
+            BOOST_ASSERT( ppx->unique() ); // no weak_ptrs should exist either, but there's no way to check that
+
+            detail::esft2_deleter_wrapper * pd = boost::get_deleter<detail::esft2_deleter_wrapper>( shared_this_ );
+            BOOST_ASSERT( pd != 0 );
+
+            pd->set_deleter( *ppx );
+
+            ppx->reset( shared_this_, ppx->get() );
+            shared_this_.reset();
+        }
+    }
+};
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_ENABLE_SHARED_FROM_THIS2_HPP_INCLUDED
index 84558983e7f2df639409c40f91667590530983b8..6927a591850fac6197616a0342279c1488ccf68c 100644 (file)
-#ifndef BOOST_SMART_PTR_INTRUSIVE_PTR_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_INTRUSIVE_PTR_HPP_INCLUDED\r
-\r
-//\r
-//  intrusive_ptr.hpp\r
-//\r
-//  Copyright (c) 2001, 2002 Peter Dimov\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  See http://www.boost.org/libs/smart_ptr/intrusive_ptr.html for documentation.\r
-//\r
-\r
-#include <boost/config.hpp>\r
-\r
-#ifdef BOOST_MSVC  // moved here to work around VC++ compiler crash\r
-# pragma warning(push)\r
-# pragma warning(disable:4284) // odd return type for operator->\r
-#endif\r
-\r
-#include <boost/assert.hpp>\r
-#include <boost/detail/workaround.hpp>\r
-#include <boost/smart_ptr/detail/sp_convertible.hpp>\r
-\r
-#include <boost/config/no_tr1/functional.hpp>           // for std::less\r
-\r
-#if !defined(BOOST_NO_IOSTREAM)\r
-#if !defined(BOOST_NO_IOSFWD)\r
-#include <iosfwd>               // for std::basic_ostream\r
-#else\r
-#include <ostream>\r
-#endif\r
-#endif\r
-\r
-\r
-namespace boost\r
-{\r
-\r
-//\r
-//  intrusive_ptr\r
-//\r
-//  A smart pointer that uses intrusive reference counting.\r
-//\r
-//  Relies on unqualified calls to\r
-//  \r
-//      void intrusive_ptr_add_ref(T * p);\r
-//      void intrusive_ptr_release(T * p);\r
-//\r
-//          (p != 0)\r
-//\r
-//  The object is responsible for destroying itself.\r
-//\r
-\r
-template<class T> class intrusive_ptr\r
-{\r
-private:\r
-\r
-    typedef intrusive_ptr this_type;\r
-\r
-public:\r
-\r
-    typedef T element_type;\r
-\r
-    intrusive_ptr(): px( 0 )\r
-    {\r
-    }\r
-\r
-    intrusive_ptr( T * p, bool add_ref = true ): px( p )\r
-    {\r
-        if( px != 0 && add_ref ) intrusive_ptr_add_ref( px );\r
-    }\r
-\r
-#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)\r
-\r
-    template<class U>\r
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
-\r
-    intrusive_ptr( intrusive_ptr<U> const & rhs, typename detail::sp_enable_if_convertible<U,T>::type = detail::sp_empty() )\r
-\r
-#else\r
-\r
-    intrusive_ptr( intrusive_ptr<U> const & rhs )\r
-\r
-#endif\r
-    : px( rhs.get() )\r
-    {\r
-        if( px != 0 ) intrusive_ptr_add_ref( px );\r
-    }\r
-\r
-#endif\r
-\r
-    intrusive_ptr(intrusive_ptr const & rhs): px( rhs.px )\r
-    {\r
-        if( px != 0 ) intrusive_ptr_add_ref( px );\r
-    }\r
-\r
-    ~intrusive_ptr()\r
-    {\r
-        if( px != 0 ) intrusive_ptr_release( px );\r
-    }\r
-\r
-#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)\r
-\r
-    template<class U> intrusive_ptr & operator=(intrusive_ptr<U> const & rhs)\r
-    {\r
-        this_type(rhs).swap(*this);\r
-        return *this;\r
-    }\r
-\r
-#endif\r
-\r
-// Move support\r
-\r
-#if defined( BOOST_HAS_RVALUE_REFS )\r
-\r
-    intrusive_ptr(intrusive_ptr && rhs): px( rhs.px )\r
-    {\r
-        rhs.px = 0;\r
-    }\r
-\r
-    intrusive_ptr & operator=(intrusive_ptr && rhs)\r
-    {\r
-        this_type(std::move(rhs)).swap(*this);\r
-        return *this;\r
-    }\r
-\r
-#endif\r
-\r
-    intrusive_ptr & operator=(intrusive_ptr const & rhs)\r
-    {\r
-        this_type(rhs).swap(*this);\r
-        return *this;\r
-    }\r
-\r
-    intrusive_ptr & operator=(T * rhs)\r
-    {\r
-        this_type(rhs).swap(*this);\r
-        return *this;\r
-    }\r
-\r
-    void reset()\r
-    {\r
-        this_type().swap( *this );\r
-    }\r
-\r
-    void reset( T * rhs )\r
-    {\r
-        this_type( rhs ).swap( *this );\r
-    }\r
-\r
-    T * get() const\r
-    {\r
-        return px;\r
-    }\r
-\r
-    T & operator*() const\r
-    {\r
-        BOOST_ASSERT( px != 0 );\r
-        return *px;\r
-    }\r
-\r
-    T * operator->() const\r
-    {\r
-        BOOST_ASSERT( px != 0 );\r
-        return px;\r
-    }\r
-\r
-// implicit conversion to "bool"\r
-#include <boost/smart_ptr/detail/operator_bool.hpp>\r
-\r
-    void swap(intrusive_ptr & rhs)\r
-    {\r
-        T * tmp = px;\r
-        px = rhs.px;\r
-        rhs.px = tmp;\r
-    }\r
-\r
-private:\r
-\r
-    T * px;\r
-};\r
-\r
-template<class T, class U> inline bool operator==(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b)\r
-{\r
-    return a.get() == b.get();\r
-}\r
-\r
-template<class T, class U> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b)\r
-{\r
-    return a.get() != b.get();\r
-}\r
-\r
-template<class T, class U> inline bool operator==(intrusive_ptr<T> const & a, U * b)\r
-{\r
-    return a.get() == b;\r
-}\r
-\r
-template<class T, class U> inline bool operator!=(intrusive_ptr<T> const & a, U * b)\r
-{\r
-    return a.get() != b;\r
-}\r
-\r
-template<class T, class U> inline bool operator==(T * a, intrusive_ptr<U> const & b)\r
-{\r
-    return a == b.get();\r
-}\r
-\r
-template<class T, class U> inline bool operator!=(T * a, intrusive_ptr<U> const & b)\r
-{\r
-    return a != b.get();\r
-}\r
-\r
-#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96\r
-\r
-// Resolve the ambiguity between our op!= and the one in rel_ops\r
-\r
-template<class T> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b)\r
-{\r
-    return a.get() != b.get();\r
-}\r
-\r
-#endif\r
-\r
-template<class T> inline bool operator<(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b)\r
-{\r
-    return std::less<T *>()(a.get(), b.get());\r
-}\r
-\r
-template<class T> void swap(intrusive_ptr<T> & lhs, intrusive_ptr<T> & rhs)\r
-{\r
-    lhs.swap(rhs);\r
-}\r
-\r
-// mem_fn support\r
-\r
-template<class T> T * get_pointer(intrusive_ptr<T> const & p)\r
-{\r
-    return p.get();\r
-}\r
-\r
-template<class T, class U> intrusive_ptr<T> static_pointer_cast(intrusive_ptr<U> const & p)\r
-{\r
-    return static_cast<T *>(p.get());\r
-}\r
-\r
-template<class T, class U> intrusive_ptr<T> const_pointer_cast(intrusive_ptr<U> const & p)\r
-{\r
-    return const_cast<T *>(p.get());\r
-}\r
-\r
-template<class T, class U> intrusive_ptr<T> dynamic_pointer_cast(intrusive_ptr<U> const & p)\r
-{\r
-    return dynamic_cast<T *>(p.get());\r
-}\r
-\r
-// operator<<\r
-\r
-#if !defined(BOOST_NO_IOSTREAM)\r
-\r
-#if defined(BOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) &&  (__GNUC__ < 3) )\r
-\r
-template<class Y> std::ostream & operator<< (std::ostream & os, intrusive_ptr<Y> const & p)\r
-{\r
-    os << p.get();\r
-    return os;\r
-}\r
-\r
-#else\r
-\r
-// in STLport's no-iostreams mode no iostream symbols can be used\r
-#ifndef _STLP_NO_IOSTREAMS\r
-\r
-# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300 && __SGI_STL_PORT)\r
-// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL\r
-using std::basic_ostream;\r
-template<class E, class T, class Y> basic_ostream<E, T> & operator<< (basic_ostream<E, T> & os, intrusive_ptr<Y> const & p)\r
-# else\r
-template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, intrusive_ptr<Y> const & p)\r
-# endif \r
-{\r
-    os << p.get();\r
-    return os;\r
-}\r
-\r
-#endif // _STLP_NO_IOSTREAMS\r
-\r
-#endif // __GNUC__ < 3\r
-\r
-#endif // !defined(BOOST_NO_IOSTREAM)\r
-\r
-} // namespace boost\r
-\r
-#ifdef BOOST_MSVC\r
-# pragma warning(pop)\r
-#endif    \r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_INTRUSIVE_PTR_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_INTRUSIVE_PTR_HPP_INCLUDED
+#define BOOST_SMART_PTR_INTRUSIVE_PTR_HPP_INCLUDED
+
+//
+//  intrusive_ptr.hpp
+//
+//  Copyright (c) 2001, 2002 Peter Dimov
+//
+// 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/smart_ptr/intrusive_ptr.html for documentation.
+//
+
+#include <boost/config.hpp>
+
+#ifdef BOOST_MSVC  // moved here to work around VC++ compiler crash
+# pragma warning(push)
+# pragma warning(disable:4284) // odd return type for operator->
+#endif
+
+#include <boost/assert.hpp>
+#include <boost/detail/workaround.hpp>
+#include <boost/smart_ptr/detail/sp_convertible.hpp>
+
+#include <boost/config/no_tr1/functional.hpp>           // for std::less
+
+#if !defined(BOOST_NO_IOSTREAM)
+#if !defined(BOOST_NO_IOSFWD)
+#include <iosfwd>               // for std::basic_ostream
+#else
+#include <ostream>
+#endif
+#endif
+
+
+namespace boost
+{
+
+//
+//  intrusive_ptr
+//
+//  A smart pointer that uses intrusive reference counting.
+//
+//  Relies on unqualified calls to
+//  
+//      void intrusive_ptr_add_ref(T * p);
+//      void intrusive_ptr_release(T * p);
+//
+//          (p != 0)
+//
+//  The object is responsible for destroying itself.
+//
+
+template<class T> class intrusive_ptr
+{
+private:
+
+    typedef intrusive_ptr this_type;
+
+public:
+
+    typedef T element_type;
+
+    intrusive_ptr(): px( 0 )
+    {
+    }
+
+    intrusive_ptr( T * p, bool add_ref = true ): px( p )
+    {
+        if( px != 0 && add_ref ) intrusive_ptr_add_ref( px );
+    }
+
+#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+
+    template<class U>
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+
+    intrusive_ptr( intrusive_ptr<U> const & rhs, typename detail::sp_enable_if_convertible<U,T>::type = detail::sp_empty() )
+
+#else
+
+    intrusive_ptr( intrusive_ptr<U> const & rhs )
+
+#endif
+    : px( rhs.get() )
+    {
+        if( px != 0 ) intrusive_ptr_add_ref( px );
+    }
+
+#endif
+
+    intrusive_ptr(intrusive_ptr const & rhs): px( rhs.px )
+    {
+        if( px != 0 ) intrusive_ptr_add_ref( px );
+    }
+
+    ~intrusive_ptr()
+    {
+        if( px != 0 ) intrusive_ptr_release( px );
+    }
+
+#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+
+    template<class U> intrusive_ptr & operator=(intrusive_ptr<U> const & rhs)
+    {
+        this_type(rhs).swap(*this);
+        return *this;
+    }
+
+#endif
+
+// Move support
+
+#if defined( BOOST_HAS_RVALUE_REFS )
+
+    intrusive_ptr(intrusive_ptr && rhs): px( rhs.px )
+    {
+        rhs.px = 0;
+    }
+
+    intrusive_ptr & operator=(intrusive_ptr && rhs)
+    {
+        this_type(std::move(rhs)).swap(*this);
+        return *this;
+    }
+
+#endif
+
+    intrusive_ptr & operator=(intrusive_ptr const & rhs)
+    {
+        this_type(rhs).swap(*this);
+        return *this;
+    }
+
+    intrusive_ptr & operator=(T * rhs)
+    {
+        this_type(rhs).swap(*this);
+        return *this;
+    }
+
+    void reset()
+    {
+        this_type().swap( *this );
+    }
+
+    void reset( T * rhs )
+    {
+        this_type( rhs ).swap( *this );
+    }
+
+    T * get() const
+    {
+        return px;
+    }
+
+    T & operator*() const
+    {
+        BOOST_ASSERT( px != 0 );
+        return *px;
+    }
+
+    T * operator->() const
+    {
+        BOOST_ASSERT( px != 0 );
+        return px;
+    }
+
+// implicit conversion to "bool"
+#include <boost/smart_ptr/detail/operator_bool.hpp>
+
+    void swap(intrusive_ptr & rhs)
+    {
+        T * tmp = px;
+        px = rhs.px;
+        rhs.px = tmp;
+    }
+
+private:
+
+    T * px;
+};
+
+template<class T, class U> inline bool operator==(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b)
+{
+    return a.get() == b.get();
+}
+
+template<class T, class U> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b)
+{
+    return a.get() != b.get();
+}
+
+template<class T, class U> inline bool operator==(intrusive_ptr<T> const & a, U * b)
+{
+    return a.get() == b;
+}
+
+template<class T, class U> inline bool operator!=(intrusive_ptr<T> const & a, U * b)
+{
+    return a.get() != b;
+}
+
+template<class T, class U> inline bool operator==(T * a, intrusive_ptr<U> const & b)
+{
+    return a == b.get();
+}
+
+template<class T, class U> inline bool operator!=(T * a, intrusive_ptr<U> const & b)
+{
+    return a != b.get();
+}
+
+#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96
+
+// Resolve the ambiguity between our op!= and the one in rel_ops
+
+template<class T> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b)
+{
+    return a.get() != b.get();
+}
+
+#endif
+
+template<class T> inline bool operator<(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b)
+{
+    return std::less<T *>()(a.get(), b.get());
+}
+
+template<class T> void swap(intrusive_ptr<T> & lhs, intrusive_ptr<T> & rhs)
+{
+    lhs.swap(rhs);
+}
+
+// mem_fn support
+
+template<class T> T * get_pointer(intrusive_ptr<T> const & p)
+{
+    return p.get();
+}
+
+template<class T, class U> intrusive_ptr<T> static_pointer_cast(intrusive_ptr<U> const & p)
+{
+    return static_cast<T *>(p.get());
+}
+
+template<class T, class U> intrusive_ptr<T> const_pointer_cast(intrusive_ptr<U> const & p)
+{
+    return const_cast<T *>(p.get());
+}
+
+template<class T, class U> intrusive_ptr<T> dynamic_pointer_cast(intrusive_ptr<U> const & p)
+{
+    return dynamic_cast<T *>(p.get());
+}
+
+// operator<<
+
+#if !defined(BOOST_NO_IOSTREAM)
+
+#if defined(BOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) &&  (__GNUC__ < 3) )
+
+template<class Y> std::ostream & operator<< (std::ostream & os, intrusive_ptr<Y> const & p)
+{
+    os << p.get();
+    return os;
+}
+
+#else
+
+// in STLport's no-iostreams mode no iostream symbols can be used
+#ifndef _STLP_NO_IOSTREAMS
+
+# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300 && __SGI_STL_PORT)
+// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL
+using std::basic_ostream;
+template<class E, class T, class Y> basic_ostream<E, T> & operator<< (basic_ostream<E, T> & os, intrusive_ptr<Y> const & p)
+# else
+template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, intrusive_ptr<Y> const & p)
+# endif 
+{
+    os << p.get();
+    return os;
+}
+
+#endif // _STLP_NO_IOSTREAMS
+
+#endif // __GNUC__ < 3
+
+#endif // !defined(BOOST_NO_IOSTREAM)
+
+} // namespace boost
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif    
+
+#endif  // #ifndef BOOST_SMART_PTR_INTRUSIVE_PTR_HPP_INCLUDED
index 90e9d512fcc62ae5929dbe3c2f480f779480f006..7e1e793e1934d4a31cc2efb160bce68a9403c90a 100644 (file)
-#ifndef BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED\r
-\r
-//  make_shared.hpp\r
-//\r
-//  Copyright (c) 2007, 2008 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0.\r
-//  See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt\r
-//\r
-//  See http://www.boost.org/libs/smart_ptr/make_shared.html\r
-//  for documentation.\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/smart_ptr/shared_ptr.hpp>\r
-#include <boost/type_traits/type_with_alignment.hpp>\r
-#include <boost/type_traits/alignment_of.hpp>\r
-#include <cstddef>\r
-#include <new>\r
-\r
-namespace boost\r
-{\r
-\r
-namespace detail\r
-{\r
-\r
-template< std::size_t N, std::size_t A > struct sp_aligned_storage\r
-{\r
-    union type\r
-    {\r
-        char data_[ N ];\r
-        typename boost::type_with_alignment< A >::type align_;\r
-    };\r
-};\r
-\r
-template< class T > class sp_ms_deleter\r
-{\r
-private:\r
-\r
-    typedef typename sp_aligned_storage< sizeof( T ), ::boost::alignment_of< T >::value >::type storage_type;\r
-\r
-    bool initialized_;\r
-    storage_type storage_;\r
-\r
-private:\r
-\r
-    void destroy()\r
-    {\r
-        if( initialized_ )\r
-        {\r
-            reinterpret_cast< T* >( storage_.data_ )->~T();\r
-            initialized_ = false;\r
-        }\r
-    }\r
-\r
-public:\r
-\r
-    sp_ms_deleter(): initialized_( false )\r
-    {\r
-    }\r
-\r
-    // optimization: do not copy storage_\r
-    sp_ms_deleter( sp_ms_deleter const & ): initialized_( false )\r
-    {\r
-    }\r
-\r
-    ~sp_ms_deleter()\r
-    {\r
-        destroy();\r
-    }\r
-\r
-    void operator()( T * )\r
-    {\r
-        destroy();\r
-    }\r
-\r
-    void * address()\r
-    {\r
-        return storage_.data_;\r
-    }\r
-\r
-    void set_initialized()\r
-    {\r
-        initialized_ = true;\r
-    }\r
-};\r
-\r
-template< class T > T forward( T t )\r
-{\r
-    return t;\r
-}\r
-\r
-} // namespace detail\r
-\r
-// Zero-argument versions\r
-//\r
-// Used even when variadic templates are available because of the new T() vs new T issue\r
-\r
-template< class T > boost::shared_ptr< T > make_shared()\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T();\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A > boost::shared_ptr< T > allocate_shared( A const & a )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T();\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-#if defined( BOOST_HAS_VARIADIC_TMPL ) && defined( BOOST_HAS_RVALUE_REFS )\r
-\r
-// Variadic templates, rvalue reference\r
-\r
-template< class T, class... Args > boost::shared_ptr< T > make_shared( Args && ... args )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( detail::forward<Args>( args )... );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A, class... Args > boost::shared_ptr< T > allocate_shared( A const & a, Args && ... args )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( detail::forward<Args>( args )... );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-#else\r
-\r
-// C++03 version\r
-\r
-template< class T, class A1 >\r
-boost::shared_ptr< T > make_shared( A1 const & a1 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A, class A1 >\r
-boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A1, class A2 >\r
-boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A, class A1, class A2 >\r
-boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A1, class A2, class A3 >\r
-boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2, a3 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A, class A1, class A2, class A3 >\r
-boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2, a3 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A1, class A2, class A3, class A4 >\r
-boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2, a3, a4 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A, class A1, class A2, class A3, class A4 >\r
-boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2, a3, a4 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A1, class A2, class A3, class A4, class A5 >\r
-boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2, a3, a4, a5 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A, class A1, class A2, class A3, class A4, class A5 >\r
-boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2, a3, a4, a5 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A1, class A2, class A3, class A4, class A5, class A6 >\r
-boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6 >\r
-boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 >\r
-boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7 >\r
-boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 >\r
-boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 >\r
-boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 >\r
-boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8, a9 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 >\r
-boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9 )\r
-{\r
-    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
-\r
-    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
-\r
-    void * pv = pd->address();\r
-\r
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8, a9 );\r
-    pd->set_initialized();\r
-\r
-    T * pt2 = static_cast< T* >( pv );\r
-\r
-    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
-    return boost::shared_ptr< T >( pt, pt2 );\r
-}\r
-\r
-#endif\r
-\r
-} // namespace boost\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED
+#define BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED
+
+//  make_shared.hpp
+//
+//  Copyright (c) 2007, 2008 Peter Dimov
+//
+//  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/smart_ptr/make_shared.html
+//  for documentation.
+
+#include <boost/config.hpp>
+#include <boost/smart_ptr/shared_ptr.hpp>
+#include <boost/type_traits/type_with_alignment.hpp>
+#include <boost/type_traits/alignment_of.hpp>
+#include <cstddef>
+#include <new>
+
+namespace boost
+{
+
+namespace detail
+{
+
+template< std::size_t N, std::size_t A > struct sp_aligned_storage
+{
+    union type
+    {
+        char data_[ N ];
+        typename boost::type_with_alignment< A >::type align_;
+    };
+};
+
+template< class T > class sp_ms_deleter
+{
+private:
+
+    typedef typename sp_aligned_storage< sizeof( T ), ::boost::alignment_of< T >::value >::type storage_type;
+
+    bool initialized_;
+    storage_type storage_;
+
+private:
+
+    void destroy()
+    {
+        if( initialized_ )
+        {
+            reinterpret_cast< T* >( storage_.data_ )->~T();
+            initialized_ = false;
+        }
+    }
+
+public:
+
+    sp_ms_deleter(): initialized_( false )
+    {
+    }
+
+    // optimization: do not copy storage_
+    sp_ms_deleter( sp_ms_deleter const & ): initialized_( false )
+    {
+    }
+
+    ~sp_ms_deleter()
+    {
+        destroy();
+    }
+
+    void operator()( T * )
+    {
+        destroy();
+    }
+
+    void * address()
+    {
+        return storage_.data_;
+    }
+
+    void set_initialized()
+    {
+        initialized_ = true;
+    }
+};
+
+template< class T > T forward( T t )
+{
+    return t;
+}
+
+} // namespace detail
+
+// Zero-argument versions
+//
+// Used even when variadic templates are available because of the new T() vs new T issue
+
+template< class T > boost::shared_ptr< T > make_shared()
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T();
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A > boost::shared_ptr< T > allocate_shared( A const & a )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T();
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+#if defined( BOOST_HAS_VARIADIC_TMPL ) && defined( BOOST_HAS_RVALUE_REFS )
+
+// Variadic templates, rvalue reference
+
+template< class T, class... Args > boost::shared_ptr< T > make_shared( Args && ... args )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( detail::forward<Args>( args )... );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A, class... Args > boost::shared_ptr< T > allocate_shared( A const & a, Args && ... args )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( detail::forward<Args>( args )... );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+#else
+
+// C++03 version
+
+template< class T, class A1 >
+boost::shared_ptr< T > make_shared( A1 const & a1 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A, class A1 >
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A1, class A2 >
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A, class A1, class A2 >
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A1, class A2, class A3 >
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2, a3 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A, class A1, class A2, class A3 >
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2, a3 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A1, class A2, class A3, class A4 >
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2, a3, a4 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A, class A1, class A2, class A3, class A4 >
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2, a3, a4 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A1, class A2, class A3, class A4, class A5 >
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2, a3, a4, a5 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A, class A1, class A2, class A3, class A4, class A5 >
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2, a3, a4, a5 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A1, class A2, class A3, class A4, class A5, class A6 >
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6 >
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 >
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7 >
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 >
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 >
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 >
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8, a9 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 >
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9 )
+{
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );
+
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );
+
+    void * pv = pd->address();
+
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8, a9 );
+    pd->set_initialized();
+
+    T * pt2 = static_cast< T* >( pv );
+
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
+    return boost::shared_ptr< T >( pt, pt2 );
+}
+
+#endif
+
+} // namespace boost
+
+#endif // #ifndef BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED
index 79c5a7051cf29d989978cdb1d7988ca820c6ef5a..483460fa06bb372a7a1edf7040f2c23fef60fb5b 100644 (file)
-#ifndef BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED\r
-\r
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.\r
-//  Copyright (c) 2001, 2002 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  http://www.boost.org/libs/smart_ptr/scoped_array.htm\r
-//\r
-\r
-#include <boost/assert.hpp>\r
-#include <boost/checked_delete.hpp>\r
-#include <boost/config.hpp>   // in case ptrdiff_t not in std\r
-\r
-#include <boost/detail/workaround.hpp>\r
-\r
-#include <cstddef>            // for std::ptrdiff_t\r
-\r
-namespace boost\r
-{\r
-\r
-// Debug hooks\r
-\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-\r
-void sp_array_constructor_hook(void * p);\r
-void sp_array_destructor_hook(void * p);\r
-\r
-#endif\r
-\r
-//  scoped_array extends scoped_ptr to arrays. Deletion of the array pointed to\r
-//  is guaranteed, either on destruction of the scoped_array or via an explicit\r
-//  reset(). Use shared_array or std::vector if your needs are more complex.\r
-\r
-template<class T> class scoped_array // noncopyable\r
-{\r
-private:\r
-\r
-    T * px;\r
-\r
-    scoped_array(scoped_array const &);\r
-    scoped_array & operator=(scoped_array const &);\r
-\r
-    typedef scoped_array<T> this_type;\r
-\r
-    void operator==( scoped_array const& ) const;\r
-    void operator!=( scoped_array const& ) const;\r
-\r
-public:\r
-\r
-    typedef T element_type;\r
-\r
-    explicit scoped_array( T * p = 0 ) : px( p ) // never throws\r
-    {\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        boost::sp_array_constructor_hook( px );\r
-#endif\r
-    }\r
-\r
-    ~scoped_array() // never throws\r
-    {\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        boost::sp_array_destructor_hook( px );\r
-#endif\r
-        boost::checked_array_delete( px );\r
-    }\r
-\r
-    void reset(T * p = 0) // never throws\r
-    {\r
-        BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors\r
-        this_type(p).swap(*this);\r
-    }\r
-\r
-    T & operator[](std::ptrdiff_t i) const // never throws\r
-    {\r
-        BOOST_ASSERT( px != 0 );\r
-        BOOST_ASSERT( i >= 0 );\r
-        return px[i];\r
-    }\r
-\r
-    T * get() const // never throws\r
-    {\r
-        return px;\r
-    }\r
-\r
-// implicit conversion to "bool"\r
-#include <boost/smart_ptr/detail/operator_bool.hpp>\r
-\r
-    void swap(scoped_array & b) // never throws\r
-    {\r
-        T * tmp = b.px;\r
-        b.px = px;\r
-        px = tmp;\r
-    }\r
-};\r
-\r
-template<class T> inline void swap(scoped_array<T> & a, scoped_array<T> & b) // never throws\r
-{\r
-    a.swap(b);\r
-}\r
-\r
-} // namespace boost\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED
+#define BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED
+
+//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
+//  Copyright (c) 2001, 2002 Peter Dimov
+//
+//  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)
+//
+//  http://www.boost.org/libs/smart_ptr/scoped_array.htm
+//
+
+#include <boost/assert.hpp>
+#include <boost/checked_delete.hpp>
+#include <boost/config.hpp>   // in case ptrdiff_t not in std
+
+#include <boost/detail/workaround.hpp>
+
+#include <cstddef>            // for std::ptrdiff_t
+
+namespace boost
+{
+
+// Debug hooks
+
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+
+void sp_array_constructor_hook(void * p);
+void sp_array_destructor_hook(void * p);
+
+#endif
+
+//  scoped_array extends scoped_ptr to arrays. Deletion of the array pointed to
+//  is guaranteed, either on destruction of the scoped_array or via an explicit
+//  reset(). Use shared_array or std::vector if your needs are more complex.
+
+template<class T> class scoped_array // noncopyable
+{
+private:
+
+    T * px;
+
+    scoped_array(scoped_array const &);
+    scoped_array & operator=(scoped_array const &);
+
+    typedef scoped_array<T> this_type;
+
+    void operator==( scoped_array const& ) const;
+    void operator!=( scoped_array const& ) const;
+
+public:
+
+    typedef T element_type;
+
+    explicit scoped_array( T * p = 0 ) : px( p ) // never throws
+    {
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        boost::sp_array_constructor_hook( px );
+#endif
+    }
+
+    ~scoped_array() // never throws
+    {
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        boost::sp_array_destructor_hook( px );
+#endif
+        boost::checked_array_delete( px );
+    }
+
+    void reset(T * p = 0) // never throws
+    {
+        BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors
+        this_type(p).swap(*this);
+    }
+
+    T & operator[](std::ptrdiff_t i) const // never throws
+    {
+        BOOST_ASSERT( px != 0 );
+        BOOST_ASSERT( i >= 0 );
+        return px[i];
+    }
+
+    T * get() const // never throws
+    {
+        return px;
+    }
+
+// implicit conversion to "bool"
+#include <boost/smart_ptr/detail/operator_bool.hpp>
+
+    void swap(scoped_array & b) // never throws
+    {
+        T * tmp = b.px;
+        b.px = px;
+        px = tmp;
+    }
+};
+
+template<class T> inline void swap(scoped_array<T> & a, scoped_array<T> & b) // never throws
+{
+    a.swap(b);
+}
+
+} // namespace boost
+
+#endif  // #ifndef BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED
index ea225055e484b2418279d4440e332e7ef4821dfd..df479e57279bdbccc55970aa41d616737c1f5b32 100644 (file)
-#ifndef BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED\r
-\r
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.\r
-//  Copyright (c) 2001, 2002 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  http://www.boost.org/libs/smart_ptr/scoped_ptr.htm\r
-//\r
-\r
-#include <boost/assert.hpp>\r
-#include <boost/checked_delete.hpp>\r
-#include <boost/detail/workaround.hpp>\r
-\r
-#ifndef BOOST_NO_AUTO_PTR\r
-# include <memory>          // for std::auto_ptr\r
-#endif\r
-\r
-namespace boost\r
-{\r
-\r
-// Debug hooks\r
-\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-\r
-void sp_scalar_constructor_hook(void * p);\r
-void sp_scalar_destructor_hook(void * p);\r
-\r
-#endif\r
-\r
-//  scoped_ptr mimics a built-in pointer except that it guarantees deletion\r
-//  of the object pointed to, either on destruction of the scoped_ptr or via\r
-//  an explicit reset(). scoped_ptr is a simple solution for simple needs;\r
-//  use shared_ptr or std::auto_ptr if your needs are more complex.\r
-\r
-template<class T> class scoped_ptr // noncopyable\r
-{\r
-private:\r
-\r
-    T * px;\r
-\r
-    scoped_ptr(scoped_ptr const &);\r
-    scoped_ptr & operator=(scoped_ptr const &);\r
-\r
-    typedef scoped_ptr<T> this_type;\r
-\r
-    void operator==( scoped_ptr const& ) const;\r
-    void operator!=( scoped_ptr const& ) const;\r
-\r
-public:\r
-\r
-    typedef T element_type;\r
-\r
-    explicit scoped_ptr( T * p = 0 ): px( p ) // never throws\r
-    {\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        boost::sp_scalar_constructor_hook( px );\r
-#endif\r
-    }\r
-\r
-#ifndef BOOST_NO_AUTO_PTR\r
-\r
-    explicit scoped_ptr( std::auto_ptr<T> p ): px( p.release() ) // never throws\r
-    {\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        boost::sp_scalar_constructor_hook( px );\r
-#endif\r
-    }\r
-\r
-#endif\r
-\r
-    ~scoped_ptr() // never throws\r
-    {\r
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
-        boost::sp_scalar_destructor_hook( px );\r
-#endif\r
-        boost::checked_delete( px );\r
-    }\r
-\r
-    void reset(T * p = 0) // never throws\r
-    {\r
-        BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors\r
-        this_type(p).swap(*this);\r
-    }\r
-\r
-    T & operator*() const // never throws\r
-    {\r
-        BOOST_ASSERT( px != 0 );\r
-        return *px;\r
-    }\r
-\r
-    T * operator->() const // never throws\r
-    {\r
-        BOOST_ASSERT( px != 0 );\r
-        return px;\r
-    }\r
-\r
-    T * get() const // never throws\r
-    {\r
-        return px;\r
-    }\r
-\r
-// implicit conversion to "bool"\r
-#include <boost/smart_ptr/detail/operator_bool.hpp>\r
-\r
-    void swap(scoped_ptr & b) // never throws\r
-    {\r
-        T * tmp = b.px;\r
-        b.px = px;\r
-        px = tmp;\r
-    }\r
-};\r
-\r
-template<class T> inline void swap(scoped_ptr<T> & a, scoped_ptr<T> & b) // never throws\r
-{\r
-    a.swap(b);\r
-}\r
-\r
-// get_pointer(p) is a generic way to say p.get()\r
-\r
-template<class T> inline T * get_pointer(scoped_ptr<T> const & p)\r
-{\r
-    return p.get();\r
-}\r
-\r
-} // namespace boost\r
-\r
-#endif // #ifndef BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED
+#define BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED
+
+//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
+//  Copyright (c) 2001, 2002 Peter Dimov
+//
+//  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)
+//
+//  http://www.boost.org/libs/smart_ptr/scoped_ptr.htm
+//
+
+#include <boost/assert.hpp>
+#include <boost/checked_delete.hpp>
+#include <boost/detail/workaround.hpp>
+
+#ifndef BOOST_NO_AUTO_PTR
+# include <memory>          // for std::auto_ptr
+#endif
+
+namespace boost
+{
+
+// Debug hooks
+
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+
+void sp_scalar_constructor_hook(void * p);
+void sp_scalar_destructor_hook(void * p);
+
+#endif
+
+//  scoped_ptr mimics a built-in pointer except that it guarantees deletion
+//  of the object pointed to, either on destruction of the scoped_ptr or via
+//  an explicit reset(). scoped_ptr is a simple solution for simple needs;
+//  use shared_ptr or std::auto_ptr if your needs are more complex.
+
+template<class T> class scoped_ptr // noncopyable
+{
+private:
+
+    T * px;
+
+    scoped_ptr(scoped_ptr const &);
+    scoped_ptr & operator=(scoped_ptr const &);
+
+    typedef scoped_ptr<T> this_type;
+
+    void operator==( scoped_ptr const& ) const;
+    void operator!=( scoped_ptr const& ) const;
+
+public:
+
+    typedef T element_type;
+
+    explicit scoped_ptr( T * p = 0 ): px( p ) // never throws
+    {
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        boost::sp_scalar_constructor_hook( px );
+#endif
+    }
+
+#ifndef BOOST_NO_AUTO_PTR
+
+    explicit scoped_ptr( std::auto_ptr<T> p ): px( p.release() ) // never throws
+    {
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        boost::sp_scalar_constructor_hook( px );
+#endif
+    }
+
+#endif
+
+    ~scoped_ptr() // never throws
+    {
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
+        boost::sp_scalar_destructor_hook( px );
+#endif
+        boost::checked_delete( px );
+    }
+
+    void reset(T * p = 0) // never throws
+    {
+        BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors
+        this_type(p).swap(*this);
+    }
+
+    T & operator*() const // never throws
+    {
+        BOOST_ASSERT( px != 0 );
+        return *px;
+    }
+
+    T * operator->() const // never throws
+    {
+        BOOST_ASSERT( px != 0 );
+        return px;
+    }
+
+    T * get() const // never throws
+    {
+        return px;
+    }
+
+// implicit conversion to "bool"
+#include <boost/smart_ptr/detail/operator_bool.hpp>
+
+    void swap(scoped_ptr & b) // never throws
+    {
+        T * tmp = b.px;
+        b.px = px;
+        px = tmp;
+    }
+};
+
+template<class T> inline void swap(scoped_ptr<T> & a, scoped_ptr<T> & b) // never throws
+{
+    a.swap(b);
+}
+
+// get_pointer(p) is a generic way to say p.get()
+
+template<class T> inline T * get_pointer(scoped_ptr<T> const & p)
+{
+    return p.get();
+}
+
+} // namespace boost
+
+#endif // #ifndef BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED
index 86418897652c42a35bfca922481e46a8dd797050..1f50403a3825b3fe5a60b89b7cdd0e85f4669b93 100644 (file)
-#ifndef BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED\r
-\r
-//\r
-//  shared_array.hpp\r
-//\r
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.\r
-//  Copyright (c) 2001, 2002 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  See http://www.boost.org/libs/smart_ptr/shared_array.htm for documentation.\r
-//\r
-\r
-#include <boost/config.hpp>   // for broken compiler workarounds\r
-\r
-#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)\r
-#include <boost/smart_ptr/detail/shared_array_nmt.hpp>\r
-#else\r
-\r
-#include <memory>             // TR1 cyclic inclusion fix\r
-\r
-#include <boost/assert.hpp>\r
-#include <boost/checked_delete.hpp>\r
-\r
-#include <boost/smart_ptr/detail/shared_count.hpp>\r
-#include <boost/detail/workaround.hpp>\r
-\r
-#include <cstddef>            // for std::ptrdiff_t\r
-#include <algorithm>          // for std::swap\r
-#include <functional>         // for std::less\r
-\r
-namespace boost\r
-{\r
-\r
-//\r
-//  shared_array\r
-//\r
-//  shared_array extends shared_ptr to arrays.\r
-//  The array pointed to is deleted when the last shared_array pointing to it\r
-//  is destroyed or reset.\r
-//\r
-\r
-template<class T> class shared_array\r
-{\r
-private:\r
-\r
-    // Borland 5.5.1 specific workarounds\r
-    typedef checked_array_deleter<T> deleter;\r
-    typedef shared_array<T> this_type;\r
-\r
-public:\r
-\r
-    typedef T element_type;\r
-\r
-    explicit shared_array(T * p = 0): px(p), pn(p, deleter())\r
-    {\r
-    }\r
-\r
-    //\r
-    // Requirements: D's copy constructor must not throw\r
-    //\r
-    // shared_array will release p by calling d(p)\r
-    //\r
-\r
-    template<class D> shared_array(T * p, D d): px(p), pn(p, d)\r
-    {\r
-    }\r
-\r
-//  generated copy constructor, assignment, destructor are fine\r
-\r
-    void reset(T * p = 0)\r
-    {\r
-        BOOST_ASSERT(p == 0 || p != px);\r
-        this_type(p).swap(*this);\r
-    }\r
-\r
-    template <class D> void reset(T * p, D d)\r
-    {\r
-        this_type(p, d).swap(*this);\r
-    }\r
-\r
-    T & operator[] (std::ptrdiff_t i) const // never throws\r
-    {\r
-        BOOST_ASSERT(px != 0);\r
-        BOOST_ASSERT(i >= 0);\r
-        return px[i];\r
-    }\r
-    \r
-    T * get() const // never throws\r
-    {\r
-        return px;\r
-    }\r
-\r
-// implicit conversion to "bool"\r
-#include <boost/smart_ptr/detail/operator_bool.hpp>\r
-\r
-    bool unique() const // never throws\r
-    {\r
-        return pn.unique();\r
-    }\r
-\r
-    long use_count() const // never throws\r
-    {\r
-        return pn.use_count();\r
-    }\r
-\r
-    void swap(shared_array<T> & other) // never throws\r
-    {\r
-        std::swap(px, other.px);\r
-        pn.swap(other.pn);\r
-    }\r
-\r
-private:\r
-\r
-    T * px;                     // contained pointer\r
-    detail::shared_count pn;    // reference counter\r
-\r
-};  // shared_array\r
-\r
-template<class T> inline bool operator==(shared_array<T> const & a, shared_array<T> const & b) // never throws\r
-{\r
-    return a.get() == b.get();\r
-}\r
-\r
-template<class T> inline bool operator!=(shared_array<T> const & a, shared_array<T> const & b) // never throws\r
-{\r
-    return a.get() != b.get();\r
-}\r
-\r
-template<class T> inline bool operator<(shared_array<T> const & a, shared_array<T> const & b) // never throws\r
-{\r
-    return std::less<T*>()(a.get(), b.get());\r
-}\r
-\r
-template<class T> void swap(shared_array<T> & a, shared_array<T> & b) // never throws\r
-{\r
-    a.swap(b);\r
-}\r
-\r
-} // namespace boost\r
-\r
-#endif  // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED
+#define BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED
+
+//
+//  shared_array.hpp
+//
+//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
+//  Copyright (c) 2001, 2002 Peter Dimov
+//
+//  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/smart_ptr/shared_array.htm for documentation.
+//
+
+#include <boost/config.hpp>   // for broken compiler workarounds
+
+#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+#include <boost/smart_ptr/detail/shared_array_nmt.hpp>
+#else
+
+#include <memory>             // TR1 cyclic inclusion fix
+
+#include <boost/assert.hpp>
+#include <boost/checked_delete.hpp>
+
+#include <boost/smart_ptr/detail/shared_count.hpp>
+#include <boost/detail/workaround.hpp>
+
+#include <cstddef>            // for std::ptrdiff_t
+#include <algorithm>          // for std::swap
+#include <functional>         // for std::less
+
+namespace boost
+{
+
+//
+//  shared_array
+//
+//  shared_array extends shared_ptr to arrays.
+//  The array pointed to is deleted when the last shared_array pointing to it
+//  is destroyed or reset.
+//
+
+template<class T> class shared_array
+{
+private:
+
+    // Borland 5.5.1 specific workarounds
+    typedef checked_array_deleter<T> deleter;
+    typedef shared_array<T> this_type;
+
+public:
+
+    typedef T element_type;
+
+    explicit shared_array(T * p = 0): px(p), pn(p, deleter())
+    {
+    }
+
+    //
+    // Requirements: D's copy constructor must not throw
+    //
+    // shared_array will release p by calling d(p)
+    //
+
+    template<class D> shared_array(T * p, D d): px(p), pn(p, d)
+    {
+    }
+
+//  generated copy constructor, assignment, destructor are fine
+
+    void reset(T * p = 0)
+    {
+        BOOST_ASSERT(p == 0 || p != px);
+        this_type(p).swap(*this);
+    }
+
+    template <class D> void reset(T * p, D d)
+    {
+        this_type(p, d).swap(*this);
+    }
+
+    T & operator[] (std::ptrdiff_t i) const // never throws
+    {
+        BOOST_ASSERT(px != 0);
+        BOOST_ASSERT(i >= 0);
+        return px[i];
+    }
+    
+    T * get() const // never throws
+    {
+        return px;
+    }
+
+// implicit conversion to "bool"
+#include <boost/smart_ptr/detail/operator_bool.hpp>
+
+    bool unique() const // never throws
+    {
+        return pn.unique();
+    }
+
+    long use_count() const // never throws
+    {
+        return pn.use_count();
+    }
+
+    void swap(shared_array<T> & other) // never throws
+    {
+        std::swap(px, other.px);
+        pn.swap(other.pn);
+    }
+
+private:
+
+    T * px;                     // contained pointer
+    detail::shared_count pn;    // reference counter
+
+};  // shared_array
+
+template<class T> inline bool operator==(shared_array<T> const & a, shared_array<T> const & b) // never throws
+{
+    return a.get() == b.get();
+}
+
+template<class T> inline bool operator!=(shared_array<T> const & a, shared_array<T> const & b) // never throws
+{
+    return a.get() != b.get();
+}
+
+template<class T> inline bool operator<(shared_array<T> const & a, shared_array<T> const & b) // never throws
+{
+    return std::less<T*>()(a.get(), b.get());
+}
+
+template<class T> void swap(shared_array<T> & a, shared_array<T> & b) // never throws
+{
+    a.swap(b);
+}
+
+} // namespace boost
+
+#endif  // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+
+#endif  // #ifndef BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED
index 3a89fc7e4a7223d753173dedeccbfd589fc6e550..1b367f0f4da8da05719b8df75b52cea3f1299db8 100644 (file)
-#ifndef BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED\r
-\r
-//\r
-//  shared_ptr.hpp\r
-//\r
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.\r
-//  Copyright (c) 2001-2008 Peter Dimov\r
-//\r
-//  Distributed under the Boost Software License, Version 1.0. (See\r
-//  accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation.\r
-//\r
-\r
-#include <boost/config.hpp>   // for broken compiler workarounds\r
-\r
-#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)\r
-#include <boost/smart_ptr/detail/shared_ptr_nmt.hpp>\r
-#else\r
-\r
-// In order to avoid circular dependencies with Boost.TR1\r
-// we make sure that our include of <memory> doesn't try to\r
-// pull in the TR1 headers: that's why we use this header \r
-// rather than including <memory> directly:\r
-#include <boost/config/no_tr1/memory.hpp>  // std::auto_ptr\r
-\r
-#include <boost/assert.hpp>\r
-#include <boost/checked_delete.hpp>\r
-#include <boost/throw_exception.hpp>\r
-#include <boost/smart_ptr/detail/shared_count.hpp>\r
-#include <boost/detail/workaround.hpp>\r
-#include <boost/smart_ptr/detail/sp_convertible.hpp>\r
-\r
-#if !defined(BOOST_SP_NO_ATOMIC_ACCESS)\r
-#include <boost/smart_ptr/detail/spinlock_pool.hpp>\r
-#include <boost/memory_order.hpp>\r
-#endif\r
-\r
-#include <algorithm>            // for std::swap\r
-#include <functional>           // for std::less\r
-#include <typeinfo>             // for std::bad_cast\r
-\r
-#if !defined(BOOST_NO_IOSTREAM)\r
-#if !defined(BOOST_NO_IOSFWD)\r
-#include <iosfwd>               // for std::basic_ostream\r
-#else\r
-#include <ostream>\r
-#endif\r
-#endif\r
-\r
-#ifdef BOOST_MSVC  // moved here to work around VC++ compiler crash\r
-# pragma warning(push)\r
-# pragma warning(disable:4284) // odd return type for operator->\r
-#endif\r
-\r
-namespace boost\r
-{\r
-\r
-template<class T> class shared_ptr;\r
-template<class T> class weak_ptr;\r
-template<class T> class enable_shared_from_this;\r
-template<class T> class enable_shared_from_this2;\r
-\r
-namespace detail\r
-{\r
-\r
-struct static_cast_tag {};\r
-struct const_cast_tag {};\r
-struct dynamic_cast_tag {};\r
-struct polymorphic_cast_tag {};\r
-\r
-template<class T> struct shared_ptr_traits\r
-{\r
-    typedef T & reference;\r
-};\r
-\r
-template<> struct shared_ptr_traits<void>\r
-{\r
-    typedef void reference;\r
-};\r
-\r
-#if !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)\r
-\r
-template<> struct shared_ptr_traits<void const>\r
-{\r
-    typedef void reference;\r
-};\r
-\r
-template<> struct shared_ptr_traits<void volatile>\r
-{\r
-    typedef void reference;\r
-};\r
-\r
-template<> struct shared_ptr_traits<void const volatile>\r
-{\r
-    typedef void reference;\r
-};\r
-\r
-#endif\r
-\r
-// enable_shared_from_this support\r
-\r
-template< class X, class Y, class T > inline void sp_enable_shared_from_this( boost::shared_ptr<X> const * ppx, Y const * py, boost::enable_shared_from_this< T > const * pe )\r
-{\r
-    if( pe != 0 )\r
-    {\r
-        pe->_internal_accept_owner( ppx, const_cast< Y* >( py ) );\r
-    }\r
-}\r
-\r
-template< class X, class Y, class T > inline void sp_enable_shared_from_this( boost::shared_ptr<X> * ppx, Y const * py, boost::enable_shared_from_this2< T > const * pe )\r
-{\r
-    if( pe != 0 )\r
-    {\r
-        pe->_internal_accept_owner( ppx, const_cast< Y* >( py ) );\r
-    }\r
-}\r
-\r
-#ifdef _MANAGED\r
-\r
-// Avoid C4793, ... causes native code generation\r
-\r
-struct sp_any_pointer\r
-{\r
-    template<class T> sp_any_pointer( T* ) {}\r
-};\r
-\r
-inline void sp_enable_shared_from_this( sp_any_pointer, sp_any_pointer, sp_any_pointer )\r
-{\r
-}\r
-\r
-#else // _MANAGED\r
-\r
-inline void sp_enable_shared_from_this( ... )\r
-{\r
-}\r
-\r
-#endif // _MANAGED\r
-\r
-#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_AUTO_PTR )\r
-\r
-// rvalue auto_ptr support based on a technique by Dave Abrahams\r
-\r
-template< class T, class R > struct sp_enable_if_auto_ptr\r
-{\r
-};\r
-\r
-template< class T, class R > struct sp_enable_if_auto_ptr< std::auto_ptr< T >, R >\r
-{\r
-    typedef R type;\r
-}; \r
-\r
-#endif\r
-\r
-} // namespace detail\r
-\r
-\r
-//\r
-//  shared_ptr\r
-//\r
-//  An enhanced relative of scoped_ptr with reference counted copy semantics.\r
-//  The object pointed to is deleted when the last shared_ptr pointing to it\r
-//  is destroyed or reset.\r
-//\r
-\r
-template<class T> class shared_ptr\r
-{\r
-private:\r
-\r
-    // Borland 5.5.1 specific workaround\r
-    typedef shared_ptr<T> this_type;\r
-\r
-public:\r
-\r
-    typedef T element_type;\r
-    typedef T value_type;\r
-    typedef T * pointer;\r
-    typedef typename boost::detail::shared_ptr_traits<T>::reference reference;\r
-\r
-    shared_ptr(): px(0), pn() // never throws in 1.30+\r
-    {\r
-    }\r
-\r
-    template<class Y>\r
-    explicit shared_ptr( Y * p ): px( p ), pn( p ) // Y must be complete\r
-    {\r
-        boost::detail::sp_enable_shared_from_this( this, p, p );\r
-    }\r
-\r
-    //\r
-    // Requirements: D's copy constructor must not throw\r
-    //\r
-    // shared_ptr will release p by calling d(p)\r
-    //\r
-\r
-    template<class Y, class D> shared_ptr(Y * p, D d): px(p), pn(p, d)\r
-    {\r
-        boost::detail::sp_enable_shared_from_this( this, p, p );\r
-    }\r
-\r
-    // As above, but with allocator. A's copy constructor shall not throw.\r
-\r
-    template<class Y, class D, class A> shared_ptr( Y * p, D d, A a ): px( p ), pn( p, d, a )\r
-    {\r
-        boost::detail::sp_enable_shared_from_this( this, p, p );\r
-    }\r
-\r
-//  generated copy constructor, destructor are fine\r
-\r
-    template<class Y>\r
-    explicit shared_ptr(weak_ptr<Y> const & r): pn(r.pn) // may throw\r
-    {\r
-        // it is now safe to copy r.px, as pn(r.pn) did not throw\r
-        px = r.px;\r
-    }\r
-\r
-    template<class Y>\r
-    shared_ptr( weak_ptr<Y> const & r, boost::detail::sp_nothrow_tag ): px( 0 ), pn( r.pn, boost::detail::sp_nothrow_tag() ) // never throws\r
-    {\r
-        if( !pn.empty() )\r
-        {\r
-            px = r.px;\r
-        }\r
-    }\r
-\r
-    template<class Y>\r
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
-\r
-    shared_ptr( shared_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )\r
-\r
-#else\r
-\r
-    shared_ptr( shared_ptr<Y> const & r )\r
-\r
-#endif\r
-    : px( r.px ), pn( r.pn ) // never throws\r
-    {\r
-    }\r
-\r
-    // aliasing\r
-    template< class Y >\r
-    shared_ptr( shared_ptr<Y> const & r, T * p ): px( p ), pn( r.pn ) // never throws\r
-    {\r
-    }\r
-\r
-    template<class Y>\r
-    shared_ptr(shared_ptr<Y> const & r, boost::detail::static_cast_tag): px(static_cast<element_type *>(r.px)), pn(r.pn)\r
-    {\r
-    }\r
-\r
-    template<class Y>\r
-    shared_ptr(shared_ptr<Y> const & r, boost::detail::const_cast_tag): px(const_cast<element_type *>(r.px)), pn(r.pn)\r
-    {\r
-    }\r
-\r
-    template<class Y>\r
-    shared_ptr(shared_ptr<Y> const & r, boost::detail::dynamic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)\r
-    {\r
-        if(px == 0) // need to allocate new counter -- the cast failed\r
-        {\r
-            pn = boost::detail::shared_count();\r
-        }\r
-    }\r
-\r
-    template<class Y>\r
-    shared_ptr(shared_ptr<Y> const & r, boost::detail::polymorphic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)\r
-    {\r
-        if(px == 0)\r
-        {\r
-            boost::throw_exception(std::bad_cast());\r
-        }\r
-    }\r
-\r
-#ifndef BOOST_NO_AUTO_PTR\r
-\r
-    template<class Y>\r
-    explicit shared_ptr(std::auto_ptr<Y> & r): px(r.get()), pn()\r
-    {\r
-        Y * tmp = r.get();\r
-        pn = boost::detail::shared_count(r);\r
-        boost::detail::sp_enable_shared_from_this( this, tmp, tmp );\r
-    }\r
-\r
-#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )\r
-\r
-    template<class Ap>\r
-    explicit shared_ptr( Ap r, typename boost::detail::sp_enable_if_auto_ptr<Ap, int>::type = 0 ): px( r.get() ), pn()\r
-    {\r
-        typename Ap::element_type * tmp = r.get();\r
-        pn = boost::detail::shared_count( r );\r
-        boost::detail::sp_enable_shared_from_this( this, tmp, tmp );\r
-    }\r
-\r
-\r
-#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION\r
-\r
-#endif // BOOST_NO_AUTO_PTR\r
-\r
-    // assignment\r
-\r
-    shared_ptr & operator=( shared_ptr const & r ) // never throws\r
-    {\r
-        this_type(r).swap(*this);\r
-        return *this;\r
-    }\r
-\r
-#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1400)\r
-\r
-    template<class Y>\r
-    shared_ptr & operator=(shared_ptr<Y> const & r) // never throws\r
-    {\r
-        this_type(r).swap(*this);\r
-        return *this;\r
-    }\r
-\r
-#endif\r
-\r
-#ifndef BOOST_NO_AUTO_PTR\r
-\r
-    template<class Y>\r
-    shared_ptr & operator=( std::auto_ptr<Y> & r )\r
-    {\r
-        this_type(r).swap(*this);\r
-        return *this;\r
-    }\r
-\r
-#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )\r
-\r
-    template<class Ap>\r
-    typename boost::detail::sp_enable_if_auto_ptr< Ap, shared_ptr & >::type operator=( Ap r )\r
-    {\r
-        this_type( r ).swap( *this );\r
-        return *this;\r
-    }\r
-\r
-\r
-#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION\r
-\r
-#endif // BOOST_NO_AUTO_PTR\r
-\r
-// Move support\r
-\r
-#if defined( BOOST_HAS_RVALUE_REFS )\r
-\r
-    shared_ptr( shared_ptr && r ): px( r.px ), pn() // never throws\r
-    {\r
-        pn.swap( r.pn );\r
-        r.px = 0;\r
-    }\r
-\r
-    template<class Y>\r
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
-\r
-    shared_ptr( shared_ptr<Y> && r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )\r
-\r
-#else\r
-\r
-    shared_ptr( shared_ptr<Y> && r )\r
-\r
-#endif\r
-    : px( r.px ), pn() // never throws\r
-    {\r
-        pn.swap( r.pn );\r
-        r.px = 0;\r
-    }\r
-\r
-    shared_ptr & operator=( shared_ptr && r ) // never throws\r
-    {\r
-        this_type( std::move( r ) ).swap( *this );\r
-        return *this;\r
-    }\r
-\r
-    template<class Y>\r
-    shared_ptr & operator=( shared_ptr<Y> && r ) // never throws\r
-    {\r
-        this_type( std::move( r ) ).swap( *this );\r
-        return *this;\r
-    }\r
-\r
-#endif\r
-\r
-    void reset() // never throws in 1.30+\r
-    {\r
-        this_type().swap(*this);\r
-    }\r
-\r
-    template<class Y> void reset(Y * p) // Y must be complete\r
-    {\r
-        BOOST_ASSERT(p == 0 || p != px); // catch self-reset errors\r
-        this_type(p).swap(*this);\r
-    }\r
-\r
-    template<class Y, class D> void reset( Y * p, D d )\r
-    {\r
-        this_type( p, d ).swap( *this );\r
-    }\r
-\r
-    template<class Y, class D, class A> void reset( Y * p, D d, A a )\r
-    {\r
-        this_type( p, d, a ).swap( *this );\r
-    }\r
-\r
-    template<class Y> void reset( shared_ptr<Y> const & r, T * p )\r
-    {\r
-        this_type( r, p ).swap( *this );\r
-    }\r
-\r
-    reference operator* () const // never throws\r
-    {\r
-        BOOST_ASSERT(px != 0);\r
-        return *px;\r
-    }\r
-\r
-    T * operator-> () const // never throws\r
-    {\r
-        BOOST_ASSERT(px != 0);\r
-        return px;\r
-    }\r
-\r
-    T * get() const // never throws\r
-    {\r
-        return px;\r
-    }\r
-\r
-// implicit conversion to "bool"\r
-#include <boost/smart_ptr/detail/operator_bool.hpp>\r
-\r
-    bool unique() const // never throws\r
-    {\r
-        return pn.unique();\r
-    }\r
-\r
-    long use_count() const // never throws\r
-    {\r
-        return pn.use_count();\r
-    }\r
-\r
-    void swap(shared_ptr<T> & other) // never throws\r
-    {\r
-        std::swap(px, other.px);\r
-        pn.swap(other.pn);\r
-    }\r
-\r
-    template<class Y> bool _internal_less(shared_ptr<Y> const & rhs) const\r
-    {\r
-        return pn < rhs.pn;\r
-    }\r
-\r
-    void * _internal_get_deleter( detail::sp_typeinfo const & ti ) const\r
-    {\r
-        return pn.get_deleter( ti );\r
-    }\r
-\r
-    bool _internal_equiv( shared_ptr const & r ) const\r
-    {\r
-        return px == r.px && pn == r.pn;\r
-    }\r
-\r
-// Tasteless as this may seem, making all members public allows member templates\r
-// to work in the absence of member template friends. (Matthew Langston)\r
-\r
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS\r
-\r
-private:\r
-\r
-    template<class Y> friend class shared_ptr;\r
-    template<class Y> friend class weak_ptr;\r
-\r
-\r
-#endif\r
-\r
-    T * px;                     // contained pointer\r
-    boost::detail::shared_count pn;    // reference counter\r
-\r
-};  // shared_ptr\r
-\r
-template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b)\r
-{\r
-    return a.get() == b.get();\r
-}\r
-\r
-template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b)\r
-{\r
-    return a.get() != b.get();\r
-}\r
-\r
-#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96\r
-\r
-// Resolve the ambiguity between our op!= and the one in rel_ops\r
-\r
-template<class T> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<T> const & b)\r
-{\r
-    return a.get() != b.get();\r
-}\r
-\r
-#endif\r
-\r
-template<class T, class U> inline bool operator<(shared_ptr<T> const & a, shared_ptr<U> const & b)\r
-{\r
-    return a._internal_less(b);\r
-}\r
-\r
-template<class T> inline void swap(shared_ptr<T> & a, shared_ptr<T> & b)\r
-{\r
-    a.swap(b);\r
-}\r
-\r
-template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const & r)\r
-{\r
-    return shared_ptr<T>(r, boost::detail::static_cast_tag());\r
-}\r
-\r
-template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const & r)\r
-{\r
-    return shared_ptr<T>(r, boost::detail::const_cast_tag());\r
-}\r
-\r
-template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const & r)\r
-{\r
-    return shared_ptr<T>(r, boost::detail::dynamic_cast_tag());\r
-}\r
-\r
-// shared_*_cast names are deprecated. Use *_pointer_cast instead.\r
-\r
-template<class T, class U> shared_ptr<T> shared_static_cast(shared_ptr<U> const & r)\r
-{\r
-    return shared_ptr<T>(r, boost::detail::static_cast_tag());\r
-}\r
-\r
-template<class T, class U> shared_ptr<T> shared_dynamic_cast(shared_ptr<U> const & r)\r
-{\r
-    return shared_ptr<T>(r, boost::detail::dynamic_cast_tag());\r
-}\r
-\r
-template<class T, class U> shared_ptr<T> shared_polymorphic_cast(shared_ptr<U> const & r)\r
-{\r
-    return shared_ptr<T>(r, boost::detail::polymorphic_cast_tag());\r
-}\r
-\r
-template<class T, class U> shared_ptr<T> shared_polymorphic_downcast(shared_ptr<U> const & r)\r
-{\r
-    BOOST_ASSERT(dynamic_cast<T *>(r.get()) == r.get());\r
-    return shared_static_cast<T>(r);\r
-}\r
-\r
-// get_pointer() enables boost::mem_fn to recognize shared_ptr\r
-\r
-template<class T> inline T * get_pointer(shared_ptr<T> const & p)\r
-{\r
-    return p.get();\r
-}\r
-\r
-// operator<<\r
-\r
-#if !defined(BOOST_NO_IOSTREAM)\r
-\r
-#if defined(BOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) &&  (__GNUC__ < 3) )\r
-\r
-template<class Y> std::ostream & operator<< (std::ostream & os, shared_ptr<Y> const & p)\r
-{\r
-    os << p.get();\r
-    return os;\r
-}\r
-\r
-#else\r
-\r
-// in STLport's no-iostreams mode no iostream symbols can be used\r
-#ifndef _STLP_NO_IOSTREAMS\r
-\r
-# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300 && __SGI_STL_PORT)\r
-// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL\r
-using std::basic_ostream;\r
-template<class E, class T, class Y> basic_ostream<E, T> & operator<< (basic_ostream<E, T> & os, shared_ptr<Y> const & p)\r
-# else\r
-template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, shared_ptr<Y> const & p)\r
-# endif\r
-{\r
-    os << p.get();\r
-    return os;\r
-}\r
-\r
-#endif // _STLP_NO_IOSTREAMS\r
-\r
-#endif // __GNUC__ < 3\r
-\r
-#endif // !defined(BOOST_NO_IOSTREAM)\r
-\r
-// get_deleter\r
-\r
-#if ( defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3) ) || \\r
-    ( defined(__EDG_VERSION__) && BOOST_WORKAROUND(__EDG_VERSION__, <= 238) ) || \\r
-    ( defined(__HP_aCC) && BOOST_WORKAROUND(__HP_aCC, <= 33500) )\r
-\r
-// g++ 2.9x doesn't allow static_cast<X const *>(void *)\r
-// apparently EDG 2.38 and HP aCC A.03.35 also don't accept it\r
-\r
-template<class D, class T> D * get_deleter(shared_ptr<T> const & p)\r
-{\r
-    void const * q = p._internal_get_deleter(BOOST_SP_TYPEID(D));\r
-    return const_cast<D *>(static_cast<D const *>(q));\r
-}\r
-\r
-#else\r
-\r
-template<class D, class T> D * get_deleter(shared_ptr<T> const & p)\r
-{\r
-    return static_cast<D *>(p._internal_get_deleter(BOOST_SP_TYPEID(D)));\r
-}\r
-\r
-#endif\r
-\r
-// atomic access\r
-\r
-#if !defined(BOOST_SP_NO_ATOMIC_ACCESS)\r
-\r
-template<class T> inline bool atomic_is_lock_free( shared_ptr<T> const * /*p*/ )\r
-{\r
-    return false;\r
-}\r
-\r
-template<class T> shared_ptr<T> atomic_load( shared_ptr<T> const * p )\r
-{\r
-    boost::detail::spinlock_pool<2>::scoped_lock lock( p );\r
-    return *p;\r
-}\r
-\r
-template<class T> inline shared_ptr<T> atomic_load_explicit( shared_ptr<T> const * p, memory_order /*mo*/ )\r
-{\r
-    return atomic_load( p );\r
-}\r
-\r
-template<class T> void atomic_store( shared_ptr<T> * p, shared_ptr<T> r )\r
-{\r
-    boost::detail::spinlock_pool<2>::scoped_lock lock( p );\r
-    p->swap( r );\r
-}\r
-\r
-template<class T> inline void atomic_store_explicit( shared_ptr<T> * p, shared_ptr<T> r, memory_order /*mo*/ )\r
-{\r
-    atomic_store( p, r ); // std::move( r )\r
-}\r
-\r
-template<class T> shared_ptr<T> atomic_exchange( shared_ptr<T> * p, shared_ptr<T> r )\r
-{\r
-    boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p );\r
-\r
-    sp.lock();\r
-    p->swap( r );\r
-    sp.unlock();\r
-\r
-    return r; // return std::move( r )\r
-}\r
-\r
-template<class T> shared_ptr<T> atomic_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> r, memory_order /*mo*/ )\r
-{\r
-    return atomic_exchange( p, r ); // std::move( r )\r
-}\r
-\r
-template<class T> bool atomic_compare_exchange( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w )\r
-{\r
-    boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p );\r
-\r
-    sp.lock();\r
-\r
-    if( p->_internal_equiv( *v ) )\r
-    {\r
-        p->swap( w );\r
-\r
-        sp.unlock();\r
-\r
-        return true;\r
-    }\r
-    else\r
-    {\r
-        shared_ptr<T> tmp( *p );\r
-\r
-        sp.unlock();\r
-\r
-        tmp.swap( *v );\r
-        return false;\r
-    }\r
-}\r
-\r
-template<class T> inline bool atomic_compare_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w, memory_order /*success*/, memory_order /*failure*/ )\r
-{\r
-    return atomic_compare_exchange( p, v, w ); // std::move( w )\r
-}\r
-\r
-#endif\r
-\r
-} // namespace boost\r
-\r
-#ifdef BOOST_MSVC\r
-# pragma warning(pop)\r
-#endif\r
-\r
-#endif  // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)\r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED
+#define BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED
+
+//
+//  shared_ptr.hpp
+//
+//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
+//  Copyright (c) 2001-2008 Peter Dimov
+//
+//  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/smart_ptr/shared_ptr.htm for documentation.
+//
+
+#include <boost/config.hpp>   // for broken compiler workarounds
+
+#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+#include <boost/smart_ptr/detail/shared_ptr_nmt.hpp>
+#else
+
+// In order to avoid circular dependencies with Boost.TR1
+// we make sure that our include of <memory> doesn't try to
+// pull in the TR1 headers: that's why we use this header 
+// rather than including <memory> directly:
+#include <boost/config/no_tr1/memory.hpp>  // std::auto_ptr
+
+#include <boost/assert.hpp>
+#include <boost/checked_delete.hpp>
+#include <boost/throw_exception.hpp>
+#include <boost/smart_ptr/detail/shared_count.hpp>
+#include <boost/detail/workaround.hpp>
+#include <boost/smart_ptr/detail/sp_convertible.hpp>
+
+#if !defined(BOOST_SP_NO_ATOMIC_ACCESS)
+#include <boost/smart_ptr/detail/spinlock_pool.hpp>
+#include <boost/memory_order.hpp>
+#endif
+
+#include <algorithm>            // for std::swap
+#include <functional>           // for std::less
+#include <typeinfo>             // for std::bad_cast
+
+#if !defined(BOOST_NO_IOSTREAM)
+#if !defined(BOOST_NO_IOSFWD)
+#include <iosfwd>               // for std::basic_ostream
+#else
+#include <ostream>
+#endif
+#endif
+
+#ifdef BOOST_MSVC  // moved here to work around VC++ compiler crash
+# pragma warning(push)
+# pragma warning(disable:4284) // odd return type for operator->
+#endif
+
+namespace boost
+{
+
+template<class T> class shared_ptr;
+template<class T> class weak_ptr;
+template<class T> class enable_shared_from_this;
+template<class T> class enable_shared_from_this2;
+
+namespace detail
+{
+
+struct static_cast_tag {};
+struct const_cast_tag {};
+struct dynamic_cast_tag {};
+struct polymorphic_cast_tag {};
+
+template<class T> struct shared_ptr_traits
+{
+    typedef T & reference;
+};
+
+template<> struct shared_ptr_traits<void>
+{
+    typedef void reference;
+};
+
+#if !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
+
+template<> struct shared_ptr_traits<void const>
+{
+    typedef void reference;
+};
+
+template<> struct shared_ptr_traits<void volatile>
+{
+    typedef void reference;
+};
+
+template<> struct shared_ptr_traits<void const volatile>
+{
+    typedef void reference;
+};
+
+#endif
+
+// enable_shared_from_this support
+
+template< class X, class Y, class T > inline void sp_enable_shared_from_this( boost::shared_ptr<X> const * ppx, Y const * py, boost::enable_shared_from_this< T > const * pe )
+{
+    if( pe != 0 )
+    {
+        pe->_internal_accept_owner( ppx, const_cast< Y* >( py ) );
+    }
+}
+
+template< class X, class Y, class T > inline void sp_enable_shared_from_this( boost::shared_ptr<X> * ppx, Y const * py, boost::enable_shared_from_this2< T > const * pe )
+{
+    if( pe != 0 )
+    {
+        pe->_internal_accept_owner( ppx, const_cast< Y* >( py ) );
+    }
+}
+
+#ifdef _MANAGED
+
+// Avoid C4793, ... causes native code generation
+
+struct sp_any_pointer
+{
+    template<class T> sp_any_pointer( T* ) {}
+};
+
+inline void sp_enable_shared_from_this( sp_any_pointer, sp_any_pointer, sp_any_pointer )
+{
+}
+
+#else // _MANAGED
+
+inline void sp_enable_shared_from_this( ... )
+{
+}
+
+#endif // _MANAGED
+
+#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_AUTO_PTR )
+
+// rvalue auto_ptr support based on a technique by Dave Abrahams
+
+template< class T, class R > struct sp_enable_if_auto_ptr
+{
+};
+
+template< class T, class R > struct sp_enable_if_auto_ptr< std::auto_ptr< T >, R >
+{
+    typedef R type;
+}; 
+
+#endif
+
+} // namespace detail
+
+
+//
+//  shared_ptr
+//
+//  An enhanced relative of scoped_ptr with reference counted copy semantics.
+//  The object pointed to is deleted when the last shared_ptr pointing to it
+//  is destroyed or reset.
+//
+
+template<class T> class shared_ptr
+{
+private:
+
+    // Borland 5.5.1 specific workaround
+    typedef shared_ptr<T> this_type;
+
+public:
+
+    typedef T element_type;
+    typedef T value_type;
+    typedef T * pointer;
+    typedef typename boost::detail::shared_ptr_traits<T>::reference reference;
+
+    shared_ptr(): px(0), pn() // never throws in 1.30+
+    {
+    }
+
+    template<class Y>
+    explicit shared_ptr( Y * p ): px( p ), pn( p ) // Y must be complete
+    {
+        boost::detail::sp_enable_shared_from_this( this, p, p );
+    }
+
+    //
+    // Requirements: D's copy constructor must not throw
+    //
+    // shared_ptr will release p by calling d(p)
+    //
+
+    template<class Y, class D> shared_ptr(Y * p, D d): px(p), pn(p, d)
+    {
+        boost::detail::sp_enable_shared_from_this( this, p, p );
+    }
+
+    // As above, but with allocator. A's copy constructor shall not throw.
+
+    template<class Y, class D, class A> shared_ptr( Y * p, D d, A a ): px( p ), pn( p, d, a )
+    {
+        boost::detail::sp_enable_shared_from_this( this, p, p );
+    }
+
+//  generated copy constructor, destructor are fine
+
+    template<class Y>
+    explicit shared_ptr(weak_ptr<Y> const & r): pn(r.pn) // may throw
+    {
+        // it is now safe to copy r.px, as pn(r.pn) did not throw
+        px = r.px;
+    }
+
+    template<class Y>
+    shared_ptr( weak_ptr<Y> const & r, boost::detail::sp_nothrow_tag ): px( 0 ), pn( r.pn, boost::detail::sp_nothrow_tag() ) // never throws
+    {
+        if( !pn.empty() )
+        {
+            px = r.px;
+        }
+    }
+
+    template<class Y>
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+
+    shared_ptr( shared_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )
+
+#else
+
+    shared_ptr( shared_ptr<Y> const & r )
+
+#endif
+    : px( r.px ), pn( r.pn ) // never throws
+    {
+    }
+
+    // aliasing
+    template< class Y >
+    shared_ptr( shared_ptr<Y> const & r, T * p ): px( p ), pn( r.pn ) // never throws
+    {
+    }
+
+    template<class Y>
+    shared_ptr(shared_ptr<Y> const & r, boost::detail::static_cast_tag): px(static_cast<element_type *>(r.px)), pn(r.pn)
+    {
+    }
+
+    template<class Y>
+    shared_ptr(shared_ptr<Y> const & r, boost::detail::const_cast_tag): px(const_cast<element_type *>(r.px)), pn(r.pn)
+    {
+    }
+
+    template<class Y>
+    shared_ptr(shared_ptr<Y> const & r, boost::detail::dynamic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)
+    {
+        if(px == 0) // need to allocate new counter -- the cast failed
+        {
+            pn = boost::detail::shared_count();
+        }
+    }
+
+    template<class Y>
+    shared_ptr(shared_ptr<Y> const & r, boost::detail::polymorphic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)
+    {
+        if(px == 0)
+        {
+            boost::throw_exception(std::bad_cast());
+        }
+    }
+
+#ifndef BOOST_NO_AUTO_PTR
+
+    template<class Y>
+    explicit shared_ptr(std::auto_ptr<Y> & r): px(r.get()), pn()
+    {
+        Y * tmp = r.get();
+        pn = boost::detail::shared_count(r);
+        boost::detail::sp_enable_shared_from_this( this, tmp, tmp );
+    }
+
+#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+
+    template<class Ap>
+    explicit shared_ptr( Ap r, typename boost::detail::sp_enable_if_auto_ptr<Ap, int>::type = 0 ): px( r.get() ), pn()
+    {
+        typename Ap::element_type * tmp = r.get();
+        pn = boost::detail::shared_count( r );
+        boost::detail::sp_enable_shared_from_this( this, tmp, tmp );
+    }
+
+
+#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#endif // BOOST_NO_AUTO_PTR
+
+    // assignment
+
+    shared_ptr & operator=( shared_ptr const & r ) // never throws
+    {
+        this_type(r).swap(*this);
+        return *this;
+    }
+
+#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1400)
+
+    template<class Y>
+    shared_ptr & operator=(shared_ptr<Y> const & r) // never throws
+    {
+        this_type(r).swap(*this);
+        return *this;
+    }
+
+#endif
+
+#ifndef BOOST_NO_AUTO_PTR
+
+    template<class Y>
+    shared_ptr & operator=( std::auto_ptr<Y> & r )
+    {
+        this_type(r).swap(*this);
+        return *this;
+    }
+
+#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+
+    template<class Ap>
+    typename boost::detail::sp_enable_if_auto_ptr< Ap, shared_ptr & >::type operator=( Ap r )
+    {
+        this_type( r ).swap( *this );
+        return *this;
+    }
+
+
+#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#endif // BOOST_NO_AUTO_PTR
+
+// Move support
+
+#if defined( BOOST_HAS_RVALUE_REFS )
+
+    shared_ptr( shared_ptr && r ): px( r.px ), pn() // never throws
+    {
+        pn.swap( r.pn );
+        r.px = 0;
+    }
+
+    template<class Y>
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+
+    shared_ptr( shared_ptr<Y> && r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )
+
+#else
+
+    shared_ptr( shared_ptr<Y> && r )
+
+#endif
+    : px( r.px ), pn() // never throws
+    {
+        pn.swap( r.pn );
+        r.px = 0;
+    }
+
+    shared_ptr & operator=( shared_ptr && r ) // never throws
+    {
+        this_type( std::move( r ) ).swap( *this );
+        return *this;
+    }
+
+    template<class Y>
+    shared_ptr & operator=( shared_ptr<Y> && r ) // never throws
+    {
+        this_type( std::move( r ) ).swap( *this );
+        return *this;
+    }
+
+#endif
+
+    void reset() // never throws in 1.30+
+    {
+        this_type().swap(*this);
+    }
+
+    template<class Y> void reset(Y * p) // Y must be complete
+    {
+        BOOST_ASSERT(p == 0 || p != px); // catch self-reset errors
+        this_type(p).swap(*this);
+    }
+
+    template<class Y, class D> void reset( Y * p, D d )
+    {
+        this_type( p, d ).swap( *this );
+    }
+
+    template<class Y, class D, class A> void reset( Y * p, D d, A a )
+    {
+        this_type( p, d, a ).swap( *this );
+    }
+
+    template<class Y> void reset( shared_ptr<Y> const & r, T * p )
+    {
+        this_type( r, p ).swap( *this );
+    }
+
+    reference operator* () const // never throws
+    {
+        BOOST_ASSERT(px != 0);
+        return *px;
+    }
+
+    T * operator-> () const // never throws
+    {
+        BOOST_ASSERT(px != 0);
+        return px;
+    }
+
+    T * get() const // never throws
+    {
+        return px;
+    }
+
+// implicit conversion to "bool"
+#include <boost/smart_ptr/detail/operator_bool.hpp>
+
+    bool unique() const // never throws
+    {
+        return pn.unique();
+    }
+
+    long use_count() const // never throws
+    {
+        return pn.use_count();
+    }
+
+    void swap(shared_ptr<T> & other) // never throws
+    {
+        std::swap(px, other.px);
+        pn.swap(other.pn);
+    }
+
+    template<class Y> bool _internal_less(shared_ptr<Y> const & rhs) const
+    {
+        return pn < rhs.pn;
+    }
+
+    void * _internal_get_deleter( detail::sp_typeinfo const & ti ) const
+    {
+        return pn.get_deleter( ti );
+    }
+
+    bool _internal_equiv( shared_ptr const & r ) const
+    {
+        return px == r.px && pn == r.pn;
+    }
+
+// Tasteless as this may seem, making all members public allows member templates
+// to work in the absence of member template friends. (Matthew Langston)
+
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+
+private:
+
+    template<class Y> friend class shared_ptr;
+    template<class Y> friend class weak_ptr;
+
+
+#endif
+
+    T * px;                     // contained pointer
+    boost::detail::shared_count pn;    // reference counter
+
+};  // shared_ptr
+
+template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b)
+{
+    return a.get() == b.get();
+}
+
+template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b)
+{
+    return a.get() != b.get();
+}
+
+#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96
+
+// Resolve the ambiguity between our op!= and the one in rel_ops
+
+template<class T> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<T> const & b)
+{
+    return a.get() != b.get();
+}
+
+#endif
+
+template<class T, class U> inline bool operator<(shared_ptr<T> const & a, shared_ptr<U> const & b)
+{
+    return a._internal_less(b);
+}
+
+template<class T> inline void swap(shared_ptr<T> & a, shared_ptr<T> & b)
+{
+    a.swap(b);
+}
+
+template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const & r)
+{
+    return shared_ptr<T>(r, boost::detail::static_cast_tag());
+}
+
+template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const & r)
+{
+    return shared_ptr<T>(r, boost::detail::const_cast_tag());
+}
+
+template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const & r)
+{
+    return shared_ptr<T>(r, boost::detail::dynamic_cast_tag());
+}
+
+// shared_*_cast names are deprecated. Use *_pointer_cast instead.
+
+template<class T, class U> shared_ptr<T> shared_static_cast(shared_ptr<U> const & r)
+{
+    return shared_ptr<T>(r, boost::detail::static_cast_tag());
+}
+
+template<class T, class U> shared_ptr<T> shared_dynamic_cast(shared_ptr<U> const & r)
+{
+    return shared_ptr<T>(r, boost::detail::dynamic_cast_tag());
+}
+
+template<class T, class U> shared_ptr<T> shared_polymorphic_cast(shared_ptr<U> const & r)
+{
+    return shared_ptr<T>(r, boost::detail::polymorphic_cast_tag());
+}
+
+template<class T, class U> shared_ptr<T> shared_polymorphic_downcast(shared_ptr<U> const & r)
+{
+    BOOST_ASSERT(dynamic_cast<T *>(r.get()) == r.get());
+    return shared_static_cast<T>(r);
+}
+
+// get_pointer() enables boost::mem_fn to recognize shared_ptr
+
+template<class T> inline T * get_pointer(shared_ptr<T> const & p)
+{
+    return p.get();
+}
+
+// operator<<
+
+#if !defined(BOOST_NO_IOSTREAM)
+
+#if defined(BOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) &&  (__GNUC__ < 3) )
+
+template<class Y> std::ostream & operator<< (std::ostream & os, shared_ptr<Y> const & p)
+{
+    os << p.get();
+    return os;
+}
+
+#else
+
+// in STLport's no-iostreams mode no iostream symbols can be used
+#ifndef _STLP_NO_IOSTREAMS
+
+# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300 && __SGI_STL_PORT)
+// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL
+using std::basic_ostream;
+template<class E, class T, class Y> basic_ostream<E, T> & operator<< (basic_ostream<E, T> & os, shared_ptr<Y> const & p)
+# else
+template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, shared_ptr<Y> const & p)
+# endif
+{
+    os << p.get();
+    return os;
+}
+
+#endif // _STLP_NO_IOSTREAMS
+
+#endif // __GNUC__ < 3
+
+#endif // !defined(BOOST_NO_IOSTREAM)
+
+// get_deleter
+
+#if ( defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3) ) || \
+    ( defined(__EDG_VERSION__) && BOOST_WORKAROUND(__EDG_VERSION__, <= 238) ) || \
+    ( defined(__HP_aCC) && BOOST_WORKAROUND(__HP_aCC, <= 33500) )
+
+// g++ 2.9x doesn't allow static_cast<X const *>(void *)
+// apparently EDG 2.38 and HP aCC A.03.35 also don't accept it
+
+template<class D, class T> D * get_deleter(shared_ptr<T> const & p)
+{
+    void const * q = p._internal_get_deleter(BOOST_SP_TYPEID(D));
+    return const_cast<D *>(static_cast<D const *>(q));
+}
+
+#else
+
+template<class D, class T> D * get_deleter(shared_ptr<T> const & p)
+{
+    return static_cast<D *>(p._internal_get_deleter(BOOST_SP_TYPEID(D)));
+}
+
+#endif
+
+// atomic access
+
+#if !defined(BOOST_SP_NO_ATOMIC_ACCESS)
+
+template<class T> inline bool atomic_is_lock_free( shared_ptr<T> const * /*p*/ )
+{
+    return false;
+}
+
+template<class T> shared_ptr<T> atomic_load( shared_ptr<T> const * p )
+{
+    boost::detail::spinlock_pool<2>::scoped_lock lock( p );
+    return *p;
+}
+
+template<class T> inline shared_ptr<T> atomic_load_explicit( shared_ptr<T> const * p, memory_order /*mo*/ )
+{
+    return atomic_load( p );
+}
+
+template<class T> void atomic_store( shared_ptr<T> * p, shared_ptr<T> r )
+{
+    boost::detail::spinlock_pool<2>::scoped_lock lock( p );
+    p->swap( r );
+}
+
+template<class T> inline void atomic_store_explicit( shared_ptr<T> * p, shared_ptr<T> r, memory_order /*mo*/ )
+{
+    atomic_store( p, r ); // std::move( r )
+}
+
+template<class T> shared_ptr<T> atomic_exchange( shared_ptr<T> * p, shared_ptr<T> r )
+{
+    boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p );
+
+    sp.lock();
+    p->swap( r );
+    sp.unlock();
+
+    return r; // return std::move( r )
+}
+
+template<class T> shared_ptr<T> atomic_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> r, memory_order /*mo*/ )
+{
+    return atomic_exchange( p, r ); // std::move( r )
+}
+
+template<class T> bool atomic_compare_exchange( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w )
+{
+    boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p );
+
+    sp.lock();
+
+    if( p->_internal_equiv( *v ) )
+    {
+        p->swap( w );
+
+        sp.unlock();
+
+        return true;
+    }
+    else
+    {
+        shared_ptr<T> tmp( *p );
+
+        sp.unlock();
+
+        tmp.swap( *v );
+        return false;
+    }
+}
+
+template<class T> inline bool atomic_compare_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w, memory_order /*success*/, memory_order /*failure*/ )
+{
+    return atomic_compare_exchange( p, v, w ); // std::move( w )
+}
+
+#endif
+
+} // namespace boost
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
+
+#endif  // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+
+#endif  // #ifndef BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED
index 317ea44350751072590e0b8ad65cba33caa6b7e3..621c433a0356c37ef46cb6a8f55cd0c49bddb6f8 100644 (file)
-#ifndef BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED\r
-#define BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED\r
-\r
-//\r
-//  weak_ptr.hpp\r
-//\r
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-//  See http://www.boost.org/libs/smart_ptr/weak_ptr.htm for documentation.\r
-//\r
-\r
-#include <memory> // boost.TR1 include order fix\r
-#include <boost/smart_ptr/detail/shared_count.hpp>\r
-#include <boost/smart_ptr/shared_ptr.hpp>\r
-\r
-#ifdef BOOST_MSVC  // moved here to work around VC++ compiler crash\r
-# pragma warning(push)\r
-# pragma warning(disable:4284) // odd return type for operator->\r
-#endif\r
-\r
-namespace boost\r
-{\r
-\r
-template<class T> class weak_ptr\r
-{\r
-private:\r
-\r
-    // Borland 5.5.1 specific workarounds\r
-    typedef weak_ptr<T> this_type;\r
-\r
-public:\r
-\r
-    typedef T element_type;\r
-\r
-    weak_ptr(): px(0), pn() // never throws in 1.30+\r
-    {\r
-    }\r
-\r
-//  generated copy constructor, assignment, destructor are fine\r
-\r
-\r
-//\r
-//  The "obvious" converting constructor implementation:\r
-//\r
-//  template<class Y>\r
-//  weak_ptr(weak_ptr<Y> const & r): px(r.px), pn(r.pn) // never throws\r
-//  {\r
-//  }\r
-//\r
-//  has a serious problem.\r
-//\r
-//  r.px may already have been invalidated. The px(r.px)\r
-//  conversion may require access to *r.px (virtual inheritance).\r
-//\r
-//  It is not possible to avoid spurious access violations since\r
-//  in multithreaded programs r.px may be invalidated at any point.\r
-//\r
-\r
-    template<class Y>\r
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
-\r
-    weak_ptr( weak_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )\r
-\r
-#else\r
-\r
-    weak_ptr( weak_ptr<Y> const & r )\r
-\r
-#endif\r
-    : px(r.lock().get()), pn(r.pn) // never throws\r
-    {\r
-    }\r
-\r
-#if defined( BOOST_HAS_RVALUE_REFS )\r
-\r
-    template<class Y>\r
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
-\r
-    weak_ptr( weak_ptr<Y> && r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )\r
-\r
-#else\r
-\r
-    weak_ptr( weak_ptr<Y> && r )\r
-\r
-#endif\r
-    : px(r.lock().get()), pn(std::move(r.pn)) // never throws\r
-    {\r
-        r.px = 0;\r
-    }\r
-\r
-    // for better efficiency in the T == Y case\r
-    weak_ptr( weak_ptr && r ): px( r.px ), pn(std::move(r.pn)) // never throws\r
-    {\r
-        r.px = 0;\r
-    }\r
-\r
-    // for better efficiency in the T == Y case\r
-    weak_ptr & operator=( weak_ptr && r ) // never throws\r
-    {\r
-        this_type( std::move( r ) ).swap( *this );\r
-        return *this;\r
-    }\r
-\r
-\r
-#endif\r
-\r
-    template<class Y>\r
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
-\r
-    weak_ptr( shared_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )\r
-\r
-#else\r
-\r
-    weak_ptr( shared_ptr<Y> const & r )\r
-\r
-#endif\r
-    : px( r.px ), pn( r.pn ) // never throws\r
-    {\r
-    }\r
-\r
-#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1300)\r
-\r
-    template<class Y>\r
-    weak_ptr & operator=(weak_ptr<Y> const & r) // never throws\r
-    {\r
-        px = r.lock().get();\r
-        pn = r.pn;\r
-        return *this;\r
-    }\r
-\r
-#if defined( BOOST_HAS_RVALUE_REFS )\r
-\r
-    template<class Y>\r
-    weak_ptr & operator=(weak_ptr<Y> && r)\r
-    {\r
-        this_type( std::move( r ) ).swap( *this );\r
-        return *this;\r
-    }\r
-\r
-#endif\r
-\r
-    template<class Y>\r
-    weak_ptr & operator=(shared_ptr<Y> const & r) // never throws\r
-    {\r
-        px = r.px;\r
-        pn = r.pn;\r
-        return *this;\r
-    }\r
-\r
-#endif\r
-\r
-    shared_ptr<T> lock() const // never throws\r
-    {\r
-        return shared_ptr<element_type>( *this, boost::detail::sp_nothrow_tag() );\r
-    }\r
-\r
-    long use_count() const // never throws\r
-    {\r
-        return pn.use_count();\r
-    }\r
-\r
-    bool expired() const // never throws\r
-    {\r
-        return pn.use_count() == 0;\r
-    }\r
-\r
-    bool _empty() const // extension, not in std::weak_ptr\r
-    {\r
-        return pn.empty();\r
-    }\r
-\r
-    void reset() // never throws in 1.30+\r
-    {\r
-        this_type().swap(*this);\r
-    }\r
-\r
-    void swap(this_type & other) // never throws\r
-    {\r
-        std::swap(px, other.px);\r
-        pn.swap(other.pn);\r
-    }\r
-\r
-    void _internal_assign(T * px2, boost::detail::shared_count const & pn2)\r
-    {\r
-        px = px2;\r
-        pn = pn2;\r
-    }\r
-\r
-    template<class Y> bool _internal_less(weak_ptr<Y> const & rhs) const\r
-    {\r
-        return pn < rhs.pn;\r
-    }\r
-\r
-// Tasteless as this may seem, making all members public allows member templates\r
-// to work in the absence of member template friends. (Matthew Langston)\r
-\r
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS\r
-\r
-private:\r
-\r
-    template<class Y> friend class weak_ptr;\r
-    template<class Y> friend class shared_ptr;\r
-\r
-#endif\r
-\r
-    T * px;                       // contained pointer\r
-    boost::detail::weak_count pn; // reference counter\r
-\r
-};  // weak_ptr\r
-\r
-template<class T, class U> inline bool operator<(weak_ptr<T> const & a, weak_ptr<U> const & b)\r
-{\r
-    return a._internal_less(b);\r
-}\r
-\r
-template<class T> void swap(weak_ptr<T> & a, weak_ptr<T> & b)\r
-{\r
-    a.swap(b);\r
-}\r
-\r
-} // namespace boost\r
-\r
-#ifdef BOOST_MSVC\r
-# pragma warning(pop)\r
-#endif    \r
-\r
-#endif  // #ifndef BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED\r
+#ifndef BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED
+#define BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED
+
+//
+//  weak_ptr.hpp
+//
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov
+//
+// 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/smart_ptr/weak_ptr.htm for documentation.
+//
+
+#include <memory> // boost.TR1 include order fix
+#include <boost/smart_ptr/detail/shared_count.hpp>
+#include <boost/smart_ptr/shared_ptr.hpp>
+
+#ifdef BOOST_MSVC  // moved here to work around VC++ compiler crash
+# pragma warning(push)
+# pragma warning(disable:4284) // odd return type for operator->
+#endif
+
+namespace boost
+{
+
+template<class T> class weak_ptr
+{
+private:
+
+    // Borland 5.5.1 specific workarounds
+    typedef weak_ptr<T> this_type;
+
+public:
+
+    typedef T element_type;
+
+    weak_ptr(): px(0), pn() // never throws in 1.30+
+    {
+    }
+
+//  generated copy constructor, assignment, destructor are fine
+
+
+//
+//  The "obvious" converting constructor implementation:
+//
+//  template<class Y>
+//  weak_ptr(weak_ptr<Y> const & r): px(r.px), pn(r.pn) // never throws
+//  {
+//  }
+//
+//  has a serious problem.
+//
+//  r.px may already have been invalidated. The px(r.px)
+//  conversion may require access to *r.px (virtual inheritance).
+//
+//  It is not possible to avoid spurious access violations since
+//  in multithreaded programs r.px may be invalidated at any point.
+//
+
+    template<class Y>
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+
+    weak_ptr( weak_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )
+
+#else
+
+    weak_ptr( weak_ptr<Y> const & r )
+
+#endif
+    : px(r.lock().get()), pn(r.pn) // never throws
+    {
+    }
+
+#if defined( BOOST_HAS_RVALUE_REFS )
+
+    template<class Y>
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+
+    weak_ptr( weak_ptr<Y> && r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )
+
+#else
+
+    weak_ptr( weak_ptr<Y> && r )
+
+#endif
+    : px(r.lock().get()), pn(std::move(r.pn)) // never throws
+    {
+        r.px = 0;
+    }
+
+    // for better efficiency in the T == Y case
+    weak_ptr( weak_ptr && r ): px( r.px ), pn(std::move(r.pn)) // never throws
+    {
+        r.px = 0;
+    }
+
+    // for better efficiency in the T == Y case
+    weak_ptr & operator=( weak_ptr && r ) // never throws
+    {
+        this_type( std::move( r ) ).swap( *this );
+        return *this;
+    }
+
+
+#endif
+
+    template<class Y>
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
+
+    weak_ptr( shared_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )
+
+#else
+
+    weak_ptr( shared_ptr<Y> const & r )
+
+#endif
+    : px( r.px ), pn( r.pn ) // never throws
+    {
+    }
+
+#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1300)
+
+    template<class Y>
+    weak_ptr & operator=(weak_ptr<Y> const & r) // never throws
+    {
+        px = r.lock().get();
+        pn = r.pn;
+        return *this;
+    }
+
+#if defined( BOOST_HAS_RVALUE_REFS )
+
+    template<class Y>
+    weak_ptr & operator=(weak_ptr<Y> && r)
+    {
+        this_type( std::move( r ) ).swap( *this );
+        return *this;
+    }
+
+#endif
+
+    template<class Y>
+    weak_ptr & operator=(shared_ptr<Y> const & r) // never throws
+    {
+        px = r.px;
+        pn = r.pn;
+        return *this;
+    }
+
+#endif
+
+    shared_ptr<T> lock() const // never throws
+    {
+        return shared_ptr<element_type>( *this, boost::detail::sp_nothrow_tag() );
+    }
+
+    long use_count() const // never throws
+    {
+        return pn.use_count();
+    }
+
+    bool expired() const // never throws
+    {
+        return pn.use_count() == 0;
+    }
+
+    bool _empty() const // extension, not in std::weak_ptr
+    {
+        return pn.empty();
+    }
+
+    void reset() // never throws in 1.30+
+    {
+        this_type().swap(*this);
+    }
+
+    void swap(this_type & other) // never throws
+    {
+        std::swap(px, other.px);
+        pn.swap(other.pn);
+    }
+
+    void _internal_assign(T * px2, boost::detail::shared_count const & pn2)
+    {
+        px = px2;
+        pn = pn2;
+    }
+
+    template<class Y> bool _internal_less(weak_ptr<Y> const & rhs) const
+    {
+        return pn < rhs.pn;
+    }
+
+// Tasteless as this may seem, making all members public allows member templates
+// to work in the absence of member template friends. (Matthew Langston)
+
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+
+private:
+
+    template<class Y> friend class weak_ptr;
+    template<class Y> friend class shared_ptr;
+
+#endif
+
+    T * px;                       // contained pointer
+    boost::detail::weak_count pn; // reference counter
+
+};  // weak_ptr
+
+template<class T, class U> inline bool operator<(weak_ptr<T> const & a, weak_ptr<U> const & b)
+{
+    return a._internal_less(b);
+}
+
+template<class T> void swap(weak_ptr<T> & a, weak_ptr<T> & b)
+{
+    a.swap(b);
+}
+
+} // namespace boost
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif    
+
+#endif  // #ifndef BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED
index f16f7b2e7da8afda136801d01cf4b5f4e0d035ce..dfc11f059dbe77b036426e0f109177eca6ee949b 100644 (file)
@@ -1,12 +1,12 @@
-// Copyright (C) 2007 Joseph Gauterin\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef BOOST_SWAP_HPP\r
-#define BOOST_SWAP_HPP\r
-\r
-#include "boost/utility/swap.hpp"\r
-\r
-#endif\r
+// Copyright (C) 2007 Joseph Gauterin
+//
+// 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_SWAP_HPP
+#define BOOST_SWAP_HPP
+
+#include "boost/utility/swap.hpp"
+
+#endif
index 55ed0ef2ca22c30ce77a6d4439a7077d8571ce13..6d5351e080096bf2803a9503ce19dde94baad5cb 100644 (file)
-\r
-//  (C) Copyright Runar Undheim, Robert Ramey & John Maddock 2008.\r
-//  Use, modification and distribution are subject to the Boost Software License,\r
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt).\r
-//\r
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.\r
-\r
-#ifndef BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED\r
-#define BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED\r
-\r
-#include <new> // std::nothrow_t\r
-#include <cstddef> // std::size_t\r
-#include <boost/type_traits/config.hpp>\r
-#include <boost/type_traits/detail/yes_no_type.hpp>\r
-#include <boost/type_traits/detail/ice_or.hpp>\r
-\r
-// should be the last #include\r
-#include <boost/type_traits/detail/bool_trait_def.hpp>\r
-\r
-namespace boost {\r
-namespace detail {\r
-    template <class U, U x> \r
-    struct test;\r
-\r
-    template <typename T>\r
-    struct has_new_operator_impl {\r
-        template<class U>\r
-        static type_traits::yes_type check_sig(\r
-            U*, \r
-            test<\r
-            void *(*)(std::size_t),\r
-                &U::operator new\r
-            >* = NULL\r
-        );\r
-        template<class U>\r
-        static type_traits::yes_type check_sig(\r
-            U*, \r
-            test<\r
-            void *(*)(std::size_t, const std::nothrow_t&),\r
-                &U::operator new\r
-            >* = NULL\r
-        );\r
-        template<class U>\r
-        static type_traits::yes_type check_sig(\r
-            U*, \r
-            test<\r
-            void *(*)(std::size_t, void*),\r
-                &U::operator new\r
-            >* = NULL\r
-        );\r
-        template<class U>\r
-        static type_traits::no_type check_sig(...);\r
-\r
-        template<class U>\r
-        static type_traits::yes_type check_sig2(\r
-            U*, \r
-            test<\r
-            void *(*)(std::size_t),\r
-                &U::operator new[]\r
-            >* = NULL\r
-        );\r
-        template<class U>\r
-        static type_traits::yes_type check_sig2(\r
-            U*, \r
-            test<\r
-            void *(*)(std::size_t, const std::nothrow_t&),\r
-                &U::operator new[]\r
-            >* = NULL\r
-        );\r
-        template<class U>\r
-        static type_traits::yes_type check_sig2(\r
-            U*, \r
-            test<\r
-            void *(*)(std::size_t, void*),\r
-                &U::operator new[]\r
-            >* = NULL\r
-        );\r
-        template<class U>\r
-        static type_traits::no_type check_sig2(...);\r
-\r
-        // GCC2 won't even parse this template if we embed the computation\r
-        // of s1 in the computation of value.\r
-        #ifdef __GNUC__\r
-            BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(has_new_operator_impl<T>::template check_sig<T>(0)));\r
-            BOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(has_new_operator_impl<T>::template check_sig2<T>(0)));\r
-        #else\r
-            #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)\r
-                #pragma warning(push)\r
-                #pragma warning(disable:6334)\r
-            #endif\r
-\r
-            BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(check_sig<T>(0)));\r
-            BOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(check_sig2<T>(0)));\r
-\r
-            #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)\r
-                #pragma warning(pop)\r
-            #endif\r
-        #endif\r
-        BOOST_STATIC_CONSTANT(bool, value = \r
-           (::boost::type_traits::ice_or<\r
-            (s1 == sizeof(type_traits::yes_type)),\r
-            (s2 == sizeof(type_traits::yes_type))\r
-           >::value)\r
-        );\r
-    };\r
-} // namespace detail\r
-\r
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_new_operator,T,::boost::detail::has_new_operator_impl<T>::value)\r
-\r
-} // namespace boost\r
-\r
-#include <boost/type_traits/detail/bool_trait_undef.hpp>\r
-\r
-#endif // BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED\r
+
+//  (C) Copyright Runar Undheim, Robert Ramey & John Maddock 2008.
+//  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/type_traits for most recent version including documentation.
+
+#ifndef BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED
+#define BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED
+
+#include <new> // std::nothrow_t
+#include <cstddef> // std::size_t
+#include <boost/type_traits/config.hpp>
+#include <boost/type_traits/detail/yes_no_type.hpp>
+#include <boost/type_traits/detail/ice_or.hpp>
+
+// should be the last #include
+#include <boost/type_traits/detail/bool_trait_def.hpp>
+
+namespace boost {
+namespace detail {
+    template <class U, U x> 
+    struct test;
+
+    template <typename T>
+    struct has_new_operator_impl {
+        template<class U>
+        static type_traits::yes_type check_sig(
+            U*, 
+            test<
+            void *(*)(std::size_t),
+                &U::operator new
+            >* = NULL
+        );
+        template<class U>
+        static type_traits::yes_type check_sig(
+            U*, 
+            test<
+            void *(*)(std::size_t, const std::nothrow_t&),
+                &U::operator new
+            >* = NULL
+        );
+        template<class U>
+        static type_traits::yes_type check_sig(
+            U*, 
+            test<
+            void *(*)(std::size_t, void*),
+                &U::operator new
+            >* = NULL
+        );
+        template<class U>
+        static type_traits::no_type check_sig(...);
+
+        template<class U>
+        static type_traits::yes_type check_sig2(
+            U*, 
+            test<
+            void *(*)(std::size_t),
+                &U::operator new[]
+            >* = NULL
+        );
+        template<class U>
+        static type_traits::yes_type check_sig2(
+            U*, 
+            test<
+            void *(*)(std::size_t, const std::nothrow_t&),
+                &U::operator new[]
+            >* = NULL
+        );
+        template<class U>
+        static type_traits::yes_type check_sig2(
+            U*, 
+            test<
+            void *(*)(std::size_t, void*),
+                &U::operator new[]
+            >* = NULL
+        );
+        template<class U>
+        static type_traits::no_type check_sig2(...);
+
+        // GCC2 won't even parse this template if we embed the computation
+        // of s1 in the computation of value.
+        #ifdef __GNUC__
+            BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(has_new_operator_impl<T>::template check_sig<T>(0)));
+            BOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(has_new_operator_impl<T>::template check_sig2<T>(0)));
+        #else
+            #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
+                #pragma warning(push)
+                #pragma warning(disable:6334)
+            #endif
+
+            BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(check_sig<T>(0)));
+            BOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(check_sig2<T>(0)));
+
+            #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
+                #pragma warning(pop)
+            #endif
+        #endif
+        BOOST_STATIC_CONSTANT(bool, value = 
+           (::boost::type_traits::ice_or<
+            (s1 == sizeof(type_traits::yes_type)),
+            (s2 == sizeof(type_traits::yes_type))
+           >::value)
+        );
+    };
+} // namespace detail
+
+BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_new_operator,T,::boost::detail::has_new_operator_impl<T>::value)
+
+} // namespace boost
+
+#include <boost/type_traits/detail/bool_trait_undef.hpp>
+
+#endif // BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED
index 006e1c6e296969c96dac6caddd9058b5036596a8..30b34f6ccbde239d27e181c593098fe4c97da08f 100644 (file)
-//  (C) Copyright Daniel Frey and Robert Ramey 2009.\r
-//  Use, modification and distribution are subject to the Boost Software License,\r
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt).\r
-//\r
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.\r
\r
-#ifndef BOOST_TT_IS_VIRTUAL_BASE_OF_HPP_INCLUDED\r
-#define BOOST_TT_IS_VIRTUAL_BASE_OF_HPP_INCLUDED\r
-\r
-#include <boost/type_traits/is_base_of.hpp>\r
-#include <boost/type_traits/is_same.hpp>\r
-#include <boost/mpl/and.hpp>\r
-#include <boost/mpl/not.hpp>\r
-\r
-// should be the last #include\r
-#include <boost/type_traits/detail/bool_trait_def.hpp>\r
-\r
-namespace boost {\r
-namespace detail {\r
-\r
-\r
-#ifdef BOOST_MSVC\r
-#pragma warning( push )\r
-#pragma warning( disable : 4584 )\r
-#elif defined __GNUC__\r
-#pragma GCC system_header\r
-#endif\r
-\r
-template<typename Base, typename Derived, typename tag>\r
-struct is_virtual_base_of_impl\r
-{\r
-    BOOST_STATIC_CONSTANT(bool, value = false);\r
-};\r
-\r
-template<typename Base, typename Derived>\r
-struct is_virtual_base_of_impl<Base, Derived, mpl::true_>\r
-{\r
-#ifdef __BORLANDC__\r
-    struct X : public virtual Derived, public virtual Base \r
-    {\r
-       X();\r
-       X(const X&);\r
-       X& operator=(const X&);\r
-       ~X()throw();\r
-    };\r
-    struct Y : public virtual Derived \r
-    {\r
-       Y();\r
-       Y(const Y&);\r
-       Y& operator=(const Y&);\r
-       ~Y()throw();\r
-    };\r
-#else\r
-    struct X : Derived, virtual Base \r
-    {\r
-       X();\r
-       X(const X&);\r
-       X& operator=(const X&);\r
-       ~X()throw();\r
-    };\r
-    struct Y : Derived \r
-    {\r
-       Y();\r
-       Y(const Y&);\r
-       Y& operator=(const Y&);\r
-       ~Y()throw();\r
-    };\r
-#endif\r
-    BOOST_STATIC_CONSTANT(bool, value = (sizeof(X)==sizeof(Y)));\r
-};\r
-\r
-template<typename Base, typename Derived>\r
-struct is_virtual_base_of_impl2\r
-{\r
-   typedef typename mpl::and_<is_base_of<Base, Derived>, mpl::not_<is_same<Base, Derived> > >::type tag_type;\r
-   typedef is_virtual_base_of_impl<Base, Derived, tag_type> imp;\r
-   BOOST_STATIC_CONSTANT(bool, value = imp::value);\r
-};\r
-\r
-#ifdef BOOST_MSVC\r
-#pragma warning( pop )\r
-#endif\r
-\r
-} // namespace detail\r
-\r
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(\r
-      is_virtual_base_of\r
-       , Base\r
-       , Derived\r
-       , (::boost::detail::is_virtual_base_of_impl2<Base,Derived>::value) \r
-)\r
-\r
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION\r
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base&,Derived,false)\r
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base,Derived&,false)\r
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base&,Derived&,false)\r
-#endif\r
-\r
-} // namespace boost\r
-\r
-#include <boost/type_traits/detail/bool_trait_undef.hpp>\r
-\r
-#endif\r
+//  (C) Copyright Daniel Frey and Robert Ramey 2009.
+//  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/type_traits for most recent version including documentation.
+#ifndef BOOST_TT_IS_VIRTUAL_BASE_OF_HPP_INCLUDED
+#define BOOST_TT_IS_VIRTUAL_BASE_OF_HPP_INCLUDED
+
+#include <boost/type_traits/is_base_of.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/not.hpp>
+
+// should be the last #include
+#include <boost/type_traits/detail/bool_trait_def.hpp>
+
+namespace boost {
+namespace detail {
+
+
+#ifdef BOOST_MSVC
+#pragma warning( push )
+#pragma warning( disable : 4584 )
+#elif defined __GNUC__
+#pragma GCC system_header
+#endif
+
+template<typename Base, typename Derived, typename tag>
+struct is_virtual_base_of_impl
+{
+    BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+template<typename Base, typename Derived>
+struct is_virtual_base_of_impl<Base, Derived, mpl::true_>
+{
+#ifdef __BORLANDC__
+    struct X : public virtual Derived, public virtual Base 
+    {
+       X();
+       X(const X&);
+       X& operator=(const X&);
+       ~X()throw();
+    };
+    struct Y : public virtual Derived 
+    {
+       Y();
+       Y(const Y&);
+       Y& operator=(const Y&);
+       ~Y()throw();
+    };
+#else
+    struct X : Derived, virtual Base 
+    {
+       X();
+       X(const X&);
+       X& operator=(const X&);
+       ~X()throw();
+    };
+    struct Y : Derived 
+    {
+       Y();
+       Y(const Y&);
+       Y& operator=(const Y&);
+       ~Y()throw();
+    };
+#endif
+    BOOST_STATIC_CONSTANT(bool, value = (sizeof(X)==sizeof(Y)));
+};
+
+template<typename Base, typename Derived>
+struct is_virtual_base_of_impl2
+{
+   typedef typename mpl::and_<is_base_of<Base, Derived>, mpl::not_<is_same<Base, Derived> > >::type tag_type;
+   typedef is_virtual_base_of_impl<Base, Derived, tag_type> imp;
+   BOOST_STATIC_CONSTANT(bool, value = imp::value);
+};
+
+#ifdef BOOST_MSVC
+#pragma warning( pop )
+#endif
+
+} // namespace detail
+
+BOOST_TT_AUX_BOOL_TRAIT_DEF2(
+      is_virtual_base_of
+       , Base
+       , Derived
+       , (::boost::detail::is_virtual_base_of_impl2<Base,Derived>::value) 
+)
+
+#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base&,Derived,false)
+BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base,Derived&,false)
+BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base&,Derived&,false)
+#endif
+
+} // namespace boost
+
+#include <boost/type_traits/detail/bool_trait_undef.hpp>
+
+#endif
index b05b6b959a00fae6f6e0581e167c898bcd330ad0..8cef1468e5b56ae99d5d1d14bded5ac957105263 100644 (file)
-/*=============================================================================\r
-    Copyright (c) 2005 Matthew Calabrese\r
-\r
-    Use, modification and distribution is subject to the Boost Software\r
-    License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
-    http://www.boost.org/LICENSE_1_0.txt)\r
-==============================================================================*/\r
-\r
-#ifndef BOOST_UTILITY_BINARY_HPP\r
-#define BOOST_UTILITY_BINARY_HPP\r
-\r
-/*=============================================================================\r
-\r
-    Binary Literal Utility\r
-    ______________________\r
-\r
-\r
-    The following code works by converting the input bit pattern into a\r
-    Boost.Preprocessor sequence, then converting groupings of 3 bits each into\r
-    the corresponding octal digit, and finally concatenating all of the digits\r
-    together along with a leading zero. This yields a standard octal literal\r
-    with the desired value as specified in bits.\r
-\r
-==============================================================================*/\r
-\r
-#include <boost/preprocessor/control/deduce_d.hpp>\r
-#include <boost/preprocessor/facilities/identity.hpp>\r
-#include <boost/preprocessor/cat.hpp>\r
-#include <boost/preprocessor/seq/cat.hpp>\r
-#include <boost/preprocessor/seq/transform.hpp>\r
-#include <boost/preprocessor/arithmetic/mod.hpp>\r
-#include <boost/preprocessor/seq/size.hpp>\r
-#include <boost/preprocessor/facilities/empty.hpp>\r
-#include <boost/preprocessor/control/while.hpp>\r
-\r
-#define BOOST_BINARY( bit_groupings )                                          \\r
-  BOOST_BINARY_LITERAL_D( BOOST_PP_DEDUCE_D(), bit_groupings ) \r
-\r
-#define BOOST_BINARY_U( bit_groupings )                                        \\r
-  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, U ) \r
-\r
-#define BOOST_BINARY_L( bit_groupings )                                        \\r
-  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, L ) \r
-\r
-#define BOOST_BINARY_UL( bit_groupings )                                       \\r
-  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, UL ) \r
-\r
-#define BOOST_BINARY_LU( bit_groupings )                                       \\r
-  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LU ) \r
-\r
-#define BOOST_BINARY_LL( bit_groupings )                                       \\r
-  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LL ) \r
-\r
-#define BOOST_BINARY_ULL( bit_groupings )                                      \\r
-  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, ULL ) \r
-\r
-#define BOOST_BINARY_LLU( bit_groupings )                                      \\r
-  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LLU ) \r
-\r
-#define BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, suffix )                 \\r
-  BOOST_SUFFIXED_BINARY_LITERAL_D( BOOST_PP_DEDUCE_D(), bit_groupings, suffix ) \r
-\r
-#define BOOST_SUFFIXED_BINARY_LITERAL_D( d, bit_groupings, suffix )            \\r
-  BOOST_PP_CAT( BOOST_BINARY_LITERAL_D( d, bit_groupings ), suffix ) \r
-\r
-#define BOOST_BINARY_LITERAL_D( d, bit_groupings )                             \\r
-  BOOST_PP_SEQ_CAT                                                             \\r
-  ( (0) BOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings )  \\r
-  ) \r
-\r
-#define BOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings )  \\r
-  BOOST_PP_SEQ_TRANSFORM                                                       \\r
-  ( BOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION                                     \\r
-  , BOOST_PP_NIL                                                               \\r
-  , BOOST_PP_IDENTITY( BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_TRIPLE_SEQUENCE )()\\r
-    ( BOOST_DETAIL_COMPLETE_TRIPLE_SEQUENCE                                    \\r
-      (                                                                        \\r
-        d                                                                      \\r
-      , BOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings )    \\r
-      )                                                                        \\r
-    )                                                                          \\r
-  ) \r
-\r
-#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_TRIPLE_SEQUENCE( bit_sequence )   \\r
-  BOOST_PP_CAT                                                                 \\r
-  ( BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1 bit_sequence      \\r
-  , END_BIT                                                                    \\r
-  ) \r
-\r
-#define BOOST_DETAIL_BITS_PER_OCTIT 3\r
-\r
-#define BOOST_DETAIL_COMPLETE_TRIPLE_SEQUENCE( d, incomplete_nibble_sequence ) \\r
-  BOOST_PP_CAT                                                                 \\r
-  ( BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_                            \\r
-  , BOOST_PP_MOD_D( d                                                          \\r
-                  , BOOST_PP_SEQ_SIZE( incomplete_nibble_sequence )            \\r
-                  , BOOST_DETAIL_BITS_PER_OCTIT                                \\r
-                  )                                                            \\r
-  )                                                                            \\r
-  incomplete_nibble_sequence \r
-\r
-#define BOOST_DETAIL_FIXED_COMPL( bit )                                        \\r
-  BOOST_PP_CAT( BOOST_DETAIL_FIXED_COMPL_, bit )\r
-\r
-#define BOOST_DETAIL_FIXED_COMPL_0 1 \r
-\r
-#define BOOST_DETAIL_FIXED_COMPL_1 0 \r
-\r
-#define BOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings )    \\r
-  BOOST_PP_EMPTY                                                               \\r
-  BOOST_PP_CAT( BOOST_PP_WHILE_, d )                                           \\r
-  ( BOOST_DETAIL_BINARY_LITERAL_PREDICATE                                      \\r
-  , BOOST_DETAIL_BINARY_LITERAL_OPERATION                                      \\r
-  , bit_groupings ()                                                           \\r
-  ) \r
-\r
-#define BOOST_DETAIL_BINARY_LITERAL_PREDICATE( d, state )                      \\r
-  BOOST_DETAIL_FIXED_COMPL( BOOST_DETAIL_IS_NULLARY_ARGS( state ) ) \r
-\r
-#define BOOST_DETAIL_BINARY_LITERAL_OPERATION( d, state )                      \\r
-  BOOST_DETAIL_SPLIT_AND_SWAP                                                  \\r
-  ( BOOST_PP_CAT( BOOST_DETAIL_BINARY_LITERAL_ELEMENT_, state ) ) \r
-\r
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION( s, dummy_param, tuple )        \\r
-  BOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL tuple \r
-\r
-#define BOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL( bit2, bit1, bit0 )               \\r
-  BOOST_DETAIL_TRIPLE_TO_OCTAL_ ## bit2 ## bit1 ## bit0 \r
-\r
-#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_1 (0)(0)\r
-#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_2 (0)\r
-#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_0  \r
-\r
-#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1END_BIT  \r
-\r
-#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1( bit )        \\r
-  ( ( bit, BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2 \r
-\r
-#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2( bit )        \\r
-  bit, BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3 \r
-\r
-#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3( bit )        \\r
-  bit ) ) BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1 \r
-\r
-#define BOOST_DETAIL_SPLIT_AND_SWAP( params )                                  \\r
-  BOOST_PP_IDENTITY( BOOST_DETAIL_SPLIT_AND_SWAP_PARAMS )()( params )\r
-\r
-#define BOOST_DETAIL_SPLIT_AND_SWAP_PARAMS( first_param, second_param )        \\r
-  second_param first_param \r
-\r
-#define BOOST_DETAIL_LEFT_OF_COMMA( params )                                   \\r
-  BOOST_PP_IDENTITY( BOOST_DETAIL_FIRST_MACRO_PARAM )()( params ) \r
-\r
-#define BOOST_DETAIL_FIRST_MACRO_PARAM( first_param, second_param )            \\r
-  first_param \r
-\r
-/* Begin derived concepts from Chaos by Paul Mensonides */\r
-\r
-#define BOOST_DETAIL_IS_NULLARY_ARGS( param )                                  \\r
-  BOOST_DETAIL_LEFT_OF_COMMA                                                   \\r
-  ( BOOST_PP_CAT( BOOST_DETAIL_IS_NULLARY_ARGS_R_                              \\r
-                , BOOST_DETAIL_IS_NULLARY_ARGS_C param                         \\r
-                )                                                              \\r
-  ) \r
-\r
-#define BOOST_DETAIL_IS_NULLARY_ARGS_C()                                       \\r
-  1 \r
-\r
-#define BOOST_DETAIL_IS_NULLARY_ARGS_R_1                                       \\r
-  1, BOOST_PP_NIL \r
-\r
-#define BOOST_DETAIL_IS_NULLARY_ARGS_R_BOOST_DETAIL_IS_NULLARY_ARGS_C          \\r
-  0, BOOST_PP_NIL \r
-\r
-/* End derived concepts from Chaos by Paul Mensonides */\r
-\r
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_000 0 \r
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_001 1 \r
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_010 2 \r
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_011 3 \r
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_100 4 \r
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_101 5 \r
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_110 6 \r
-#define BOOST_DETAIL_TRIPLE_TO_OCTAL_111 7 \r
-\r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0 (0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1 (1), \r
-\r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00 (0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01 (0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10 (1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11 (1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00 (0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01 (0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10 (1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11 (1)(1), \r
-\r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000 (0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001 (0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010 (0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011 (0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100 (1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101 (1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110 (1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111 (1)(1)(1), \r
-\r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000 (0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001 (0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010 (0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011 (0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100 (0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101 (0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110 (0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111 (0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000 (1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001 (1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010 (1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011 (1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100 (1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101 (1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110 (1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111 (1)(1)(1)(1), \r
-\r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000 (0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001 (0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010 (0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011 (0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100 (0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101 (0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110 (0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111 (0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000 (0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001 (0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010 (0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011 (0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100 (0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101 (0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110 (0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111 (0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000 (1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001 (1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010 (1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011 (1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100 (1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101 (1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110 (1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111 (1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000 (1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001 (1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010 (1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011 (1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100 (1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101 (1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110 (1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111 (1)(1)(1)(1)(1), \r
-\r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000000 (0)(0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000001 (0)(0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000010 (0)(0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000011 (0)(0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000100 (0)(0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000101 (0)(0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000110 (0)(0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000111 (0)(0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001000 (0)(0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001001 (0)(0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001010 (0)(0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001011 (0)(0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001100 (0)(0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001101 (0)(0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001110 (0)(0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001111 (0)(0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010000 (0)(1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010001 (0)(1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010010 (0)(1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010011 (0)(1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010100 (0)(1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010101 (0)(1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010110 (0)(1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010111 (0)(1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011000 (0)(1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011001 (0)(1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011010 (0)(1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011011 (0)(1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011100 (0)(1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011101 (0)(1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011110 (0)(1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011111 (0)(1)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100000 (1)(0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100001 (1)(0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100010 (1)(0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100011 (1)(0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100100 (1)(0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100101 (1)(0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100110 (1)(0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100111 (1)(0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101000 (1)(0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101001 (1)(0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101010 (1)(0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101011 (1)(0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101100 (1)(0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101101 (1)(0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101110 (1)(0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101111 (1)(0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110000 (1)(1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110001 (1)(1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110010 (1)(1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110011 (1)(1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110100 (1)(1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110101 (1)(1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110110 (1)(1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110111 (1)(1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111000 (1)(1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111001 (1)(1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111010 (1)(1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111011 (1)(1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111100 (1)(1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111101 (1)(1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111110 (1)(1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111111 (1)(1)(1)(1)(1)(1), \r
-\r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000000 (0)(0)(0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000001 (0)(0)(0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000010 (0)(0)(0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000011 (0)(0)(0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000100 (0)(0)(0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000101 (0)(0)(0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000110 (0)(0)(0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000111 (0)(0)(0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001000 (0)(0)(0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001001 (0)(0)(0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001010 (0)(0)(0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001011 (0)(0)(0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001100 (0)(0)(0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001101 (0)(0)(0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001110 (0)(0)(0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001111 (0)(0)(0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010000 (0)(0)(1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010001 (0)(0)(1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010010 (0)(0)(1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010011 (0)(0)(1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010100 (0)(0)(1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010101 (0)(0)(1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010110 (0)(0)(1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010111 (0)(0)(1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011000 (0)(0)(1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011001 (0)(0)(1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011010 (0)(0)(1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011011 (0)(0)(1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011100 (0)(0)(1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011101 (0)(0)(1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011110 (0)(0)(1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011111 (0)(0)(1)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100000 (0)(1)(0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100001 (0)(1)(0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100010 (0)(1)(0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100011 (0)(1)(0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100100 (0)(1)(0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100101 (0)(1)(0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100110 (0)(1)(0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100111 (0)(1)(0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101000 (0)(1)(0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101001 (0)(1)(0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101010 (0)(1)(0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101011 (0)(1)(0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101100 (0)(1)(0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101101 (0)(1)(0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101110 (0)(1)(0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101111 (0)(1)(0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110000 (0)(1)(1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110001 (0)(1)(1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110010 (0)(1)(1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110011 (0)(1)(1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110100 (0)(1)(1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110101 (0)(1)(1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110110 (0)(1)(1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110111 (0)(1)(1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111000 (0)(1)(1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111001 (0)(1)(1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111010 (0)(1)(1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111011 (0)(1)(1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111100 (0)(1)(1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111101 (0)(1)(1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111110 (0)(1)(1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111111 (0)(1)(1)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000000 (1)(0)(0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000001 (1)(0)(0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000010 (1)(0)(0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000011 (1)(0)(0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000100 (1)(0)(0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000101 (1)(0)(0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000110 (1)(0)(0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000111 (1)(0)(0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001000 (1)(0)(0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001001 (1)(0)(0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001010 (1)(0)(0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001011 (1)(0)(0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001100 (1)(0)(0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001101 (1)(0)(0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001110 (1)(0)(0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001111 (1)(0)(0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010000 (1)(0)(1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010001 (1)(0)(1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010010 (1)(0)(1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010011 (1)(0)(1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010100 (1)(0)(1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010101 (1)(0)(1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010110 (1)(0)(1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010111 (1)(0)(1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011000 (1)(0)(1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011001 (1)(0)(1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011010 (1)(0)(1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011011 (1)(0)(1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011100 (1)(0)(1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011101 (1)(0)(1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011110 (1)(0)(1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011111 (1)(0)(1)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100000 (1)(1)(0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100001 (1)(1)(0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100010 (1)(1)(0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100011 (1)(1)(0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100100 (1)(1)(0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100101 (1)(1)(0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100110 (1)(1)(0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100111 (1)(1)(0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101000 (1)(1)(0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101001 (1)(1)(0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101010 (1)(1)(0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101011 (1)(1)(0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101100 (1)(1)(0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101101 (1)(1)(0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101110 (1)(1)(0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101111 (1)(1)(0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110000 (1)(1)(1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110001 (1)(1)(1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110010 (1)(1)(1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110011 (1)(1)(1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110100 (1)(1)(1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110101 (1)(1)(1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110110 (1)(1)(1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110111 (1)(1)(1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111000 (1)(1)(1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111001 (1)(1)(1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111010 (1)(1)(1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111011 (1)(1)(1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111100 (1)(1)(1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111101 (1)(1)(1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111110 (1)(1)(1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111111 (1)(1)(1)(1)(1)(1)(1), \r
-\r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000000 (0)(0)(0)(0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000001 (0)(0)(0)(0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000010 (0)(0)(0)(0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000011 (0)(0)(0)(0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000100 (0)(0)(0)(0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000101 (0)(0)(0)(0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000110 (0)(0)(0)(0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000111 (0)(0)(0)(0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001000 (0)(0)(0)(0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001001 (0)(0)(0)(0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001010 (0)(0)(0)(0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001011 (0)(0)(0)(0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001100 (0)(0)(0)(0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001101 (0)(0)(0)(0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001110 (0)(0)(0)(0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001111 (0)(0)(0)(0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010000 (0)(0)(0)(1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010001 (0)(0)(0)(1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010010 (0)(0)(0)(1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010011 (0)(0)(0)(1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010100 (0)(0)(0)(1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010101 (0)(0)(0)(1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010110 (0)(0)(0)(1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010111 (0)(0)(0)(1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011000 (0)(0)(0)(1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011001 (0)(0)(0)(1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011010 (0)(0)(0)(1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011011 (0)(0)(0)(1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011100 (0)(0)(0)(1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011101 (0)(0)(0)(1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011110 (0)(0)(0)(1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011111 (0)(0)(0)(1)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100000 (0)(0)(1)(0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100001 (0)(0)(1)(0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100010 (0)(0)(1)(0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100011 (0)(0)(1)(0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100100 (0)(0)(1)(0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100101 (0)(0)(1)(0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100110 (0)(0)(1)(0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100111 (0)(0)(1)(0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101000 (0)(0)(1)(0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101001 (0)(0)(1)(0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101010 (0)(0)(1)(0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101011 (0)(0)(1)(0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101100 (0)(0)(1)(0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101101 (0)(0)(1)(0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101110 (0)(0)(1)(0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101111 (0)(0)(1)(0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110000 (0)(0)(1)(1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110001 (0)(0)(1)(1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110010 (0)(0)(1)(1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110011 (0)(0)(1)(1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110100 (0)(0)(1)(1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110101 (0)(0)(1)(1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110110 (0)(0)(1)(1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110111 (0)(0)(1)(1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111000 (0)(0)(1)(1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111001 (0)(0)(1)(1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111010 (0)(0)(1)(1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111011 (0)(0)(1)(1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111100 (0)(0)(1)(1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111101 (0)(0)(1)(1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111110 (0)(0)(1)(1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111111 (0)(0)(1)(1)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000000 (0)(1)(0)(0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000001 (0)(1)(0)(0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000010 (0)(1)(0)(0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000011 (0)(1)(0)(0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000100 (0)(1)(0)(0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000101 (0)(1)(0)(0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000110 (0)(1)(0)(0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000111 (0)(1)(0)(0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001000 (0)(1)(0)(0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001001 (0)(1)(0)(0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001010 (0)(1)(0)(0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001011 (0)(1)(0)(0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001100 (0)(1)(0)(0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001101 (0)(1)(0)(0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001110 (0)(1)(0)(0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001111 (0)(1)(0)(0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010000 (0)(1)(0)(1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010001 (0)(1)(0)(1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010010 (0)(1)(0)(1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010011 (0)(1)(0)(1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010100 (0)(1)(0)(1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010101 (0)(1)(0)(1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010110 (0)(1)(0)(1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010111 (0)(1)(0)(1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011000 (0)(1)(0)(1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011001 (0)(1)(0)(1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011010 (0)(1)(0)(1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011011 (0)(1)(0)(1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011100 (0)(1)(0)(1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011101 (0)(1)(0)(1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011110 (0)(1)(0)(1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011111 (0)(1)(0)(1)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100000 (0)(1)(1)(0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100001 (0)(1)(1)(0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100010 (0)(1)(1)(0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100011 (0)(1)(1)(0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100100 (0)(1)(1)(0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100101 (0)(1)(1)(0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100110 (0)(1)(1)(0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100111 (0)(1)(1)(0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101000 (0)(1)(1)(0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101001 (0)(1)(1)(0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101010 (0)(1)(1)(0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101011 (0)(1)(1)(0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101100 (0)(1)(1)(0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101101 (0)(1)(1)(0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101110 (0)(1)(1)(0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101111 (0)(1)(1)(0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110000 (0)(1)(1)(1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110001 (0)(1)(1)(1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110010 (0)(1)(1)(1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110011 (0)(1)(1)(1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110100 (0)(1)(1)(1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110101 (0)(1)(1)(1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110110 (0)(1)(1)(1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110111 (0)(1)(1)(1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111000 (0)(1)(1)(1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111001 (0)(1)(1)(1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111010 (0)(1)(1)(1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111011 (0)(1)(1)(1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111100 (0)(1)(1)(1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111101 (0)(1)(1)(1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111110 (0)(1)(1)(1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111111 (0)(1)(1)(1)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000000 (1)(0)(0)(0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000001 (1)(0)(0)(0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000010 (1)(0)(0)(0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000011 (1)(0)(0)(0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000100 (1)(0)(0)(0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000101 (1)(0)(0)(0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000110 (1)(0)(0)(0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000111 (1)(0)(0)(0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001000 (1)(0)(0)(0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001001 (1)(0)(0)(0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001010 (1)(0)(0)(0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001011 (1)(0)(0)(0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001100 (1)(0)(0)(0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001101 (1)(0)(0)(0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001110 (1)(0)(0)(0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001111 (1)(0)(0)(0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010000 (1)(0)(0)(1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010001 (1)(0)(0)(1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010010 (1)(0)(0)(1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010011 (1)(0)(0)(1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010100 (1)(0)(0)(1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010101 (1)(0)(0)(1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010110 (1)(0)(0)(1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010111 (1)(0)(0)(1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011000 (1)(0)(0)(1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011001 (1)(0)(0)(1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011010 (1)(0)(0)(1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011011 (1)(0)(0)(1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011100 (1)(0)(0)(1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011101 (1)(0)(0)(1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011110 (1)(0)(0)(1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011111 (1)(0)(0)(1)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100000 (1)(0)(1)(0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100001 (1)(0)(1)(0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100010 (1)(0)(1)(0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100011 (1)(0)(1)(0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100100 (1)(0)(1)(0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100101 (1)(0)(1)(0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100110 (1)(0)(1)(0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100111 (1)(0)(1)(0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101000 (1)(0)(1)(0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101001 (1)(0)(1)(0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101010 (1)(0)(1)(0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101011 (1)(0)(1)(0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101100 (1)(0)(1)(0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101101 (1)(0)(1)(0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101110 (1)(0)(1)(0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101111 (1)(0)(1)(0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110000 (1)(0)(1)(1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110001 (1)(0)(1)(1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110010 (1)(0)(1)(1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110011 (1)(0)(1)(1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110100 (1)(0)(1)(1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110101 (1)(0)(1)(1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110110 (1)(0)(1)(1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110111 (1)(0)(1)(1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111000 (1)(0)(1)(1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111001 (1)(0)(1)(1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111010 (1)(0)(1)(1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111011 (1)(0)(1)(1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111100 (1)(0)(1)(1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111101 (1)(0)(1)(1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111110 (1)(0)(1)(1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111111 (1)(0)(1)(1)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000000 (1)(1)(0)(0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000001 (1)(1)(0)(0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000010 (1)(1)(0)(0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000011 (1)(1)(0)(0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000100 (1)(1)(0)(0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000101 (1)(1)(0)(0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000110 (1)(1)(0)(0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000111 (1)(1)(0)(0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001000 (1)(1)(0)(0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001001 (1)(1)(0)(0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001010 (1)(1)(0)(0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001011 (1)(1)(0)(0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001100 (1)(1)(0)(0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001101 (1)(1)(0)(0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001110 (1)(1)(0)(0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001111 (1)(1)(0)(0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010000 (1)(1)(0)(1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010001 (1)(1)(0)(1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010010 (1)(1)(0)(1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010011 (1)(1)(0)(1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010100 (1)(1)(0)(1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010101 (1)(1)(0)(1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010110 (1)(1)(0)(1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010111 (1)(1)(0)(1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011000 (1)(1)(0)(1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011001 (1)(1)(0)(1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011010 (1)(1)(0)(1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011011 (1)(1)(0)(1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011100 (1)(1)(0)(1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011101 (1)(1)(0)(1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011110 (1)(1)(0)(1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011111 (1)(1)(0)(1)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100000 (1)(1)(1)(0)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100001 (1)(1)(1)(0)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100010 (1)(1)(1)(0)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100011 (1)(1)(1)(0)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100100 (1)(1)(1)(0)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100101 (1)(1)(1)(0)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100110 (1)(1)(1)(0)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100111 (1)(1)(1)(0)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101000 (1)(1)(1)(0)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101001 (1)(1)(1)(0)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101010 (1)(1)(1)(0)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101011 (1)(1)(1)(0)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101100 (1)(1)(1)(0)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101101 (1)(1)(1)(0)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101110 (1)(1)(1)(0)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101111 (1)(1)(1)(0)(1)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110000 (1)(1)(1)(1)(0)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110001 (1)(1)(1)(1)(0)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110010 (1)(1)(1)(1)(0)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110011 (1)(1)(1)(1)(0)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110100 (1)(1)(1)(1)(0)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110101 (1)(1)(1)(1)(0)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110110 (1)(1)(1)(1)(0)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110111 (1)(1)(1)(1)(0)(1)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111000 (1)(1)(1)(1)(1)(0)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111001 (1)(1)(1)(1)(1)(0)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111010 (1)(1)(1)(1)(1)(0)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111011 (1)(1)(1)(1)(1)(0)(1)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111100 (1)(1)(1)(1)(1)(1)(0)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111101 (1)(1)(1)(1)(1)(1)(0)(1), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111110 (1)(1)(1)(1)(1)(1)(1)(0), \r
-#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111111 (1)(1)(1)(1)(1)(1)(1)(1), \r
-\r
-#endif\r
+/*=============================================================================
+    Copyright (c) 2005 Matthew Calabrese
+
+    Use, modification and distribution is subject to the Boost Software
+    License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+    http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_UTILITY_BINARY_HPP
+#define BOOST_UTILITY_BINARY_HPP
+
+/*=============================================================================
+
+    Binary Literal Utility
+    ______________________
+
+
+    The following code works by converting the input bit pattern into a
+    Boost.Preprocessor sequence, then converting groupings of 3 bits each into
+    the corresponding octal digit, and finally concatenating all of the digits
+    together along with a leading zero. This yields a standard octal literal
+    with the desired value as specified in bits.
+
+==============================================================================*/
+
+#include <boost/preprocessor/control/deduce_d.hpp>
+#include <boost/preprocessor/facilities/identity.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/seq/cat.hpp>
+#include <boost/preprocessor/seq/transform.hpp>
+#include <boost/preprocessor/arithmetic/mod.hpp>
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/facilities/empty.hpp>
+#include <boost/preprocessor/control/while.hpp>
+
+#define BOOST_BINARY( bit_groupings )                                          \
+  BOOST_BINARY_LITERAL_D( BOOST_PP_DEDUCE_D(), bit_groupings ) 
+
+#define BOOST_BINARY_U( bit_groupings )                                        \
+  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, U ) 
+
+#define BOOST_BINARY_L( bit_groupings )                                        \
+  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, L ) 
+
+#define BOOST_BINARY_UL( bit_groupings )                                       \
+  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, UL ) 
+
+#define BOOST_BINARY_LU( bit_groupings )                                       \
+  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LU ) 
+
+#define BOOST_BINARY_LL( bit_groupings )                                       \
+  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LL ) 
+
+#define BOOST_BINARY_ULL( bit_groupings )                                      \
+  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, ULL ) 
+
+#define BOOST_BINARY_LLU( bit_groupings )                                      \
+  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LLU ) 
+
+#define BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, suffix )                 \
+  BOOST_SUFFIXED_BINARY_LITERAL_D( BOOST_PP_DEDUCE_D(), bit_groupings, suffix ) 
+
+#define BOOST_SUFFIXED_BINARY_LITERAL_D( d, bit_groupings, suffix )            \
+  BOOST_PP_CAT( BOOST_BINARY_LITERAL_D( d, bit_groupings ), suffix ) 
+
+#define BOOST_BINARY_LITERAL_D( d, bit_groupings )                             \
+  BOOST_PP_SEQ_CAT                                                             \
+  ( (0) BOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings )  \
+  ) 
+
+#define BOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings )  \
+  BOOST_PP_SEQ_TRANSFORM                                                       \
+  ( BOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION                                     \
+  , BOOST_PP_NIL                                                               \
+  , BOOST_PP_IDENTITY( BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_TRIPLE_SEQUENCE )()\
+    ( BOOST_DETAIL_COMPLETE_TRIPLE_SEQUENCE                                    \
+      (                                                                        \
+        d                                                                      \
+      , BOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings )    \
+      )                                                                        \
+    )                                                                          \
+  ) 
+
+#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_TRIPLE_SEQUENCE( bit_sequence )   \
+  BOOST_PP_CAT                                                                 \
+  ( BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1 bit_sequence      \
+  , END_BIT                                                                    \
+  ) 
+
+#define BOOST_DETAIL_BITS_PER_OCTIT 3
+
+#define BOOST_DETAIL_COMPLETE_TRIPLE_SEQUENCE( d, incomplete_nibble_sequence ) \
+  BOOST_PP_CAT                                                                 \
+  ( BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_                            \
+  , BOOST_PP_MOD_D( d                                                          \
+                  , BOOST_PP_SEQ_SIZE( incomplete_nibble_sequence )            \
+                  , BOOST_DETAIL_BITS_PER_OCTIT                                \
+                  )                                                            \
+  )                                                                            \
+  incomplete_nibble_sequence 
+
+#define BOOST_DETAIL_FIXED_COMPL( bit )                                        \
+  BOOST_PP_CAT( BOOST_DETAIL_FIXED_COMPL_, bit )
+
+#define BOOST_DETAIL_FIXED_COMPL_0 1 
+
+#define BOOST_DETAIL_FIXED_COMPL_1 0 
+
+#define BOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings )    \
+  BOOST_PP_EMPTY                                                               \
+  BOOST_PP_CAT( BOOST_PP_WHILE_, d )                                           \
+  ( BOOST_DETAIL_BINARY_LITERAL_PREDICATE                                      \
+  , BOOST_DETAIL_BINARY_LITERAL_OPERATION                                      \
+  , bit_groupings ()                                                           \
+  ) 
+
+#define BOOST_DETAIL_BINARY_LITERAL_PREDICATE( d, state )                      \
+  BOOST_DETAIL_FIXED_COMPL( BOOST_DETAIL_IS_NULLARY_ARGS( state ) ) 
+
+#define BOOST_DETAIL_BINARY_LITERAL_OPERATION( d, state )                      \
+  BOOST_DETAIL_SPLIT_AND_SWAP                                                  \
+  ( BOOST_PP_CAT( BOOST_DETAIL_BINARY_LITERAL_ELEMENT_, state ) ) 
+
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION( s, dummy_param, tuple )        \
+  BOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL tuple 
+
+#define BOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL( bit2, bit1, bit0 )               \
+  BOOST_DETAIL_TRIPLE_TO_OCTAL_ ## bit2 ## bit1 ## bit0 
+
+#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_1 (0)(0)
+#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_2 (0)
+#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_0  
+
+#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1END_BIT  
+
+#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1( bit )        \
+  ( ( bit, BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2 
+
+#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2( bit )        \
+  bit, BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3 
+
+#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3( bit )        \
+  bit ) ) BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1 
+
+#define BOOST_DETAIL_SPLIT_AND_SWAP( params )                                  \
+  BOOST_PP_IDENTITY( BOOST_DETAIL_SPLIT_AND_SWAP_PARAMS )()( params )
+
+#define BOOST_DETAIL_SPLIT_AND_SWAP_PARAMS( first_param, second_param )        \
+  second_param first_param 
+
+#define BOOST_DETAIL_LEFT_OF_COMMA( params )                                   \
+  BOOST_PP_IDENTITY( BOOST_DETAIL_FIRST_MACRO_PARAM )()( params ) 
+
+#define BOOST_DETAIL_FIRST_MACRO_PARAM( first_param, second_param )            \
+  first_param 
+
+/* Begin derived concepts from Chaos by Paul Mensonides */
+
+#define BOOST_DETAIL_IS_NULLARY_ARGS( param )                                  \
+  BOOST_DETAIL_LEFT_OF_COMMA                                                   \
+  ( BOOST_PP_CAT( BOOST_DETAIL_IS_NULLARY_ARGS_R_                              \
+                , BOOST_DETAIL_IS_NULLARY_ARGS_C param                         \
+                )                                                              \
+  ) 
+
+#define BOOST_DETAIL_IS_NULLARY_ARGS_C()                                       \
+  1 
+
+#define BOOST_DETAIL_IS_NULLARY_ARGS_R_1                                       \
+  1, BOOST_PP_NIL 
+
+#define BOOST_DETAIL_IS_NULLARY_ARGS_R_BOOST_DETAIL_IS_NULLARY_ARGS_C          \
+  0, BOOST_PP_NIL 
+
+/* End derived concepts from Chaos by Paul Mensonides */
+
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_000 0 
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_001 1 
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_010 2 
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_011 3 
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_100 4 
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_101 5 
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_110 6 
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_111 7 
+
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0 (0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1 (1), 
+
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00 (0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01 (0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10 (1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11 (1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00 (0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01 (0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10 (1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11 (1)(1), 
+
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000 (0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001 (0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010 (0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011 (0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100 (1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101 (1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110 (1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111 (1)(1)(1), 
+
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000 (0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001 (0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010 (0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011 (0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100 (0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101 (0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110 (0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111 (0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000 (1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001 (1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010 (1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011 (1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100 (1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101 (1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110 (1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111 (1)(1)(1)(1), 
+
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000 (0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001 (0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010 (0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011 (0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100 (0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101 (0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110 (0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111 (0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000 (0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001 (0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010 (0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011 (0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100 (0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101 (0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110 (0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111 (0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000 (1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001 (1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010 (1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011 (1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100 (1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101 (1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110 (1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111 (1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000 (1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001 (1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010 (1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011 (1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100 (1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101 (1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110 (1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111 (1)(1)(1)(1)(1), 
+
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000000 (0)(0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000001 (0)(0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000010 (0)(0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000011 (0)(0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000100 (0)(0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000101 (0)(0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000110 (0)(0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000111 (0)(0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001000 (0)(0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001001 (0)(0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001010 (0)(0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001011 (0)(0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001100 (0)(0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001101 (0)(0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001110 (0)(0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001111 (0)(0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010000 (0)(1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010001 (0)(1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010010 (0)(1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010011 (0)(1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010100 (0)(1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010101 (0)(1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010110 (0)(1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010111 (0)(1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011000 (0)(1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011001 (0)(1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011010 (0)(1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011011 (0)(1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011100 (0)(1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011101 (0)(1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011110 (0)(1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011111 (0)(1)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100000 (1)(0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100001 (1)(0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100010 (1)(0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100011 (1)(0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100100 (1)(0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100101 (1)(0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100110 (1)(0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100111 (1)(0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101000 (1)(0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101001 (1)(0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101010 (1)(0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101011 (1)(0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101100 (1)(0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101101 (1)(0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101110 (1)(0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101111 (1)(0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110000 (1)(1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110001 (1)(1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110010 (1)(1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110011 (1)(1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110100 (1)(1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110101 (1)(1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110110 (1)(1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110111 (1)(1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111000 (1)(1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111001 (1)(1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111010 (1)(1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111011 (1)(1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111100 (1)(1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111101 (1)(1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111110 (1)(1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111111 (1)(1)(1)(1)(1)(1), 
+
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000000 (0)(0)(0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000001 (0)(0)(0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000010 (0)(0)(0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000011 (0)(0)(0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000100 (0)(0)(0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000101 (0)(0)(0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000110 (0)(0)(0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000111 (0)(0)(0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001000 (0)(0)(0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001001 (0)(0)(0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001010 (0)(0)(0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001011 (0)(0)(0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001100 (0)(0)(0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001101 (0)(0)(0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001110 (0)(0)(0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001111 (0)(0)(0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010000 (0)(0)(1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010001 (0)(0)(1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010010 (0)(0)(1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010011 (0)(0)(1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010100 (0)(0)(1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010101 (0)(0)(1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010110 (0)(0)(1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010111 (0)(0)(1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011000 (0)(0)(1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011001 (0)(0)(1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011010 (0)(0)(1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011011 (0)(0)(1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011100 (0)(0)(1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011101 (0)(0)(1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011110 (0)(0)(1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011111 (0)(0)(1)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100000 (0)(1)(0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100001 (0)(1)(0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100010 (0)(1)(0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100011 (0)(1)(0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100100 (0)(1)(0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100101 (0)(1)(0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100110 (0)(1)(0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100111 (0)(1)(0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101000 (0)(1)(0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101001 (0)(1)(0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101010 (0)(1)(0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101011 (0)(1)(0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101100 (0)(1)(0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101101 (0)(1)(0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101110 (0)(1)(0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101111 (0)(1)(0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110000 (0)(1)(1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110001 (0)(1)(1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110010 (0)(1)(1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110011 (0)(1)(1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110100 (0)(1)(1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110101 (0)(1)(1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110110 (0)(1)(1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110111 (0)(1)(1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111000 (0)(1)(1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111001 (0)(1)(1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111010 (0)(1)(1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111011 (0)(1)(1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111100 (0)(1)(1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111101 (0)(1)(1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111110 (0)(1)(1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111111 (0)(1)(1)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000000 (1)(0)(0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000001 (1)(0)(0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000010 (1)(0)(0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000011 (1)(0)(0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000100 (1)(0)(0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000101 (1)(0)(0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000110 (1)(0)(0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000111 (1)(0)(0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001000 (1)(0)(0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001001 (1)(0)(0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001010 (1)(0)(0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001011 (1)(0)(0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001100 (1)(0)(0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001101 (1)(0)(0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001110 (1)(0)(0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001111 (1)(0)(0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010000 (1)(0)(1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010001 (1)(0)(1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010010 (1)(0)(1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010011 (1)(0)(1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010100 (1)(0)(1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010101 (1)(0)(1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010110 (1)(0)(1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010111 (1)(0)(1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011000 (1)(0)(1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011001 (1)(0)(1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011010 (1)(0)(1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011011 (1)(0)(1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011100 (1)(0)(1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011101 (1)(0)(1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011110 (1)(0)(1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011111 (1)(0)(1)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100000 (1)(1)(0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100001 (1)(1)(0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100010 (1)(1)(0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100011 (1)(1)(0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100100 (1)(1)(0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100101 (1)(1)(0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100110 (1)(1)(0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100111 (1)(1)(0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101000 (1)(1)(0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101001 (1)(1)(0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101010 (1)(1)(0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101011 (1)(1)(0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101100 (1)(1)(0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101101 (1)(1)(0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101110 (1)(1)(0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101111 (1)(1)(0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110000 (1)(1)(1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110001 (1)(1)(1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110010 (1)(1)(1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110011 (1)(1)(1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110100 (1)(1)(1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110101 (1)(1)(1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110110 (1)(1)(1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110111 (1)(1)(1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111000 (1)(1)(1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111001 (1)(1)(1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111010 (1)(1)(1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111011 (1)(1)(1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111100 (1)(1)(1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111101 (1)(1)(1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111110 (1)(1)(1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111111 (1)(1)(1)(1)(1)(1)(1), 
+
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000000 (0)(0)(0)(0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000001 (0)(0)(0)(0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000010 (0)(0)(0)(0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000011 (0)(0)(0)(0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000100 (0)(0)(0)(0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000101 (0)(0)(0)(0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000110 (0)(0)(0)(0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000111 (0)(0)(0)(0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001000 (0)(0)(0)(0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001001 (0)(0)(0)(0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001010 (0)(0)(0)(0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001011 (0)(0)(0)(0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001100 (0)(0)(0)(0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001101 (0)(0)(0)(0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001110 (0)(0)(0)(0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001111 (0)(0)(0)(0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010000 (0)(0)(0)(1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010001 (0)(0)(0)(1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010010 (0)(0)(0)(1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010011 (0)(0)(0)(1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010100 (0)(0)(0)(1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010101 (0)(0)(0)(1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010110 (0)(0)(0)(1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010111 (0)(0)(0)(1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011000 (0)(0)(0)(1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011001 (0)(0)(0)(1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011010 (0)(0)(0)(1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011011 (0)(0)(0)(1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011100 (0)(0)(0)(1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011101 (0)(0)(0)(1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011110 (0)(0)(0)(1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011111 (0)(0)(0)(1)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100000 (0)(0)(1)(0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100001 (0)(0)(1)(0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100010 (0)(0)(1)(0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100011 (0)(0)(1)(0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100100 (0)(0)(1)(0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100101 (0)(0)(1)(0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100110 (0)(0)(1)(0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100111 (0)(0)(1)(0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101000 (0)(0)(1)(0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101001 (0)(0)(1)(0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101010 (0)(0)(1)(0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101011 (0)(0)(1)(0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101100 (0)(0)(1)(0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101101 (0)(0)(1)(0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101110 (0)(0)(1)(0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101111 (0)(0)(1)(0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110000 (0)(0)(1)(1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110001 (0)(0)(1)(1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110010 (0)(0)(1)(1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110011 (0)(0)(1)(1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110100 (0)(0)(1)(1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110101 (0)(0)(1)(1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110110 (0)(0)(1)(1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110111 (0)(0)(1)(1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111000 (0)(0)(1)(1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111001 (0)(0)(1)(1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111010 (0)(0)(1)(1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111011 (0)(0)(1)(1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111100 (0)(0)(1)(1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111101 (0)(0)(1)(1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111110 (0)(0)(1)(1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111111 (0)(0)(1)(1)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000000 (0)(1)(0)(0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000001 (0)(1)(0)(0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000010 (0)(1)(0)(0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000011 (0)(1)(0)(0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000100 (0)(1)(0)(0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000101 (0)(1)(0)(0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000110 (0)(1)(0)(0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000111 (0)(1)(0)(0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001000 (0)(1)(0)(0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001001 (0)(1)(0)(0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001010 (0)(1)(0)(0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001011 (0)(1)(0)(0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001100 (0)(1)(0)(0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001101 (0)(1)(0)(0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001110 (0)(1)(0)(0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001111 (0)(1)(0)(0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010000 (0)(1)(0)(1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010001 (0)(1)(0)(1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010010 (0)(1)(0)(1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010011 (0)(1)(0)(1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010100 (0)(1)(0)(1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010101 (0)(1)(0)(1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010110 (0)(1)(0)(1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010111 (0)(1)(0)(1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011000 (0)(1)(0)(1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011001 (0)(1)(0)(1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011010 (0)(1)(0)(1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011011 (0)(1)(0)(1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011100 (0)(1)(0)(1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011101 (0)(1)(0)(1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011110 (0)(1)(0)(1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011111 (0)(1)(0)(1)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100000 (0)(1)(1)(0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100001 (0)(1)(1)(0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100010 (0)(1)(1)(0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100011 (0)(1)(1)(0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100100 (0)(1)(1)(0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100101 (0)(1)(1)(0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100110 (0)(1)(1)(0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100111 (0)(1)(1)(0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101000 (0)(1)(1)(0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101001 (0)(1)(1)(0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101010 (0)(1)(1)(0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101011 (0)(1)(1)(0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101100 (0)(1)(1)(0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101101 (0)(1)(1)(0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101110 (0)(1)(1)(0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101111 (0)(1)(1)(0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110000 (0)(1)(1)(1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110001 (0)(1)(1)(1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110010 (0)(1)(1)(1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110011 (0)(1)(1)(1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110100 (0)(1)(1)(1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110101 (0)(1)(1)(1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110110 (0)(1)(1)(1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110111 (0)(1)(1)(1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111000 (0)(1)(1)(1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111001 (0)(1)(1)(1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111010 (0)(1)(1)(1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111011 (0)(1)(1)(1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111100 (0)(1)(1)(1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111101 (0)(1)(1)(1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111110 (0)(1)(1)(1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111111 (0)(1)(1)(1)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000000 (1)(0)(0)(0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000001 (1)(0)(0)(0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000010 (1)(0)(0)(0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000011 (1)(0)(0)(0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000100 (1)(0)(0)(0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000101 (1)(0)(0)(0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000110 (1)(0)(0)(0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000111 (1)(0)(0)(0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001000 (1)(0)(0)(0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001001 (1)(0)(0)(0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001010 (1)(0)(0)(0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001011 (1)(0)(0)(0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001100 (1)(0)(0)(0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001101 (1)(0)(0)(0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001110 (1)(0)(0)(0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001111 (1)(0)(0)(0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010000 (1)(0)(0)(1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010001 (1)(0)(0)(1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010010 (1)(0)(0)(1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010011 (1)(0)(0)(1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010100 (1)(0)(0)(1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010101 (1)(0)(0)(1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010110 (1)(0)(0)(1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010111 (1)(0)(0)(1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011000 (1)(0)(0)(1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011001 (1)(0)(0)(1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011010 (1)(0)(0)(1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011011 (1)(0)(0)(1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011100 (1)(0)(0)(1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011101 (1)(0)(0)(1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011110 (1)(0)(0)(1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011111 (1)(0)(0)(1)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100000 (1)(0)(1)(0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100001 (1)(0)(1)(0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100010 (1)(0)(1)(0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100011 (1)(0)(1)(0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100100 (1)(0)(1)(0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100101 (1)(0)(1)(0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100110 (1)(0)(1)(0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100111 (1)(0)(1)(0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101000 (1)(0)(1)(0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101001 (1)(0)(1)(0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101010 (1)(0)(1)(0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101011 (1)(0)(1)(0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101100 (1)(0)(1)(0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101101 (1)(0)(1)(0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101110 (1)(0)(1)(0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101111 (1)(0)(1)(0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110000 (1)(0)(1)(1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110001 (1)(0)(1)(1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110010 (1)(0)(1)(1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110011 (1)(0)(1)(1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110100 (1)(0)(1)(1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110101 (1)(0)(1)(1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110110 (1)(0)(1)(1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110111 (1)(0)(1)(1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111000 (1)(0)(1)(1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111001 (1)(0)(1)(1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111010 (1)(0)(1)(1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111011 (1)(0)(1)(1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111100 (1)(0)(1)(1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111101 (1)(0)(1)(1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111110 (1)(0)(1)(1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111111 (1)(0)(1)(1)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000000 (1)(1)(0)(0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000001 (1)(1)(0)(0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000010 (1)(1)(0)(0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000011 (1)(1)(0)(0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000100 (1)(1)(0)(0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000101 (1)(1)(0)(0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000110 (1)(1)(0)(0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000111 (1)(1)(0)(0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001000 (1)(1)(0)(0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001001 (1)(1)(0)(0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001010 (1)(1)(0)(0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001011 (1)(1)(0)(0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001100 (1)(1)(0)(0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001101 (1)(1)(0)(0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001110 (1)(1)(0)(0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001111 (1)(1)(0)(0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010000 (1)(1)(0)(1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010001 (1)(1)(0)(1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010010 (1)(1)(0)(1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010011 (1)(1)(0)(1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010100 (1)(1)(0)(1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010101 (1)(1)(0)(1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010110 (1)(1)(0)(1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010111 (1)(1)(0)(1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011000 (1)(1)(0)(1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011001 (1)(1)(0)(1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011010 (1)(1)(0)(1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011011 (1)(1)(0)(1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011100 (1)(1)(0)(1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011101 (1)(1)(0)(1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011110 (1)(1)(0)(1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011111 (1)(1)(0)(1)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100000 (1)(1)(1)(0)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100001 (1)(1)(1)(0)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100010 (1)(1)(1)(0)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100011 (1)(1)(1)(0)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100100 (1)(1)(1)(0)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100101 (1)(1)(1)(0)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100110 (1)(1)(1)(0)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100111 (1)(1)(1)(0)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101000 (1)(1)(1)(0)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101001 (1)(1)(1)(0)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101010 (1)(1)(1)(0)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101011 (1)(1)(1)(0)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101100 (1)(1)(1)(0)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101101 (1)(1)(1)(0)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101110 (1)(1)(1)(0)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101111 (1)(1)(1)(0)(1)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110000 (1)(1)(1)(1)(0)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110001 (1)(1)(1)(1)(0)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110010 (1)(1)(1)(1)(0)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110011 (1)(1)(1)(1)(0)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110100 (1)(1)(1)(1)(0)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110101 (1)(1)(1)(1)(0)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110110 (1)(1)(1)(1)(0)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110111 (1)(1)(1)(1)(0)(1)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111000 (1)(1)(1)(1)(1)(0)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111001 (1)(1)(1)(1)(1)(0)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111010 (1)(1)(1)(1)(1)(0)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111011 (1)(1)(1)(1)(1)(0)(1)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111100 (1)(1)(1)(1)(1)(1)(0)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111101 (1)(1)(1)(1)(1)(1)(0)(1), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111110 (1)(1)(1)(1)(1)(1)(1)(0), 
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111111 (1)(1)(1)(1)(1)(1)(1)(1), 
+
+#endif
index 03a08fb93640ad51633d4bf06344d1460393c818..6ce724781896817dd0797996b1ec3a906a5aa1eb 100644 (file)
@@ -1,36 +1,36 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.\r
-// Copyright (C) 2007, Tobias Schwinger.\r
-//\r
-// Use, modification, and distribution is subject to the Boost Software\r
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// See http://www.boost.org/lib/optional for documentation.\r
-//\r
-// You are welcome to contact the author at:\r
-//  fernando_cacciola@hotmail.com\r
-//\r
-#ifndef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP\r
-#define BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP\r
-\r
-#include <new>\r
-#include <cstddef>\r
-#include <boost/config.hpp>\r
-#include <boost/preprocessor/cat.hpp>\r
-#include <boost/preprocessor/punctuation/paren.hpp>\r
-#include <boost/preprocessor/iteration/iterate.hpp>\r
-#include <boost/preprocessor/repetition/repeat.hpp>\r
-#include <boost/preprocessor/repetition/enum.hpp>\r
-#include <boost/preprocessor/repetition/enum_params.hpp>\r
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>\r
-#include <boost/preprocessor/repetition/enum_trailing_params.hpp>\r
-\r
-#define BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT(z,n,_) BOOST_PP_CAT(m_a,n) BOOST_PP_LPAREN() BOOST_PP_CAT(a,n) BOOST_PP_RPAREN()\r
-#define BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL(z,n,_) BOOST_PP_CAT(A,n) const& BOOST_PP_CAT(m_a,n);\r
-\r
-#define BOOST_MAX_INPLACE_FACTORY_ARITY 10\r
-\r
-#undef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP\r
-\r
-#endif\r
-\r
+// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
+// Copyright (C) 2007, Tobias Schwinger.
+//
+// Use, modification, and distribution is subject to the Boost Software
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/lib/optional for documentation.
+//
+// You are welcome to contact the author at:
+//  fernando_cacciola@hotmail.com
+//
+#ifndef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP
+#define BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP
+
+#include <new>
+#include <cstddef>
+#include <boost/config.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/punctuation/paren.hpp>
+#include <boost/preprocessor/iteration/iterate.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+#include <boost/preprocessor/repetition/enum.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
+
+#define BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT(z,n,_) BOOST_PP_CAT(m_a,n) BOOST_PP_LPAREN() BOOST_PP_CAT(a,n) BOOST_PP_RPAREN()
+#define BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL(z,n,_) BOOST_PP_CAT(A,n) const& BOOST_PP_CAT(m_a,n);
+
+#define BOOST_MAX_INPLACE_FACTORY_ARITY 10
+
+#undef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP
+
+#endif
+
index 9a3cf22d169d8510c840f3e502bdf46e927b5515..b1fc4d3dcf8f66871fc37e811d96e601c2c1878a 100644 (file)
@@ -1,23 +1,23 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.\r
-// Copyright (C) 2007, Tobias Schwinger.\r
-//\r
-// Use, modification, and distribution is subject to the Boost Software\r
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// See http://www.boost.org/lib/optional for documentation.\r
-//\r
-// You are welcome to contact the author at:\r
-//  fernando_cacciola@hotmail.com\r
-//\r
-#ifndef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP\r
-#define BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP\r
-\r
-#undef BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT\r
-#undef BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL\r
-#undef BOOST_MAX_INPLACE_FACTORY_ARITY\r
-\r
-#undef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP\r
-\r
-#endif\r
-\r
+// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
+// Copyright (C) 2007, Tobias Schwinger.
+//
+// Use, modification, and distribution is subject to the Boost Software
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/lib/optional for documentation.
+//
+// You are welcome to contact the author at:
+//  fernando_cacciola@hotmail.com
+//
+#ifndef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP
+#define BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP
+
+#undef BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT
+#undef BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL
+#undef BOOST_MAX_INPLACE_FACTORY_ARITY
+
+#undef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP
+
+#endif
+
index dd32cc285ff80afdac7ca566106c3e2171d84ca5..41616c3f301363eb286c257adc2d31c61e820076 100644 (file)
@@ -1,89 +1,89 @@
-// Boost result_of library\r
-\r
-//  Copyright Douglas Gregor 2004. Use, modification and\r
-//  distribution is subject to the Boost Software License, Version\r
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-// For more information, see http://www.boost.org/libs/utility\r
-#if !defined(BOOST_PP_IS_ITERATING)\r
-# error Boost result_of - do not include this file!\r
-#endif\r
-\r
-// CWPro8 requires an argument in a function type specialization\r
-#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3002)) && BOOST_PP_ITERATION() == 0\r
-# define BOOST_RESULT_OF_ARGS void\r
-#else\r
-# define BOOST_RESULT_OF_ARGS BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)\r
-#endif\r
-\r
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))\r
-template<typename F BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())\r
-         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>\r
-struct result_of<F(BOOST_RESULT_OF_ARGS)>\r
-    : boost::detail::result_of_impl<F, F(BOOST_RESULT_OF_ARGS), (boost::detail::has_result_type<F>::value)> {};\r
-#endif\r
-\r
-#undef BOOST_RESULT_OF_ARGS\r
-\r
-#if BOOST_PP_ITERATION() >= 1 \r
-\r
-namespace detail {\r
-\r
-template<typename R,  typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())\r
-         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>\r
-struct result_of_impl<R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), FArgs, false>\r
-{\r
-  typedef R type;\r
-};\r
-\r
-template<typename R,  typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())\r
-         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>\r
-struct result_of_impl<R (&)(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), FArgs, false>\r
-{\r
-  typedef R type;\r
-};\r
-\r
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))\r
-template<typename R, typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())\r
-         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>\r
-struct result_of_impl<R (T0::*)\r
-                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T)),\r
-                 FArgs, false>\r
-{\r
-  typedef R type;\r
-};\r
-\r
-template<typename R, typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())\r
-         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>\r
-struct result_of_impl<R (T0::*)\r
-                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))\r
-                     const,\r
-                 FArgs, false>\r
-{\r
-  typedef R type;\r
-};\r
-\r
-template<typename R, typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())\r
-         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>\r
-struct result_of_impl<R (T0::*)\r
-                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))\r
-                     volatile,\r
-                 FArgs, false>\r
-{\r
-  typedef R type;\r
-};\r
-\r
-template<typename R, typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())\r
-         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>\r
-struct result_of_impl<R (T0::*)\r
-                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))\r
-                     const volatile,\r
-                 FArgs, false>\r
-{\r
-  typedef R type;\r
-};\r
-#endif\r
-\r
-}\r
-#endif\r
+// Boost result_of library
+
+//  Copyright Douglas Gregor 2004. Use, modification and
+//  distribution is subject to the Boost Software License, Version
+//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
+//  http://www.boost.org/LICENSE_1_0.txt)
+
+// For more information, see http://www.boost.org/libs/utility
+#if !defined(BOOST_PP_IS_ITERATING)
+# error Boost result_of - do not include this file!
+#endif
+
+// CWPro8 requires an argument in a function type specialization
+#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3002)) && BOOST_PP_ITERATION() == 0
+# define BOOST_RESULT_OF_ARGS void
+#else
+# define BOOST_RESULT_OF_ARGS BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)
+#endif
+
+#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
+template<typename F BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
+         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>
+struct result_of<F(BOOST_RESULT_OF_ARGS)>
+    : boost::detail::result_of_impl<F, F(BOOST_RESULT_OF_ARGS), (boost::detail::has_result_type<F>::value)> {};
+#endif
+
+#undef BOOST_RESULT_OF_ARGS
+
+#if BOOST_PP_ITERATION() >= 1 
+
+namespace detail {
+
+template<typename R,  typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
+         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>
+struct result_of_impl<R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), FArgs, false>
+{
+  typedef R type;
+};
+
+template<typename R,  typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
+         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>
+struct result_of_impl<R (&)(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), FArgs, false>
+{
+  typedef R type;
+};
+
+#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
+template<typename R, typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
+         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>
+struct result_of_impl<R (T0::*)
+                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T)),
+                 FArgs, false>
+{
+  typedef R type;
+};
+
+template<typename R, typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
+         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>
+struct result_of_impl<R (T0::*)
+                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))
+                     const,
+                 FArgs, false>
+{
+  typedef R type;
+};
+
+template<typename R, typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
+         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>
+struct result_of_impl<R (T0::*)
+                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))
+                     volatile,
+                 FArgs, false>
+{
+  typedef R type;
+};
+
+template<typename R, typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
+         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>
+struct result_of_impl<R (T0::*)
+                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))
+                     const volatile,
+                 FArgs, false>
+{
+  typedef R type;
+};
+#endif
+
+}
+#endif
index a7f72c39c60fc69c7fe439348ee13c721763a066..16eaacf2ad33cf0115e69d8b3c228289ccd2c105 100644 (file)
@@ -1,88 +1,88 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.\r
-// Copyright (C) 2007, Tobias Schwinger.\r
-//\r
-// Use, modification, and distribution is subject to the Boost Software\r
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// See http://www.boost.org/lib/optional for documentation.\r
-//\r
-// You are welcome to contact the author at:\r
-//  fernando_cacciola@hotmail.com\r
-//\r
-#ifndef BOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP\r
-#ifndef BOOST_PP_IS_ITERATING\r
-\r
-#include <boost/utility/detail/in_place_factory_prefix.hpp>\r
-\r
-namespace boost {\r
-\r
-class in_place_factory_base {} ;\r
-\r
-#define  BOOST_PP_ITERATION_LIMITS (0, BOOST_MAX_INPLACE_FACTORY_ARITY)\r
-#define  BOOST_PP_FILENAME_1 <boost/utility/in_place_factory.hpp>\r
-#include BOOST_PP_ITERATE()\r
-\r
-} // namespace boost\r
-\r
-#include <boost/utility/detail/in_place_factory_suffix.hpp>\r
-\r
-#define BOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP\r
-#else\r
-#define N BOOST_PP_ITERATION()\r
-\r
-#if N\r
-template< BOOST_PP_ENUM_PARAMS(N, class A) >\r
-#endif\r
-class BOOST_PP_CAT(in_place_factory,N)\r
-  : \r
-  public in_place_factory_base\r
-{\r
-public:\r
-\r
-  explicit BOOST_PP_CAT(in_place_factory,N)\r
-      ( BOOST_PP_ENUM_BINARY_PARAMS(N,A,const& a) )\r
-#if N > 0\r
-    : BOOST_PP_ENUM(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT, _)\r
-#endif\r
-  {}\r
-\r
-  template<class T>\r
-  void* apply(void* address\r
-      BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const\r
-  {\r
-    return new(address) T( BOOST_PP_ENUM_PARAMS(N, m_a) );\r
-  }\r
-\r
-  template<class T>\r
-  void* apply(void* address, std::size_t n\r
-      BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const\r
-  {\r
-    for(char* next = address = this->BOOST_NESTED_TEMPLATE apply<T>(address);\r
-        !! --n;)\r
-      this->BOOST_NESTED_TEMPLATE apply<T>(next = next+sizeof(T));\r
-    return address; \r
-  }\r
-\r
-  BOOST_PP_REPEAT(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL, _)\r
-};\r
-\r
-#if N > 0\r
-template< BOOST_PP_ENUM_PARAMS(N, class A) >\r
-inline BOOST_PP_CAT(in_place_factory,N)< BOOST_PP_ENUM_PARAMS(N, A) >\r
-in_place( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) )\r
-{\r
-  return BOOST_PP_CAT(in_place_factory,N)< BOOST_PP_ENUM_PARAMS(N, A) >\r
-      ( BOOST_PP_ENUM_PARAMS(N, a) );\r
-}\r
-#else\r
-inline in_place_factory0 in_place()\r
-{\r
-  return in_place_factory0();\r
-}\r
-#endif\r
-\r
-#undef N\r
-#endif\r
-#endif\r
-\r
+// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
+// Copyright (C) 2007, Tobias Schwinger.
+//
+// Use, modification, and distribution is subject to the Boost Software
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/lib/optional for documentation.
+//
+// You are welcome to contact the author at:
+//  fernando_cacciola@hotmail.com
+//
+#ifndef BOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP
+#ifndef BOOST_PP_IS_ITERATING
+
+#include <boost/utility/detail/in_place_factory_prefix.hpp>
+
+namespace boost {
+
+class in_place_factory_base {} ;
+
+#define  BOOST_PP_ITERATION_LIMITS (0, BOOST_MAX_INPLACE_FACTORY_ARITY)
+#define  BOOST_PP_FILENAME_1 <boost/utility/in_place_factory.hpp>
+#include BOOST_PP_ITERATE()
+
+} // namespace boost
+
+#include <boost/utility/detail/in_place_factory_suffix.hpp>
+
+#define BOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP
+#else
+#define N BOOST_PP_ITERATION()
+
+#if N
+template< BOOST_PP_ENUM_PARAMS(N, class A) >
+#endif
+class BOOST_PP_CAT(in_place_factory,N)
+  : 
+  public in_place_factory_base
+{
+public:
+
+  explicit BOOST_PP_CAT(in_place_factory,N)
+      ( BOOST_PP_ENUM_BINARY_PARAMS(N,A,const& a) )
+#if N > 0
+    : BOOST_PP_ENUM(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT, _)
+#endif
+  {}
+
+  template<class T>
+  void* apply(void* address
+      BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const
+  {
+    return new(address) T( BOOST_PP_ENUM_PARAMS(N, m_a) );
+  }
+
+  template<class T>
+  void* apply(void* address, std::size_t n
+      BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const
+  {
+    for(char* next = address = this->BOOST_NESTED_TEMPLATE apply<T>(address);
+        !! --n;)
+      this->BOOST_NESTED_TEMPLATE apply<T>(next = next+sizeof(T));
+    return address; 
+  }
+
+  BOOST_PP_REPEAT(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL, _)
+};
+
+#if N > 0
+template< BOOST_PP_ENUM_PARAMS(N, class A) >
+inline BOOST_PP_CAT(in_place_factory,N)< BOOST_PP_ENUM_PARAMS(N, A) >
+in_place( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) )
+{
+  return BOOST_PP_CAT(in_place_factory,N)< BOOST_PP_ENUM_PARAMS(N, A) >
+      ( BOOST_PP_ENUM_PARAMS(N, a) );
+}
+#else
+inline in_place_factory0 in_place()
+{
+  return in_place_factory0();
+}
+#endif
+
+#undef N
+#endif
+#endif
+
index 26cab6f9f36a0bd69902c2e3dfe3aab2a6a3c2cf..e35e0980bb1ea6ddb4d4b9d5b79564650a9c2b66 100644 (file)
@@ -1,88 +1,88 @@
-// Boost result_of library\r
-\r
-//  Copyright Douglas Gregor 2004. Use, modification and\r
-//  distribution is subject to the Boost Software License, Version\r
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
-//  http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-// For more information, see http://www.boost.org/libs/utility\r
-#ifndef BOOST_RESULT_OF_HPP\r
-#define BOOST_RESULT_OF_HPP\r
-\r
-#include <boost/config.hpp>\r
-#include <boost/type_traits/ice.hpp>\r
-#include <boost/type.hpp>\r
-#include <boost/preprocessor.hpp>\r
-#include <boost/detail/workaround.hpp>\r
-#include <boost/mpl/has_xxx.hpp>\r
-#include <boost/mpl/if.hpp>\r
-#include <boost/mpl/bool.hpp>\r
-\r
-#ifndef BOOST_RESULT_OF_NUM_ARGS\r
-#  define BOOST_RESULT_OF_NUM_ARGS 10\r
-#endif\r
-\r
-namespace boost {\r
-\r
-template<typename F> struct result_of;\r
-\r
-#if !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\r
-namespace detail {\r
-\r
-BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)\r
-\r
-template<typename F, typename FArgs, bool HasResultType> struct result_of_impl;\r
-\r
-template<typename F>\r
-struct result_of_void_impl\r
-{\r
-  typedef void type;\r
-};\r
-\r
-template<typename R>\r
-struct result_of_void_impl<R (*)(void)>\r
-{\r
-  typedef R type;\r
-};\r
-\r
-template<typename R>\r
-struct result_of_void_impl<R (&)(void)>\r
-{\r
-  typedef R type;\r
-};\r
-\r
-template<typename F, typename FArgs>\r
-struct result_of_impl<F, FArgs, true>\r
-{\r
-  typedef typename F::result_type type;\r
-};\r
-\r
-template<typename FArgs>\r
-struct is_function_with_no_args : mpl::false_ {};\r
-\r
-template<typename F>\r
-struct is_function_with_no_args<F(void)> : mpl::true_ {};\r
-\r
-template<typename F, typename FArgs>\r
-struct result_of_nested_result : F::template result<FArgs>\r
-{};\r
-\r
-template<typename F, typename FArgs>\r
-struct result_of_impl<F, FArgs, false>\r
-  : mpl::if_<is_function_with_no_args<FArgs>,\r
-             result_of_void_impl<F>,\r
-             result_of_nested_result<F, FArgs> >::type\r
-{};\r
-\r
-} // end namespace detail\r
-\r
-#define BOOST_PP_ITERATION_PARAMS_1 (3,(0,BOOST_RESULT_OF_NUM_ARGS,<boost/utility/detail/result_of_iterate.hpp>))\r
-#include BOOST_PP_ITERATE()\r
-\r
-#else\r
-#  define BOOST_NO_RESULT_OF 1\r
-#endif\r
-\r
-}\r
-\r
-#endif // BOOST_RESULT_OF_HPP\r
+// Boost result_of library
+
+//  Copyright Douglas Gregor 2004. Use, modification and
+//  distribution is subject to the Boost Software License, Version
+//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
+//  http://www.boost.org/LICENSE_1_0.txt)
+
+// For more information, see http://www.boost.org/libs/utility
+#ifndef BOOST_RESULT_OF_HPP
+#define BOOST_RESULT_OF_HPP
+
+#include <boost/config.hpp>
+#include <boost/type_traits/ice.hpp>
+#include <boost/type.hpp>
+#include <boost/preprocessor.hpp>
+#include <boost/detail/workaround.hpp>
+#include <boost/mpl/has_xxx.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/bool.hpp>
+
+#ifndef BOOST_RESULT_OF_NUM_ARGS
+#  define BOOST_RESULT_OF_NUM_ARGS 10
+#endif
+
+namespace boost {
+
+template<typename F> struct result_of;
+
+#if !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+namespace detail {
+
+BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
+
+template<typename F, typename FArgs, bool HasResultType> struct result_of_impl;
+
+template<typename F>
+struct result_of_void_impl
+{
+  typedef void type;
+};
+
+template<typename R>
+struct result_of_void_impl<R (*)(void)>
+{
+  typedef R type;
+};
+
+template<typename R>
+struct result_of_void_impl<R (&)(void)>
+{
+  typedef R type;
+};
+
+template<typename F, typename FArgs>
+struct result_of_impl<F, FArgs, true>
+{
+  typedef typename F::result_type type;
+};
+
+template<typename FArgs>
+struct is_function_with_no_args : mpl::false_ {};
+
+template<typename F>
+struct is_function_with_no_args<F(void)> : mpl::true_ {};
+
+template<typename F, typename FArgs>
+struct result_of_nested_result : F::template result<FArgs>
+{};
+
+template<typename F, typename FArgs>
+struct result_of_impl<F, FArgs, false>
+  : mpl::if_<is_function_with_no_args<FArgs>,
+             result_of_void_impl<F>,
+             result_of_nested_result<F, FArgs> >::type
+{};
+
+} // end namespace detail
+
+#define BOOST_PP_ITERATION_PARAMS_1 (3,(0,BOOST_RESULT_OF_NUM_ARGS,<boost/utility/detail/result_of_iterate.hpp>))
+#include BOOST_PP_ITERATE()
+
+#else
+#  define BOOST_NO_RESULT_OF 1
+#endif
+
+}
+
+#endif // BOOST_RESULT_OF_HPP
index 85de422c23bc83190c96bc819e96080547f26d18..6845e7965b72c7e9dc9ffae09ffdb9b0032bd21d 100644 (file)
@@ -1,55 +1,55 @@
-// Copyright (C) 2007, 2008 Steven Watanabe, Joseph Gauterin, Niels Dekker\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-// For more information, see http://www.boost.org\r
-\r
-\r
-#ifndef BOOST_UTILITY_SWAP_HPP\r
-#define BOOST_UTILITY_SWAP_HPP\r
-\r
-// Note: the implementation of this utility contains various workarounds:\r
-// - swap_impl is put outside the boost namespace, to avoid infinite\r
-// recursion (causing stack overflow) when swapping objects of a primitive\r
-// type.\r
-// - swap_impl has a using-directive, rather than a using-declaration,\r
-// because some compilers (including MSVC 7.1, Borland 5.9.3, and\r
-// Intel 8.1) don't do argument-dependent lookup when it has a\r
-// using-declaration instead.\r
-// - boost::swap has two template arguments, instead of one, to\r
-// avoid ambiguity when swapping objects of a Boost type that does\r
-// not have its own boost::swap overload.\r
-\r
-#include <algorithm> //for std::swap\r
-#include <cstddef> //for std::size_t\r
-\r
-namespace boost_swap_impl\r
-{\r
-  template<class T>\r
-  void swap_impl(T& left, T& right)\r
-  {\r
-    using namespace std;//use std::swap if argument dependent lookup fails\r
-    swap(left,right);\r
-  }\r
-\r
-  template<class T, std::size_t N>\r
-  void swap_impl(T (& left)[N], T (& right)[N])\r
-  {\r
-    for (std::size_t i = 0; i < N; ++i)\r
-    {\r
-      ::boost_swap_impl::swap_impl(left[i], right[i]);\r
-    }\r
-  }\r
-}\r
-\r
-namespace boost\r
-{\r
-  template<class T1, class T2>\r
-  void swap(T1& left, T2& right)\r
-  {\r
-    ::boost_swap_impl::swap_impl(left, right);\r
-  }\r
-}\r
-\r
-#endif\r
+// Copyright (C) 2007, 2008 Steven Watanabe, Joseph Gauterin, Niels Dekker
+//
+// 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)
+// For more information, see http://www.boost.org
+
+
+#ifndef BOOST_UTILITY_SWAP_HPP
+#define BOOST_UTILITY_SWAP_HPP
+
+// Note: the implementation of this utility contains various workarounds:
+// - swap_impl is put outside the boost namespace, to avoid infinite
+// recursion (causing stack overflow) when swapping objects of a primitive
+// type.
+// - swap_impl has a using-directive, rather than a using-declaration,
+// because some compilers (including MSVC 7.1, Borland 5.9.3, and
+// Intel 8.1) don't do argument-dependent lookup when it has a
+// using-declaration instead.
+// - boost::swap has two template arguments, instead of one, to
+// avoid ambiguity when swapping objects of a Boost type that does
+// not have its own boost::swap overload.
+
+#include <algorithm> //for std::swap
+#include <cstddef> //for std::size_t
+
+namespace boost_swap_impl
+{
+  template<class T>
+  void swap_impl(T& left, T& right)
+  {
+    using namespace std;//use std::swap if argument dependent lookup fails
+    swap(left,right);
+  }
+
+  template<class T, std::size_t N>
+  void swap_impl(T (& left)[N], T (& right)[N])
+  {
+    for (std::size_t i = 0; i < N; ++i)
+    {
+      ::boost_swap_impl::swap_impl(left[i], right[i]);
+    }
+  }
+}
+
+namespace boost
+{
+  template<class T1, class T2>
+  void swap(T1& left, T2& right)
+  {
+    ::boost_swap_impl::swap_impl(left, right);
+  }
+}
+
+#endif
index 7beb8cc06fce8e332df264bb8708ca5785b57e87..347b7f459a44209ff7afdc0eeb19395b243a45ab 100644 (file)
@@ -1,77 +1,77 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.\r
-// Copyright (C) 2007, Tobias Schwinger.\r
-//\r
-// Use, modification, and distribution is subject to the Boost Software\r
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// See http://www.boost.org/lib/optional for documentation.\r
-//\r
-// You are welcome to contact the author at:\r
-//  fernando_cacciola@hotmail.com\r
-//\r
-#ifndef BOOST_UTILITY_TYPED_INPLACE_FACTORY_04APR2007_HPP\r
-#ifndef BOOST_PP_IS_ITERATING\r
-\r
-#include <boost/utility/detail/in_place_factory_prefix.hpp>\r
-\r
-namespace boost {\r
-\r
-class typed_in_place_factory_base {} ;\r
-\r
-#define  BOOST_PP_ITERATION_LIMITS (0, BOOST_MAX_INPLACE_FACTORY_ARITY)\r
-#define  BOOST_PP_FILENAME_1 <boost/utility/typed_in_place_factory.hpp>\r
-#include BOOST_PP_ITERATE()\r
-\r
-} // namespace boost\r
-\r
-#include <boost/utility/detail/in_place_factory_suffix.hpp>\r
-\r
-#define BOOST_UTILITY_TYPED_INPLACE_FACTORY_04APR2007_HPP\r
-#else \r
-#define N BOOST_PP_ITERATION()\r
-\r
-template< class T BOOST_PP_ENUM_TRAILING_PARAMS(N,class A) >\r
-class BOOST_PP_CAT(typed_in_place_factory,N) \r
-  : \r
-  public typed_in_place_factory_base\r
-{\r
-public:\r
-\r
-  typedef T value_type;\r
-\r
-  explicit BOOST_PP_CAT(typed_in_place_factory,N) \r
-      ( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) )\r
-#if N > 0\r
-    : BOOST_PP_ENUM(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT, _)\r
-#endif\r
-  {}\r
-\r
-  void* apply (void* address) const\r
-  {\r
-    return new(address) T( BOOST_PP_ENUM_PARAMS(N, m_a) );\r
-  }\r
-\r
-  void* apply (void* address, std::size_t n) const\r
-  {\r
-    for(void* next = address = this->apply(address); !! --n;)\r
-      this->apply(next = static_cast<char *>(next) + sizeof(T));\r
-    return address; \r
-  }\r
-\r
-  BOOST_PP_REPEAT(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL, _)\r
-};\r
-\r
-template< class T BOOST_PP_ENUM_TRAILING_PARAMS(N, class A) >\r
-inline BOOST_PP_CAT(typed_in_place_factory,N)<\r
-    T BOOST_PP_ENUM_TRAILING_PARAMS(N, A) >\r
-in_place( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) )\r
-{\r
-  return BOOST_PP_CAT(typed_in_place_factory,N)< \r
-      T BOOST_PP_ENUM_TRAILING_PARAMS(N, A) >( BOOST_PP_ENUM_PARAMS(N, a) );\r
-}\r
-\r
-#undef N\r
-#endif\r
-#endif\r
-\r
+// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
+// Copyright (C) 2007, Tobias Schwinger.
+//
+// Use, modification, and distribution is subject to the Boost Software
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/lib/optional for documentation.
+//
+// You are welcome to contact the author at:
+//  fernando_cacciola@hotmail.com
+//
+#ifndef BOOST_UTILITY_TYPED_INPLACE_FACTORY_04APR2007_HPP
+#ifndef BOOST_PP_IS_ITERATING
+
+#include <boost/utility/detail/in_place_factory_prefix.hpp>
+
+namespace boost {
+
+class typed_in_place_factory_base {} ;
+
+#define  BOOST_PP_ITERATION_LIMITS (0, BOOST_MAX_INPLACE_FACTORY_ARITY)
+#define  BOOST_PP_FILENAME_1 <boost/utility/typed_in_place_factory.hpp>
+#include BOOST_PP_ITERATE()
+
+} // namespace boost
+
+#include <boost/utility/detail/in_place_factory_suffix.hpp>
+
+#define BOOST_UTILITY_TYPED_INPLACE_FACTORY_04APR2007_HPP
+#else 
+#define N BOOST_PP_ITERATION()
+
+template< class T BOOST_PP_ENUM_TRAILING_PARAMS(N,class A) >
+class BOOST_PP_CAT(typed_in_place_factory,N) 
+  : 
+  public typed_in_place_factory_base
+{
+public:
+
+  typedef T value_type;
+
+  explicit BOOST_PP_CAT(typed_in_place_factory,N) 
+      ( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) )
+#if N > 0
+    : BOOST_PP_ENUM(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT, _)
+#endif
+  {}
+
+  void* apply (void* address) const
+  {
+    return new(address) T( BOOST_PP_ENUM_PARAMS(N, m_a) );
+  }
+
+  void* apply (void* address, std::size_t n) const
+  {
+    for(void* next = address = this->apply(address); !! --n;)
+      this->apply(next = static_cast<char *>(next) + sizeof(T));
+    return address; 
+  }
+
+  BOOST_PP_REPEAT(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL, _)
+};
+
+template< class T BOOST_PP_ENUM_TRAILING_PARAMS(N, class A) >
+inline BOOST_PP_CAT(typed_in_place_factory,N)<
+    T BOOST_PP_ENUM_TRAILING_PARAMS(N, A) >
+in_place( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) )
+{
+  return BOOST_PP_CAT(typed_in_place_factory,N)< 
+      T BOOST_PP_ENUM_TRAILING_PARAMS(N, A) >( BOOST_PP_ENUM_PARAMS(N, a) );
+}
+
+#undef N
+#endif
+#endif
+
index 40b2614eca959159997157f62d6f89da931d41f5..177fe743450c2135ba873a239bf2e14b0b9592bb 100644 (file)
-// (C) Copyright 2002-2008, Fernando Luis Cacciola Carballal.\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. (See\r
-// accompanying file LICENSE_1_0.txt or copy at\r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-// 21 Ago 2002 (Created) Fernando Cacciola\r
-// 24 Dec 2007 (Refactored and worked around various compiler bugs) Fernando Cacciola, Niels Dekker\r
-// 23 May 2008 (Fixed operator= const issue, added initialized_value) Niels Dekker, Fernando Cacciola\r
-// 21 Ago 2008 (Added swap) Niels Dekker, Fernando Cacciola\r
-// 20 Feb 2009 (Fixed logical const-ness issues) Niels Dekker, Fernando Cacciola\r
-//\r
-#ifndef BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP\r
-#define BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP\r
-\r
-// Note: The implementation of boost::value_initialized had to deal with the\r
-// fact that various compilers haven't fully implemented value-initialization.\r
-// The constructor of boost::value_initialized<T> works around these compiler\r
-// issues, by clearing the bytes of T, before constructing the T object it\r
-// contains. More details on these issues are at libs/utility/value_init.htm\r
-\r
-#include <boost/aligned_storage.hpp>\r
-#include <boost/detail/workaround.hpp>\r
-#include <boost/static_assert.hpp>\r
-#include <boost/type_traits/cv_traits.hpp>\r
-#include <boost/type_traits/alignment_of.hpp>\r
-#include <boost/swap.hpp>\r
-#include <cstring>\r
-#include <new>\r
-\r
-namespace boost {\r
-\r
-template<class T>\r
-class value_initialized\r
-{\r
-  private :\r
-    struct wrapper\r
-    {\r
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592))\r
-      typename\r
-#endif \r
-      remove_const<T>::type data;\r
-    };\r
-\r
-    mutable\r
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592))\r
-      typename\r
-#endif \r
-      aligned_storage<sizeof(wrapper), alignment_of<wrapper>::value>::type x;\r
-\r
-    wrapper * wrapper_address() const\r
-    {\r
-      return static_cast<wrapper *>( static_cast<void*>(&x));\r
-    }\r
-\r
-  public :\r
-\r
-    value_initialized()\r
-    {\r
-      std::memset(&x, 0, sizeof(x));\r
-#ifdef BOOST_MSVC\r
-#pragma warning(push)\r
-#if _MSC_VER >= 1310\r
-// When using MSVC 7.1 or higher, the following placement new expression may trigger warning C4345:\r
-// "behavior change: an object of POD type constructed with an initializer of the form ()\r
-// will be default-initialized".  It is safe to ignore this warning when using value_initialized.\r
-#pragma warning(disable: 4345)\r
-#endif\r
-#endif\r
-      new (wrapper_address()) wrapper();\r
-#ifdef BOOST_MSVC\r
-#pragma warning(pop)\r
-#endif\r
-    }\r
-\r
-    value_initialized(value_initialized const & arg)\r
-    {\r
-      new (wrapper_address()) wrapper( static_cast<wrapper const &>(*(arg.wrapper_address())));\r
-    }\r
-\r
-    value_initialized & operator=(value_initialized const & arg)\r
-    {\r
-      // Assignment is only allowed when T is non-const.\r
-      BOOST_STATIC_ASSERT( ! is_const<T>::value );\r
-      *wrapper_address() = static_cast<wrapper const &>(*(arg.wrapper_address()));\r
-      return *this;\r
-    }\r
-\r
-    ~value_initialized()\r
-    {\r
-      wrapper_address()->wrapper::~wrapper();\r
-    }\r
-\r
-    T const & data() const\r
-    {\r
-      return wrapper_address()->data;\r
-    }\r
-\r
-    T& data()\r
-    {\r
-      return wrapper_address()->data;\r
-    }\r
-\r
-    void swap(value_initialized & arg)\r
-    {\r
-      ::boost::swap( this->data(), arg.data() );\r
-    }\r
-\r
-    operator T const &() const { return this->data(); }\r
-\r
-    operator T&() { return this->data(); }\r
-\r
-} ;\r
-\r
-\r
-\r
-\r
-\r
-template<class T>\r
-T const& get ( value_initialized<T> const& x )\r
-{\r
-  return x.data() ;\r
-}\r
-template<class T>\r
-T& get ( value_initialized<T>& x )\r
-{\r
-  return x.data() ;\r
-}\r
-\r
-template<class T>\r
-void swap ( value_initialized<T> & lhs, value_initialized<T> & rhs )\r
-{\r
-  lhs.swap(rhs) ;\r
-}\r
-\r
-\r
-class initialized_value_t\r
-{\r
-  public :\r
-    \r
-    template <class T> operator T() const\r
-    {\r
-      return get( value_initialized<T>() );\r
-    }\r
-};\r
-\r
-initialized_value_t const initialized_value = {} ;\r
-\r
-\r
-} // namespace boost\r
-\r
-\r
-#endif\r
+// (C) Copyright 2002-2008, Fernando Luis Cacciola Carballal.
+//
+// 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)
+//
+// 21 Ago 2002 (Created) Fernando Cacciola
+// 24 Dec 2007 (Refactored and worked around various compiler bugs) Fernando Cacciola, Niels Dekker
+// 23 May 2008 (Fixed operator= const issue, added initialized_value) Niels Dekker, Fernando Cacciola
+// 21 Ago 2008 (Added swap) Niels Dekker, Fernando Cacciola
+// 20 Feb 2009 (Fixed logical const-ness issues) Niels Dekker, Fernando Cacciola
+//
+#ifndef BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP
+#define BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP
+
+// Note: The implementation of boost::value_initialized had to deal with the
+// fact that various compilers haven't fully implemented value-initialization.
+// The constructor of boost::value_initialized<T> works around these compiler
+// issues, by clearing the bytes of T, before constructing the T object it
+// contains. More details on these issues are at libs/utility/value_init.htm
+
+#include <boost/aligned_storage.hpp>
+#include <boost/detail/workaround.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/cv_traits.hpp>
+#include <boost/type_traits/alignment_of.hpp>
+#include <boost/swap.hpp>
+#include <cstring>
+#include <new>
+
+namespace boost {
+
+template<class T>
+class value_initialized
+{
+  private :
+    struct wrapper
+    {
+#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592))
+      typename
+#endif 
+      remove_const<T>::type data;
+    };
+
+    mutable
+#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592))
+      typename
+#endif 
+      aligned_storage<sizeof(wrapper), alignment_of<wrapper>::value>::type x;
+
+    wrapper * wrapper_address() const
+    {
+      return static_cast<wrapper *>( static_cast<void*>(&x));
+    }
+
+  public :
+
+    value_initialized()
+    {
+      std::memset(&x, 0, sizeof(x));
+#ifdef BOOST_MSVC
+#pragma warning(push)
+#if _MSC_VER >= 1310
+// When using MSVC 7.1 or higher, the following placement new expression may trigger warning C4345:
+// "behavior change: an object of POD type constructed with an initializer of the form ()
+// will be default-initialized".  It is safe to ignore this warning when using value_initialized.
+#pragma warning(disable: 4345)
+#endif
+#endif
+      new (wrapper_address()) wrapper();
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+    }
+
+    value_initialized(value_initialized const & arg)
+    {
+      new (wrapper_address()) wrapper( static_cast<wrapper const &>(*(arg.wrapper_address())));
+    }
+
+    value_initialized & operator=(value_initialized const & arg)
+    {
+      // Assignment is only allowed when T is non-const.
+      BOOST_STATIC_ASSERT( ! is_const<T>::value );
+      *wrapper_address() = static_cast<wrapper const &>(*(arg.wrapper_address()));
+      return *this;
+    }
+
+    ~value_initialized()
+    {
+      wrapper_address()->wrapper::~wrapper();
+    }
+
+    T const & data() const
+    {
+      return wrapper_address()->data;
+    }
+
+    T& data()
+    {
+      return wrapper_address()->data;
+    }
+
+    void swap(value_initialized & arg)
+    {
+      ::boost::swap( this->data(), arg.data() );
+    }
+
+    operator T const &() const { return this->data(); }
+
+    operator T&() { return this->data(); }
+
+} ;
+
+
+
+
+
+template<class T>
+T const& get ( value_initialized<T> const& x )
+{
+  return x.data() ;
+}
+template<class T>
+T& get ( value_initialized<T>& x )
+{
+  return x.data() ;
+}
+
+template<class T>
+void swap ( value_initialized<T> & lhs, value_initialized<T> & rhs )
+{
+  lhs.swap(rhs) ;
+}
+
+
+class initialized_value_t
+{
+  public :
+    
+    template <class T> operator T() const
+    {
+      return get( value_initialized<T>() );
+    }
+};
+
+initialized_value_t const initialized_value = {} ;
+
+
+} // namespace boost
+
+
+#endif
index bbd03f92ac247ec9780cd17e90ebb0b797aad6de..59e1b7c4ca8a3c64adba71c3b1c35b67bdaf28a2 100755 (executable)
@@ -1,40 +1,40 @@
-#\r
-# Copyright Troy D. Straszheim\r
-#\r
-# Distributed under the Boost Software License, Version 1.0.\r
-# See http://www.boost.org/LICENSE_1_0.txt\r
-#\r
-# Look for the ICU library. If we find it, we'll compile in support for ICU\r
-include(FindICU)\r
-set(BOOST_REGEX_LIBRARIES)\r
-if (ICU_FOUND AND ICU_I18N_FOUND)\r
-  add_definitions(-DBOOST_HAS_ICU=1)\r
-  include_directories(${ICU_INCLUDE_DIRS})\r
-  set(BOOST_REGEX_LIBRARIES ${ICU_LIBRARIES} ${ICU_I18N_LIBRARIES})\r
-endif (ICU_FOUND AND ICU_I18N_FOUND)\r
\r
-boost_add_library(boost_regex\r
-   c_regex_traits.cpp\r
-   cpp_regex_traits.cpp\r
-   cregex.cpp\r
-   fileiter.cpp\r
-   icu.cpp\r
-   instances.cpp\r
-   posix_api.cpp\r
-   regex.cpp\r
-   regex_debug.cpp\r
-   regex_raw_buffer.cpp\r
-   regex_traits_defaults.cpp\r
-   static_mutex.cpp\r
-   w32_regex_traits.cpp\r
-   wc_regex_traits.cpp\r
-   wide_posix_api.cpp\r
-   winstances.cpp \r
-   usinstances.cpp \r
-   LINK_LIBS ${BOOST_REGEX_LIBRARIES}\r
-   SHARED_COMPILE_FLAGS -DBOOST_REGEX_DYN_LINK=1)\r
-\r
-\r
-\r
-\r
-\r
+#
+# Copyright Troy D. Straszheim
+#
+# Distributed under the Boost Software License, Version 1.0.
+# See http://www.boost.org/LICENSE_1_0.txt
+#
+# Look for the ICU library. If we find it, we'll compile in support for ICU
+include(FindICU)
+set(BOOST_REGEX_LIBRARIES)
+if (ICU_FOUND AND ICU_I18N_FOUND)
+  add_definitions(-DBOOST_HAS_ICU=1)
+  include_directories(${ICU_INCLUDE_DIRS})
+  set(BOOST_REGEX_LIBRARIES ${ICU_LIBRARIES} ${ICU_I18N_LIBRARIES})
+endif (ICU_FOUND AND ICU_I18N_FOUND)
+boost_add_library(boost_regex
+   c_regex_traits.cpp
+   cpp_regex_traits.cpp
+   cregex.cpp
+   fileiter.cpp
+   icu.cpp
+   instances.cpp
+   posix_api.cpp
+   regex.cpp
+   regex_debug.cpp
+   regex_raw_buffer.cpp
+   regex_traits_defaults.cpp
+   static_mutex.cpp
+   w32_regex_traits.cpp
+   wc_regex_traits.cpp
+   wide_posix_api.cpp
+   winstances.cpp 
+   usinstances.cpp 
+   LINK_LIBS ${BOOST_REGEX_LIBRARIES}
+   SHARED_COMPILE_FLAGS -DBOOST_REGEX_DYN_LINK=1)
+
+
+
+
+
index c5eb538dac65d85e3df5085986f603073604cd83..a815e9156bbbe18ea2f52af0b305b8a7dbf486c6 100755 (executable)
-/*\r
- *\r
- * Copyright (c) 2004\r
- * John Maddock\r
- *\r
- * Use, modification and distribution are subject to the \r
- * Boost Software License, Version 1.0. (See accompanying file \r
- * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
- *\r
- */\r
-\r
- /*\r
-  *   LOCATION:    see http://www.boost.org for most recent version.\r
-  *   FILE         icu.cpp\r
-  *   VERSION      see <boost/version.hpp>\r
-  *   DESCRIPTION: Unicode regular expressions on top of the ICU Library.\r
-  */\r
-#define BOOST_REGEX_SOURCE\r
-\r
-#include <boost/regex/config.hpp>\r
-#ifdef BOOST_HAS_ICU\r
-#define BOOST_REGEX_ICU_INSTANTIATE\r
-#include <boost/regex/icu.hpp>\r
-\r
-namespace boost{\r
-\r
-namespace re_detail{\r
-\r
-icu_regex_traits_implementation::string_type icu_regex_traits_implementation::do_transform(const char_type* p1, const char_type* p2, const U_NAMESPACE_QUALIFIER Collator* pcoll) const\r
-{\r
-   // TODO make thread safe!!!! :\r
-   typedef u32_to_u16_iterator<const char_type*, ::UChar> itt;\r
-   itt i(p1), j(p2);\r
-#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS\r
-   std::vector< ::UChar> t(i, j);\r
-#else\r
-   std::vector< ::UChar> t;\r
-   while(i != j)\r
-      t.push_back(*i++);\r
-#endif\r
-   ::uint8_t result[100];\r
-   ::int32_t len;\r
-   if(t.size())\r
-      len = pcoll->getSortKey(&*t.begin(), static_cast< ::int32_t>(t.size()), result, sizeof(result));\r
-   else\r
-      len = pcoll->getSortKey(static_cast<UChar const*>(0), static_cast< ::int32_t>(0), result, sizeof(result));\r
-   if(std::size_t(len) > sizeof(result))\r
-   {\r
-      scoped_array< ::uint8_t> presult(new ::uint8_t[len+1]);\r
-      if(t.size())\r
-         len = pcoll->getSortKey(&*t.begin(), static_cast< ::int32_t>(t.size()), presult.get(), len+1);\r
-      else\r
-         len = pcoll->getSortKey(static_cast<UChar const*>(0), static_cast< ::int32_t>(0), presult.get(), len+1);\r
-      if((0 == presult[len-1]) && (len > 1))\r
-         --len;\r
-#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS\r
-      return string_type(presult.get(), presult.get()+len);\r
-#else\r
-      string_type sresult;\r
-      ::uint8_t const* ia = presult.get();\r
-      ::uint8_t const* ib = presult.get()+len;\r
-      while(ia != ib)\r
-         sresult.push_back(*ia++);\r
-      return sresult;\r
-#endif\r
-   }\r
-   if((0 == result[len-1]) && (len > 1))\r
-      --len;\r
-#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS\r
-   return string_type(result, result+len);\r
-#else\r
-   string_type sresult;\r
-   ::uint8_t const* ia = result;\r
-   ::uint8_t const* ib = result+len;\r
-   while(ia != ib)\r
-      sresult.push_back(*ia++);\r
-   return sresult;\r
-#endif\r
-}\r
-\r
-}\r
-\r
-icu_regex_traits::size_type icu_regex_traits::length(const char_type* p)\r
-{\r
-   size_type result = 0;\r
-   while(*p)\r
-   {\r
-      ++p;\r
-      ++result;\r
-   }\r
-   return result;\r
-}\r
-\r
-//\r
-// define our bitmasks:\r
-//\r
-const icu_regex_traits::char_class_type icu_regex_traits::mask_blank = icu_regex_traits::char_class_type(1) << offset_blank;\r
-const icu_regex_traits::char_class_type icu_regex_traits::mask_space = icu_regex_traits::char_class_type(1) << offset_space;\r
-const icu_regex_traits::char_class_type icu_regex_traits::mask_xdigit = icu_regex_traits::char_class_type(1) << offset_xdigit;\r
-const icu_regex_traits::char_class_type icu_regex_traits::mask_underscore = icu_regex_traits::char_class_type(1) << offset_underscore;\r
-const icu_regex_traits::char_class_type icu_regex_traits::mask_unicode = icu_regex_traits::char_class_type(1) << offset_unicode;\r
-const icu_regex_traits::char_class_type icu_regex_traits::mask_any = icu_regex_traits::char_class_type(1) << offset_any;\r
-const icu_regex_traits::char_class_type icu_regex_traits::mask_ascii = icu_regex_traits::char_class_type(1) << offset_ascii;\r
-const icu_regex_traits::char_class_type icu_regex_traits::mask_horizontal = icu_regex_traits::char_class_type(1) << offset_horizontal;\r
-const icu_regex_traits::char_class_type icu_regex_traits::mask_vertical = icu_regex_traits::char_class_type(1) << offset_vertical;\r
-\r
-icu_regex_traits::char_class_type icu_regex_traits::lookup_icu_mask(const ::UChar32* p1, const ::UChar32* p2)\r
-{\r
-   static const ::UChar32 prop_name_table[] = {\r
-      /* any */  'a', 'n', 'y', \r
-      /* ascii */  'a', 's', 'c', 'i', 'i', \r
-      /* assigned */  'a', 's', 's', 'i', 'g', 'n', 'e', 'd', \r
-      /* c* */  'c', '*', \r
-      /* cc */  'c', 'c', \r
-      /* cf */  'c', 'f', \r
-      /* closepunctuation */  'c', 'l', 'o', 's', 'e', 'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', \r
-      /* cn */  'c', 'n', \r
-      /* co */  'c', 'o', \r
-      /* connectorpunctuation */  'c', 'o', 'n', 'n', 'e', 'c', 't', 'o', 'r', 'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', \r
-      /* control */  'c', 'o', 'n', 't', 'r', 'o', 'l', \r
-      /* cs */  'c', 's', \r
-      /* currencysymbol */  'c', 'u', 'r', 'r', 'e', 'n', 'c', 'y', 's', 'y', 'm', 'b', 'o', 'l', \r
-      /* dashpunctuation */  'd', 'a', 's', 'h', 'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', \r
-      /* decimaldigitnumber */  'd', 'e', 'c', 'i', 'm', 'a', 'l', 'd', 'i', 'g', 'i', 't', 'n', 'u', 'm', 'b', 'e', 'r', \r
-      /* enclosingmark */  'e', 'n', 'c', 'l', 'o', 's', 'i', 'n', 'g', 'm', 'a', 'r', 'k', \r
-      /* finalpunctuation */  'f', 'i', 'n', 'a', 'l', 'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', \r
-      /* format */  'f', 'o', 'r', 'm', 'a', 't', \r
-      /* initialpunctuation */  'i', 'n', 'i', 't', 'i', 'a', 'l', 'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', \r
-      /* l* */  'l', '*', \r
-      /* letter */  'l', 'e', 't', 't', 'e', 'r', \r
-      /* letternumber */  'l', 'e', 't', 't', 'e', 'r', 'n', 'u', 'm', 'b', 'e', 'r', \r
-      /* lineseparator */  'l', 'i', 'n', 'e', 's', 'e', 'p', 'a', 'r', 'a', 't', 'o', 'r', \r
-      /* ll */  'l', 'l', \r
-      /* lm */  'l', 'm', \r
-      /* lo */  'l', 'o', \r
-      /* lowercaseletter */  'l', 'o', 'w', 'e', 'r', 'c', 'a', 's', 'e', 'l', 'e', 't', 't', 'e', 'r', \r
-      /* lt */  'l', 't', \r
-      /* lu */  'l', 'u', \r
-      /* m* */  'm', '*', \r
-      /* mark */  'm', 'a', 'r', 'k', \r
-      /* mathsymbol */  'm', 'a', 't', 'h', 's', 'y', 'm', 'b', 'o', 'l', \r
-      /* mc */  'm', 'c', \r
-      /* me */  'm', 'e', \r
-      /* mn */  'm', 'n', \r
-      /* modifierletter */  'm', 'o', 'd', 'i', 'f', 'i', 'e', 'r', 'l', 'e', 't', 't', 'e', 'r', \r
-      /* modifiersymbol */  'm', 'o', 'd', 'i', 'f', 'i', 'e', 'r', 's', 'y', 'm', 'b', 'o', 'l', \r
-      /* n* */  'n', '*', \r
-      /* nd */  'n', 'd', \r
-      /* nl */  'n', 'l', \r
-      /* no */  'n', 'o', \r
-      /* nonspacingmark */  'n', 'o', 'n', 's', 'p', 'a', 'c', 'i', 'n', 'g', 'm', 'a', 'r', 'k', \r
-      /* notassigned */  'n', 'o', 't', 'a', 's', 's', 'i', 'g', 'n', 'e', 'd', \r
-      /* number */  'n', 'u', 'm', 'b', 'e', 'r', \r
-      /* openpunctuation */  'o', 'p', 'e', 'n', 'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', \r
-      /* other */  'o', 't', 'h', 'e', 'r', \r
-      /* otherletter */  'o', 't', 'h', 'e', 'r', 'l', 'e', 't', 't', 'e', 'r', \r
-      /* othernumber */  'o', 't', 'h', 'e', 'r', 'n', 'u', 'm', 'b', 'e', 'r', \r
-      /* otherpunctuation */  'o', 't', 'h', 'e', 'r', 'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', \r
-      /* othersymbol */  'o', 't', 'h', 'e', 'r', 's', 'y', 'm', 'b', 'o', 'l', \r
-      /* p* */  'p', '*', \r
-      /* paragraphseparator */  'p', 'a', 'r', 'a', 'g', 'r', 'a', 'p', 'h', 's', 'e', 'p', 'a', 'r', 'a', 't', 'o', 'r', \r
-      /* pc */  'p', 'c', \r
-      /* pd */  'p', 'd', \r
-      /* pe */  'p', 'e', \r
-      /* pf */  'p', 'f', \r
-      /* pi */  'p', 'i', \r
-      /* po */  'p', 'o', \r
-      /* privateuse */  'p', 'r', 'i', 'v', 'a', 't', 'e', 'u', 's', 'e', \r
-      /* ps */  'p', 's', \r
-      /* punctuation */  'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', \r
-      /* s* */  's', '*', \r
-      /* sc */  's', 'c', \r
-      /* separator */  's', 'e', 'p', 'a', 'r', 'a', 't', 'o', 'r', \r
-      /* sk */  's', 'k', \r
-      /* sm */  's', 'm', \r
-      /* so */  's', 'o', \r
-      /* spaceseparator */  's', 'p', 'a', 'c', 'e', 's', 'e', 'p', 'a', 'r', 'a', 't', 'o', 'r', \r
-      /* spacingcombiningmark */  's', 'p', 'a', 'c', 'i', 'n', 'g', 'c', 'o', 'm', 'b', 'i', 'n', 'i', 'n', 'g', 'm', 'a', 'r', 'k', \r
-      /* surrogate */  's', 'u', 'r', 'r', 'o', 'g', 'a', 't', 'e', \r
-      /* symbol */  's', 'y', 'm', 'b', 'o', 'l', \r
-      /* titlecase */  't', 'i', 't', 'l', 'e', 'c', 'a', 's', 'e', \r
-      /* titlecaseletter */  't', 'i', 't', 'l', 'e', 'c', 'a', 's', 'e', 'l', 'e', 't', 't', 'e', 'r', \r
-      /* uppercaseletter */  'u', 'p', 'p', 'e', 'r', 'c', 'a', 's', 'e', 'l', 'e', 't', 't', 'e', 'r', \r
-      /* z* */  'z', '*', \r
-      /* zl */  'z', 'l', \r
-      /* zp */  'z', 'p', \r
-      /* zs */  'z', 's', \r
-   };\r
-\r
-   static const re_detail::character_pointer_range< ::UChar32> range_data[] = {\r
-      { prop_name_table+0, prop_name_table+3, }, // any\r
-      { prop_name_table+3, prop_name_table+8, }, // ascii\r
-      { prop_name_table+8, prop_name_table+16, }, // assigned\r
-      { prop_name_table+16, prop_name_table+18, }, // c*\r
-      { prop_name_table+18, prop_name_table+20, }, // cc\r
-      { prop_name_table+20, prop_name_table+22, }, // cf\r
-      { prop_name_table+22, prop_name_table+38, }, // closepunctuation\r
-      { prop_name_table+38, prop_name_table+40, }, // cn\r
-      { prop_name_table+40, prop_name_table+42, }, // co\r
-      { prop_name_table+42, prop_name_table+62, }, // connectorpunctuation\r
-      { prop_name_table+62, prop_name_table+69, }, // control\r
-      { prop_name_table+69, prop_name_table+71, }, // cs\r
-      { prop_name_table+71, prop_name_table+85, }, // currencysymbol\r
-      { prop_name_table+85, prop_name_table+100, }, // dashpunctuation\r
-      { prop_name_table+100, prop_name_table+118, }, // decimaldigitnumber\r
-      { prop_name_table+118, prop_name_table+131, }, // enclosingmark\r
-      { prop_name_table+131, prop_name_table+147, }, // finalpunctuation\r
-      { prop_name_table+147, prop_name_table+153, }, // format\r
-      { prop_name_table+153, prop_name_table+171, }, // initialpunctuation\r
-      { prop_name_table+171, prop_name_table+173, }, // l*\r
-      { prop_name_table+173, prop_name_table+179, }, // letter\r
-      { prop_name_table+179, prop_name_table+191, }, // letternumber\r
-      { prop_name_table+191, prop_name_table+204, }, // lineseparator\r
-      { prop_name_table+204, prop_name_table+206, }, // ll\r
-      { prop_name_table+206, prop_name_table+208, }, // lm\r
-      { prop_name_table+208, prop_name_table+210, }, // lo\r
-      { prop_name_table+210, prop_name_table+225, }, // lowercaseletter\r
-      { prop_name_table+225, prop_name_table+227, }, // lt\r
-      { prop_name_table+227, prop_name_table+229, }, // lu\r
-      { prop_name_table+229, prop_name_table+231, }, // m*\r
-      { prop_name_table+231, prop_name_table+235, }, // mark\r
-      { prop_name_table+235, prop_name_table+245, }, // mathsymbol\r
-      { prop_name_table+245, prop_name_table+247, }, // mc\r
-      { prop_name_table+247, prop_name_table+249, }, // me\r
-      { prop_name_table+249, prop_name_table+251, }, // mn\r
-      { prop_name_table+251, prop_name_table+265, }, // modifierletter\r
-      { prop_name_table+265, prop_name_table+279, }, // modifiersymbol\r
-      { prop_name_table+279, prop_name_table+281, }, // n*\r
-      { prop_name_table+281, prop_name_table+283, }, // nd\r
-      { prop_name_table+283, prop_name_table+285, }, // nl\r
-      { prop_name_table+285, prop_name_table+287, }, // no\r
-      { prop_name_table+287, prop_name_table+301, }, // nonspacingmark\r
-      { prop_name_table+301, prop_name_table+312, }, // notassigned\r
-      { prop_name_table+312, prop_name_table+318, }, // number\r
-      { prop_name_table+318, prop_name_table+333, }, // openpunctuation\r
-      { prop_name_table+333, prop_name_table+338, }, // other\r
-      { prop_name_table+338, prop_name_table+349, }, // otherletter\r
-      { prop_name_table+349, prop_name_table+360, }, // othernumber\r
-      { prop_name_table+360, prop_name_table+376, }, // otherpunctuation\r
-      { prop_name_table+376, prop_name_table+387, }, // othersymbol\r
-      { prop_name_table+387, prop_name_table+389, }, // p*\r
-      { prop_name_table+389, prop_name_table+407, }, // paragraphseparator\r
-      { prop_name_table+407, prop_name_table+409, }, // pc\r
-      { prop_name_table+409, prop_name_table+411, }, // pd\r
-      { prop_name_table+411, prop_name_table+413, }, // pe\r
-      { prop_name_table+413, prop_name_table+415, }, // pf\r
-      { prop_name_table+415, prop_name_table+417, }, // pi\r
-      { prop_name_table+417, prop_name_table+419, }, // po\r
-      { prop_name_table+419, prop_name_table+429, }, // privateuse\r
-      { prop_name_table+429, prop_name_table+431, }, // ps\r
-      { prop_name_table+431, prop_name_table+442, }, // punctuation\r
-      { prop_name_table+442, prop_name_table+444, }, // s*\r
-      { prop_name_table+444, prop_name_table+446, }, // sc\r
-      { prop_name_table+446, prop_name_table+455, }, // separator\r
-      { prop_name_table+455, prop_name_table+457, }, // sk\r
-      { prop_name_table+457, prop_name_table+459, }, // sm\r
-      { prop_name_table+459, prop_name_table+461, }, // so\r
-      { prop_name_table+461, prop_name_table+475, }, // spaceseparator\r
-      { prop_name_table+475, prop_name_table+495, }, // spacingcombiningmark\r
-      { prop_name_table+495, prop_name_table+504, }, // surrogate\r
-      { prop_name_table+504, prop_name_table+510, }, // symbol\r
-      { prop_name_table+510, prop_name_table+519, }, // titlecase\r
-      { prop_name_table+519, prop_name_table+534, }, // titlecaseletter\r
-      { prop_name_table+534, prop_name_table+549, }, // uppercaseletter\r
-      { prop_name_table+549, prop_name_table+551, }, // z*\r
-      { prop_name_table+551, prop_name_table+553, }, // zl\r
-      { prop_name_table+553, prop_name_table+555, }, // zp\r
-      { prop_name_table+555, prop_name_table+557, }, // zs\r
-   };\r
-\r
-   static const icu_regex_traits::char_class_type icu_class_map[] = {\r
-      icu_regex_traits::mask_any, // any\r
-      icu_regex_traits::mask_ascii, // ascii\r
-      (0x3FFFFFFFu) & ~(U_GC_CN_MASK), // assigned\r
-      U_GC_C_MASK, // c*\r
-      U_GC_CC_MASK, // cc\r
-      U_GC_CF_MASK, // cf\r
-      U_GC_PE_MASK, // closepunctuation\r
-      U_GC_CN_MASK, // cn\r
-      U_GC_CO_MASK, // co\r
-      U_GC_PC_MASK, // connectorpunctuation\r
-      U_GC_CC_MASK, // control\r
-      U_GC_CS_MASK, // cs\r
-      U_GC_SC_MASK, // currencysymbol\r
-      U_GC_PD_MASK, // dashpunctuation\r
-      U_GC_ND_MASK, // decimaldigitnumber\r
-      U_GC_ME_MASK, // enclosingmark\r
-      U_GC_PF_MASK, // finalpunctuation\r
-      U_GC_CF_MASK, // format\r
-      U_GC_PI_MASK, // initialpunctuation\r
-      U_GC_L_MASK, // l*\r
-      U_GC_L_MASK, // letter\r
-      U_GC_NL_MASK, // letternumber\r
-      U_GC_ZL_MASK, // lineseparator\r
-      U_GC_LL_MASK, // ll\r
-      U_GC_LM_MASK, // lm\r
-      U_GC_LO_MASK, // lo\r
-      U_GC_LL_MASK, // lowercaseletter\r
-      U_GC_LT_MASK, // lt\r
-      U_GC_LU_MASK, // lu\r
-      U_GC_M_MASK, // m*\r
-      U_GC_M_MASK, // mark\r
-      U_GC_SM_MASK, // mathsymbol\r
-      U_GC_MC_MASK, // mc\r
-      U_GC_ME_MASK, // me\r
-      U_GC_MN_MASK, // mn\r
-      U_GC_LM_MASK, // modifierletter\r
-      U_GC_SK_MASK, // modifiersymbol\r
-      U_GC_N_MASK, // n*\r
-      U_GC_ND_MASK, // nd\r
-      U_GC_NL_MASK, // nl\r
-      U_GC_NO_MASK, // no\r
-      U_GC_MN_MASK, // nonspacingmark\r
-      U_GC_CN_MASK, // notassigned\r
-      U_GC_N_MASK, // number\r
-      U_GC_PS_MASK, // openpunctuation\r
-      U_GC_C_MASK, // other\r
-      U_GC_LO_MASK, // otherletter\r
-      U_GC_NO_MASK, // othernumber\r
-      U_GC_PO_MASK, // otherpunctuation\r
-      U_GC_SO_MASK, // othersymbol\r
-      U_GC_P_MASK, // p*\r
-      U_GC_ZP_MASK, // paragraphseparator\r
-      U_GC_PC_MASK, // pc\r
-      U_GC_PD_MASK, // pd\r
-      U_GC_PE_MASK, // pe\r
-      U_GC_PF_MASK, // pf\r
-      U_GC_PI_MASK, // pi\r
-      U_GC_PO_MASK, // po\r
-      U_GC_CO_MASK, // privateuse\r
-      U_GC_PS_MASK, // ps\r
-      U_GC_P_MASK, // punctuation\r
-      U_GC_S_MASK, // s*\r
-      U_GC_SC_MASK, // sc\r
-      U_GC_Z_MASK, // separator\r
-      U_GC_SK_MASK, // sk\r
-      U_GC_SM_MASK, // sm\r
-      U_GC_SO_MASK, // so\r
-      U_GC_ZS_MASK, // spaceseparator\r
-      U_GC_MC_MASK, // spacingcombiningmark\r
-      U_GC_CS_MASK, // surrogate\r
-      U_GC_S_MASK, // symbol\r
-      U_GC_LT_MASK, // titlecase\r
-      U_GC_LT_MASK, // titlecaseletter\r
-      U_GC_LU_MASK, // uppercaseletter\r
-      U_GC_Z_MASK, // z*\r
-      U_GC_ZL_MASK, // zl\r
-      U_GC_ZP_MASK, // zp\r
-      U_GC_ZS_MASK, // zs\r
-   };\r
-\r
-\r
-   static const re_detail::character_pointer_range< ::UChar32>* ranges_begin = range_data;\r
-   static const re_detail::character_pointer_range< ::UChar32>* ranges_end = range_data + (sizeof(range_data)/sizeof(range_data[0]));\r
-   \r
-   re_detail::character_pointer_range< ::UChar32> t = { p1, p2, };\r
-   const re_detail::character_pointer_range< ::UChar32>* p = std::lower_bound(ranges_begin, ranges_end, t);\r
-   if((p != ranges_end) && (t == *p))\r
-      return icu_class_map[p - ranges_begin];\r
-   return 0;\r
-}\r
-\r
-icu_regex_traits::char_class_type icu_regex_traits::lookup_classname(const char_type* p1, const char_type* p2) const\r
-{\r
-   static const char_class_type masks[] = \r
-   {\r
-      0,\r
-      U_GC_L_MASK | U_GC_ND_MASK, \r
-      U_GC_L_MASK,\r
-      mask_blank,\r
-      U_GC_CC_MASK | U_GC_CF_MASK | U_GC_ZL_MASK | U_GC_ZP_MASK,\r
-      U_GC_ND_MASK,\r
-      U_GC_ND_MASK,\r
-      (0x3FFFFFFFu) & ~(U_GC_CC_MASK | U_GC_CF_MASK | U_GC_CS_MASK | U_GC_CN_MASK | U_GC_Z_MASK),\r
-      mask_horizontal,\r
-      U_GC_LL_MASK,\r
-      U_GC_LL_MASK,\r
-      ~(U_GC_C_MASK),\r
-      U_GC_P_MASK,\r
-      char_class_type(U_GC_Z_MASK) | mask_space,\r
-      char_class_type(U_GC_Z_MASK) | mask_space,\r
-      U_GC_LU_MASK,\r
-      mask_unicode,\r
-      U_GC_LU_MASK,\r
-      mask_vertical,\r
-      char_class_type(U_GC_L_MASK | U_GC_ND_MASK | U_GC_MN_MASK) | mask_underscore, \r
-      char_class_type(U_GC_L_MASK | U_GC_ND_MASK | U_GC_MN_MASK) | mask_underscore, \r
-      char_class_type(U_GC_ND_MASK) | mask_xdigit,\r
-   };\r
-\r
-   int id = ::boost::re_detail::get_default_class_id(p1, p2);\r
-   if(id >= 0)\r
-      return masks[id+1];\r
-   char_class_type result = lookup_icu_mask(p1, p2);\r
-   if(result != 0)\r
-      return result;\r
-\r
-   if(id < 0)\r
-   {\r
-      string_type s(p1, p2);\r
-      string_type::size_type i = 0;\r
-      while(i < s.size())\r
-      {\r
-         s[i] = static_cast<char>((::u_tolower)(s[i]));\r
-         if(::u_isspace(s[i]) || (s[i] == '-') || (s[i] == '_'))\r
-            s.erase(s.begin()+i, s.begin()+i+1);\r
-         else\r
-         {\r
-            s[i] = static_cast<char>((::u_tolower)(s[i]));\r
-            ++i;\r
-         }\r
-      }\r
-      if(s.size())\r
-         id = ::boost::re_detail::get_default_class_id(&*s.begin(), &*s.begin() + s.size());\r
-      if(id >= 0)\r
-         return masks[id+1];\r
-      if(s.size())\r
-         result = lookup_icu_mask(&*s.begin(), &*s.begin() + s.size());\r
-      if(result != 0)\r
-         return result;\r
-   }\r
-   BOOST_ASSERT(std::size_t(id+1) < sizeof(masks) / sizeof(masks[0]));\r
-   return masks[id+1];\r
-}\r
-\r
-icu_regex_traits::string_type icu_regex_traits::lookup_collatename(const char_type* p1, const char_type* p2) const\r
-{\r
-   string_type result;\r
-   if(std::find_if(p1, p2, std::bind2nd(std::greater< ::UChar32>(), 0x7f)) == p2)\r
-   {\r
-#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS\r
-      std::string s(p1, p2);\r
-#else\r
-      std::string s;\r
-      const char_type* p3 = p1;\r
-      while(p3 != p2)\r
-         s.append(1, *p3++);\r
-#endif\r
-      // Try Unicode name:\r
-      UErrorCode err = U_ZERO_ERROR;\r
-      UChar32 c = ::u_charFromName(U_UNICODE_CHAR_NAME, s.c_str(), &err);\r
-      if(U_SUCCESS(err))\r
-      {\r
-         result.push_back(c);\r
-         return result;\r
-      }\r
-      // Try Unicode-extended name:\r
-      err = U_ZERO_ERROR;\r
-      c = ::u_charFromName(U_EXTENDED_CHAR_NAME, s.c_str(), &err);\r
-      if(U_SUCCESS(err))\r
-      {\r
-         result.push_back(c);\r
-         return result;\r
-      }\r
-      // try POSIX name:\r
-      s = ::boost::re_detail::lookup_default_collate_name(s);\r
-#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS\r
-      result.assign(s.begin(), s.end());\r
-#else\r
-      result.clear();\r
-      std::string::const_iterator si, sj;\r
-      si = s.begin();\r
-      sj = s.end();\r
-      while(si != sj)\r
-         result.push_back(*si++);\r
-#endif\r
-   }\r
-   if(result.empty() && (p2-p1 == 1))\r
-      result.push_back(*p1);\r
-   return result;\r
-}\r
-\r
-bool icu_regex_traits::isctype(char_type c, char_class_type f) const\r
-{\r
-   // check for standard catagories first:\r
-   char_class_type m = char_class_type(1u << u_charType(c));\r
-   if((m & f) != 0) \r
-      return true;\r
-   // now check for special cases:\r
-   if(((f & mask_blank) != 0) && u_isblank(c))\r
-      return true;\r
-   if(((f & mask_space) != 0) && u_isspace(c))\r
-      return true;\r
-   if(((f & mask_xdigit) != 0) && (u_digit(c, 16) >= 0))\r
-      return true;\r
-   if(((f & mask_unicode) != 0) && (c >= 0x100))\r
-      return true;\r
-   if(((f & mask_underscore) != 0) && (c == '_'))\r
-      return true;\r
-   if(((f & mask_any) != 0) && (c <= 0x10FFFF))\r
-      return true;\r
-   if(((f & mask_ascii) != 0) && (c <= 0x7F))\r
-      return true;\r
-   if(((f & mask_vertical) != 0) && (::boost::re_detail::is_separator(c) || (c == static_cast<char_type>('\v')) || (m == U_GC_ZL_MASK) || (m == U_GC_ZP_MASK)))\r
-      return true;\r
-   if(((f & mask_horizontal) != 0) && !::boost::re_detail::is_separator(c) && u_isspace(c) && (c != static_cast<char_type>('\v')))\r
-      return true;\r
-   return false;\r
-}\r
-\r
-}\r
-\r
-#endif // BOOST_HAS_ICU\r
+/*
+ *
+ * Copyright (c) 2004
+ * John Maddock
+ *
+ * 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)
+ *
+ */
+
+ /*
+  *   LOCATION:    see http://www.boost.org for most recent version.
+  *   FILE         icu.cpp
+  *   VERSION      see <boost/version.hpp>
+  *   DESCRIPTION: Unicode regular expressions on top of the ICU Library.
+  */
+#define BOOST_REGEX_SOURCE
+
+#include <boost/regex/config.hpp>
+#ifdef BOOST_HAS_ICU
+#define BOOST_REGEX_ICU_INSTANTIATE
+#include <boost/regex/icu.hpp>
+
+namespace boost{
+
+namespace re_detail{
+
+icu_regex_traits_implementation::string_type icu_regex_traits_implementation::do_transform(const char_type* p1, const char_type* p2, const U_NAMESPACE_QUALIFIER Collator* pcoll) const
+{
+   // TODO make thread safe!!!! :
+   typedef u32_to_u16_iterator<const char_type*, ::UChar> itt;
+   itt i(p1), j(p2);
+#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+   std::vector< ::UChar> t(i, j);
+#else
+   std::vector< ::UChar> t;
+   while(i != j)
+      t.push_back(*i++);
+#endif
+   ::uint8_t result[100];
+   ::int32_t len;
+   if(t.size())
+      len = pcoll->getSortKey(&*t.begin(), static_cast< ::int32_t>(t.size()), result, sizeof(result));
+   else
+      len = pcoll->getSortKey(static_cast<UChar const*>(0), static_cast< ::int32_t>(0), result, sizeof(result));
+   if(std::size_t(len) > sizeof(result))
+   {
+      scoped_array< ::uint8_t> presult(new ::uint8_t[len+1]);
+      if(t.size())
+         len = pcoll->getSortKey(&*t.begin(), static_cast< ::int32_t>(t.size()), presult.get(), len+1);
+      else
+         len = pcoll->getSortKey(static_cast<UChar const*>(0), static_cast< ::int32_t>(0), presult.get(), len+1);
+      if((0 == presult[len-1]) && (len > 1))
+         --len;
+#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+      return string_type(presult.get(), presult.get()+len);
+#else
+      string_type sresult;
+      ::uint8_t const* ia = presult.get();
+      ::uint8_t const* ib = presult.get()+len;
+      while(ia != ib)
+         sresult.push_back(*ia++);
+      return sresult;
+#endif
+   }
+   if((0 == result[len-1]) && (len > 1))
+      --len;
+#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+   return string_type(result, result+len);
+#else
+   string_type sresult;
+   ::uint8_t const* ia = result;
+   ::uint8_t const* ib = result+len;
+   while(ia != ib)
+      sresult.push_back(*ia++);
+   return sresult;
+#endif
+}
+
+}
+
+icu_regex_traits::size_type icu_regex_traits::length(const char_type* p)
+{
+   size_type result = 0;
+   while(*p)
+   {
+      ++p;
+      ++result;
+   }
+   return result;
+}
+
+//
+// define our bitmasks:
+//
+const icu_regex_traits::char_class_type icu_regex_traits::mask_blank = icu_regex_traits::char_class_type(1) << offset_blank;
+const icu_regex_traits::char_class_type icu_regex_traits::mask_space = icu_regex_traits::char_class_type(1) << offset_space;
+const icu_regex_traits::char_class_type icu_regex_traits::mask_xdigit = icu_regex_traits::char_class_type(1) << offset_xdigit;
+const icu_regex_traits::char_class_type icu_regex_traits::mask_underscore = icu_regex_traits::char_class_type(1) << offset_underscore;
+const icu_regex_traits::char_class_type icu_regex_traits::mask_unicode = icu_regex_traits::char_class_type(1) << offset_unicode;
+const icu_regex_traits::char_class_type icu_regex_traits::mask_any = icu_regex_traits::char_class_type(1) << offset_any;
+const icu_regex_traits::char_class_type icu_regex_traits::mask_ascii = icu_regex_traits::char_class_type(1) << offset_ascii;
+const icu_regex_traits::char_class_type icu_regex_traits::mask_horizontal = icu_regex_traits::char_class_type(1) << offset_horizontal;
+const icu_regex_traits::char_class_type icu_regex_traits::mask_vertical = icu_regex_traits::char_class_type(1) << offset_vertical;
+
+icu_regex_traits::char_class_type icu_regex_traits::lookup_icu_mask(const ::UChar32* p1, const ::UChar32* p2)
+{
+   static const ::UChar32 prop_name_table[] = {
+      /* any */  'a', 'n', 'y', 
+      /* ascii */  'a', 's', 'c', 'i', 'i', 
+      /* assigned */  'a', 's', 's', 'i', 'g', 'n', 'e', 'd', 
+      /* c* */  'c', '*', 
+      /* cc */  'c', 'c', 
+      /* cf */  'c', 'f', 
+      /* closepunctuation */  'c', 'l', 'o', 's', 'e', 'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', 
+      /* cn */  'c', 'n', 
+      /* co */  'c', 'o', 
+      /* connectorpunctuation */  'c', 'o', 'n', 'n', 'e', 'c', 't', 'o', 'r', 'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', 
+      /* control */  'c', 'o', 'n', 't', 'r', 'o', 'l', 
+      /* cs */  'c', 's', 
+      /* currencysymbol */  'c', 'u', 'r', 'r', 'e', 'n', 'c', 'y', 's', 'y', 'm', 'b', 'o', 'l', 
+      /* dashpunctuation */  'd', 'a', 's', 'h', 'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', 
+      /* decimaldigitnumber */  'd', 'e', 'c', 'i', 'm', 'a', 'l', 'd', 'i', 'g', 'i', 't', 'n', 'u', 'm', 'b', 'e', 'r', 
+      /* enclosingmark */  'e', 'n', 'c', 'l', 'o', 's', 'i', 'n', 'g', 'm', 'a', 'r', 'k', 
+      /* finalpunctuation */  'f', 'i', 'n', 'a', 'l', 'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', 
+      /* format */  'f', 'o', 'r', 'm', 'a', 't', 
+      /* initialpunctuation */  'i', 'n', 'i', 't', 'i', 'a', 'l', 'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', 
+      /* l* */  'l', '*', 
+      /* letter */  'l', 'e', 't', 't', 'e', 'r', 
+      /* letternumber */  'l', 'e', 't', 't', 'e', 'r', 'n', 'u', 'm', 'b', 'e', 'r', 
+      /* lineseparator */  'l', 'i', 'n', 'e', 's', 'e', 'p', 'a', 'r', 'a', 't', 'o', 'r', 
+      /* ll */  'l', 'l', 
+      /* lm */  'l', 'm', 
+      /* lo */  'l', 'o', 
+      /* lowercaseletter */  'l', 'o', 'w', 'e', 'r', 'c', 'a', 's', 'e', 'l', 'e', 't', 't', 'e', 'r', 
+      /* lt */  'l', 't', 
+      /* lu */  'l', 'u', 
+      /* m* */  'm', '*', 
+      /* mark */  'm', 'a', 'r', 'k', 
+      /* mathsymbol */  'm', 'a', 't', 'h', 's', 'y', 'm', 'b', 'o', 'l', 
+      /* mc */  'm', 'c', 
+      /* me */  'm', 'e', 
+      /* mn */  'm', 'n', 
+      /* modifierletter */  'm', 'o', 'd', 'i', 'f', 'i', 'e', 'r', 'l', 'e', 't', 't', 'e', 'r', 
+      /* modifiersymbol */  'm', 'o', 'd', 'i', 'f', 'i', 'e', 'r', 's', 'y', 'm', 'b', 'o', 'l', 
+      /* n* */  'n', '*', 
+      /* nd */  'n', 'd', 
+      /* nl */  'n', 'l', 
+      /* no */  'n', 'o', 
+      /* nonspacingmark */  'n', 'o', 'n', 's', 'p', 'a', 'c', 'i', 'n', 'g', 'm', 'a', 'r', 'k', 
+      /* notassigned */  'n', 'o', 't', 'a', 's', 's', 'i', 'g', 'n', 'e', 'd', 
+      /* number */  'n', 'u', 'm', 'b', 'e', 'r', 
+      /* openpunctuation */  'o', 'p', 'e', 'n', 'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', 
+      /* other */  'o', 't', 'h', 'e', 'r', 
+      /* otherletter */  'o', 't', 'h', 'e', 'r', 'l', 'e', 't', 't', 'e', 'r', 
+      /* othernumber */  'o', 't', 'h', 'e', 'r', 'n', 'u', 'm', 'b', 'e', 'r', 
+      /* otherpunctuation */  'o', 't', 'h', 'e', 'r', 'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', 
+      /* othersymbol */  'o', 't', 'h', 'e', 'r', 's', 'y', 'm', 'b', 'o', 'l', 
+      /* p* */  'p', '*', 
+      /* paragraphseparator */  'p', 'a', 'r', 'a', 'g', 'r', 'a', 'p', 'h', 's', 'e', 'p', 'a', 'r', 'a', 't', 'o', 'r', 
+      /* pc */  'p', 'c', 
+      /* pd */  'p', 'd', 
+      /* pe */  'p', 'e', 
+      /* pf */  'p', 'f', 
+      /* pi */  'p', 'i', 
+      /* po */  'p', 'o', 
+      /* privateuse */  'p', 'r', 'i', 'v', 'a', 't', 'e', 'u', 's', 'e', 
+      /* ps */  'p', 's', 
+      /* punctuation */  'p', 'u', 'n', 'c', 't', 'u', 'a', 't', 'i', 'o', 'n', 
+      /* s* */  's', '*', 
+      /* sc */  's', 'c', 
+      /* separator */  's', 'e', 'p', 'a', 'r', 'a', 't', 'o', 'r', 
+      /* sk */  's', 'k', 
+      /* sm */  's', 'm', 
+      /* so */  's', 'o', 
+      /* spaceseparator */  's', 'p', 'a', 'c', 'e', 's', 'e', 'p', 'a', 'r', 'a', 't', 'o', 'r', 
+      /* spacingcombiningmark */  's', 'p', 'a', 'c', 'i', 'n', 'g', 'c', 'o', 'm', 'b', 'i', 'n', 'i', 'n', 'g', 'm', 'a', 'r', 'k', 
+      /* surrogate */  's', 'u', 'r', 'r', 'o', 'g', 'a', 't', 'e', 
+      /* symbol */  's', 'y', 'm', 'b', 'o', 'l', 
+      /* titlecase */  't', 'i', 't', 'l', 'e', 'c', 'a', 's', 'e', 
+      /* titlecaseletter */  't', 'i', 't', 'l', 'e', 'c', 'a', 's', 'e', 'l', 'e', 't', 't', 'e', 'r', 
+      /* uppercaseletter */  'u', 'p', 'p', 'e', 'r', 'c', 'a', 's', 'e', 'l', 'e', 't', 't', 'e', 'r', 
+      /* z* */  'z', '*', 
+      /* zl */  'z', 'l', 
+      /* zp */  'z', 'p', 
+      /* zs */  'z', 's', 
+   };
+
+   static const re_detail::character_pointer_range< ::UChar32> range_data[] = {
+      { prop_name_table+0, prop_name_table+3, }, // any
+      { prop_name_table+3, prop_name_table+8, }, // ascii
+      { prop_name_table+8, prop_name_table+16, }, // assigned
+      { prop_name_table+16, prop_name_table+18, }, // c*
+      { prop_name_table+18, prop_name_table+20, }, // cc
+      { prop_name_table+20, prop_name_table+22, }, // cf
+      { prop_name_table+22, prop_name_table+38, }, // closepunctuation
+      { prop_name_table+38, prop_name_table+40, }, // cn
+      { prop_name_table+40, prop_name_table+42, }, // co
+      { prop_name_table+42, prop_name_table+62, }, // connectorpunctuation
+      { prop_name_table+62, prop_name_table+69, }, // control
+      { prop_name_table+69, prop_name_table+71, }, // cs
+      { prop_name_table+71, prop_name_table+85, }, // currencysymbol
+      { prop_name_table+85, prop_name_table+100, }, // dashpunctuation
+      { prop_name_table+100, prop_name_table+118, }, // decimaldigitnumber
+      { prop_name_table+118, prop_name_table+131, }, // enclosingmark
+      { prop_name_table+131, prop_name_table+147, }, // finalpunctuation
+      { prop_name_table+147, prop_name_table+153, }, // format
+      { prop_name_table+153, prop_name_table+171, }, // initialpunctuation
+      { prop_name_table+171, prop_name_table+173, }, // l*
+      { prop_name_table+173, prop_name_table+179, }, // letter
+      { prop_name_table+179, prop_name_table+191, }, // letternumber
+      { prop_name_table+191, prop_name_table+204, }, // lineseparator
+      { prop_name_table+204, prop_name_table+206, }, // ll
+      { prop_name_table+206, prop_name_table+208, }, // lm
+      { prop_name_table+208, prop_name_table+210, }, // lo
+      { prop_name_table+210, prop_name_table+225, }, // lowercaseletter
+      { prop_name_table+225, prop_name_table+227, }, // lt
+      { prop_name_table+227, prop_name_table+229, }, // lu
+      { prop_name_table+229, prop_name_table+231, }, // m*
+      { prop_name_table+231, prop_name_table+235, }, // mark
+      { prop_name_table+235, prop_name_table+245, }, // mathsymbol
+      { prop_name_table+245, prop_name_table+247, }, // mc
+      { prop_name_table+247, prop_name_table+249, }, // me
+      { prop_name_table+249, prop_name_table+251, }, // mn
+      { prop_name_table+251, prop_name_table+265, }, // modifierletter
+      { prop_name_table+265, prop_name_table+279, }, // modifiersymbol
+      { prop_name_table+279, prop_name_table+281, }, // n*
+      { prop_name_table+281, prop_name_table+283, }, // nd
+      { prop_name_table+283, prop_name_table+285, }, // nl
+      { prop_name_table+285, prop_name_table+287, }, // no
+      { prop_name_table+287, prop_name_table+301, }, // nonspacingmark
+      { prop_name_table+301, prop_name_table+312, }, // notassigned
+      { prop_name_table+312, prop_name_table+318, }, // number
+      { prop_name_table+318, prop_name_table+333, }, // openpunctuation
+      { prop_name_table+333, prop_name_table+338, }, // other
+      { prop_name_table+338, prop_name_table+349, }, // otherletter
+      { prop_name_table+349, prop_name_table+360, }, // othernumber
+      { prop_name_table+360, prop_name_table+376, }, // otherpunctuation
+      { prop_name_table+376, prop_name_table+387, }, // othersymbol
+      { prop_name_table+387, prop_name_table+389, }, // p*
+      { prop_name_table+389, prop_name_table+407, }, // paragraphseparator
+      { prop_name_table+407, prop_name_table+409, }, // pc
+      { prop_name_table+409, prop_name_table+411, }, // pd
+      { prop_name_table+411, prop_name_table+413, }, // pe
+      { prop_name_table+413, prop_name_table+415, }, // pf
+      { prop_name_table+415, prop_name_table+417, }, // pi
+      { prop_name_table+417, prop_name_table+419, }, // po
+      { prop_name_table+419, prop_name_table+429, }, // privateuse
+      { prop_name_table+429, prop_name_table+431, }, // ps
+      { prop_name_table+431, prop_name_table+442, }, // punctuation
+      { prop_name_table+442, prop_name_table+444, }, // s*
+      { prop_name_table+444, prop_name_table+446, }, // sc
+      { prop_name_table+446, prop_name_table+455, }, // separator
+      { prop_name_table+455, prop_name_table+457, }, // sk
+      { prop_name_table+457, prop_name_table+459, }, // sm
+      { prop_name_table+459, prop_name_table+461, }, // so
+      { prop_name_table+461, prop_name_table+475, }, // spaceseparator
+      { prop_name_table+475, prop_name_table+495, }, // spacingcombiningmark
+      { prop_name_table+495, prop_name_table+504, }, // surrogate
+      { prop_name_table+504, prop_name_table+510, }, // symbol
+      { prop_name_table+510, prop_name_table+519, }, // titlecase
+      { prop_name_table+519, prop_name_table+534, }, // titlecaseletter
+      { prop_name_table+534, prop_name_table+549, }, // uppercaseletter
+      { prop_name_table+549, prop_name_table+551, }, // z*
+      { prop_name_table+551, prop_name_table+553, }, // zl
+      { prop_name_table+553, prop_name_table+555, }, // zp
+      { prop_name_table+555, prop_name_table+557, }, // zs
+   };
+
+   static const icu_regex_traits::char_class_type icu_class_map[] = {
+      icu_regex_traits::mask_any, // any
+      icu_regex_traits::mask_ascii, // ascii
+      (0x3FFFFFFFu) & ~(U_GC_CN_MASK), // assigned
+      U_GC_C_MASK, // c*
+      U_GC_CC_MASK, // cc
+      U_GC_CF_MASK, // cf
+      U_GC_PE_MASK, // closepunctuation
+      U_GC_CN_MASK, // cn
+      U_GC_CO_MASK, // co
+      U_GC_PC_MASK, // connectorpunctuation
+      U_GC_CC_MASK, // control
+      U_GC_CS_MASK, // cs
+      U_GC_SC_MASK, // currencysymbol
+      U_GC_PD_MASK, // dashpunctuation
+      U_GC_ND_MASK, // decimaldigitnumber
+      U_GC_ME_MASK, // enclosingmark
+      U_GC_PF_MASK, // finalpunctuation
+      U_GC_CF_MASK, // format
+      U_GC_PI_MASK, // initialpunctuation
+      U_GC_L_MASK, // l*
+      U_GC_L_MASK, // letter
+      U_GC_NL_MASK, // letternumber
+      U_GC_ZL_MASK, // lineseparator
+      U_GC_LL_MASK, // ll
+      U_GC_LM_MASK, // lm
+      U_GC_LO_MASK, // lo
+      U_GC_LL_MASK, // lowercaseletter
+      U_GC_LT_MASK, // lt
+      U_GC_LU_MASK, // lu
+      U_GC_M_MASK, // m*
+      U_GC_M_MASK, // mark
+      U_GC_SM_MASK, // mathsymbol
+      U_GC_MC_MASK, // mc
+      U_GC_ME_MASK, // me
+      U_GC_MN_MASK, // mn
+      U_GC_LM_MASK, // modifierletter
+      U_GC_SK_MASK, // modifiersymbol
+      U_GC_N_MASK, // n*
+      U_GC_ND_MASK, // nd
+      U_GC_NL_MASK, // nl
+      U_GC_NO_MASK, // no
+      U_GC_MN_MASK, // nonspacingmark
+      U_GC_CN_MASK, // notassigned
+      U_GC_N_MASK, // number
+      U_GC_PS_MASK, // openpunctuation
+      U_GC_C_MASK, // other
+      U_GC_LO_MASK, // otherletter
+      U_GC_NO_MASK, // othernumber
+      U_GC_PO_MASK, // otherpunctuation
+      U_GC_SO_MASK, // othersymbol
+      U_GC_P_MASK, // p*
+      U_GC_ZP_MASK, // paragraphseparator
+      U_GC_PC_MASK, // pc
+      U_GC_PD_MASK, // pd
+      U_GC_PE_MASK, // pe
+      U_GC_PF_MASK, // pf
+      U_GC_PI_MASK, // pi
+      U_GC_PO_MASK, // po
+      U_GC_CO_MASK, // privateuse
+      U_GC_PS_MASK, // ps
+      U_GC_P_MASK, // punctuation
+      U_GC_S_MASK, // s*
+      U_GC_SC_MASK, // sc
+      U_GC_Z_MASK, // separator
+      U_GC_SK_MASK, // sk
+      U_GC_SM_MASK, // sm
+      U_GC_SO_MASK, // so
+      U_GC_ZS_MASK, // spaceseparator
+      U_GC_MC_MASK, // spacingcombiningmark
+      U_GC_CS_MASK, // surrogate
+      U_GC_S_MASK, // symbol
+      U_GC_LT_MASK, // titlecase
+      U_GC_LT_MASK, // titlecaseletter
+      U_GC_LU_MASK, // uppercaseletter
+      U_GC_Z_MASK, // z*
+      U_GC_ZL_MASK, // zl
+      U_GC_ZP_MASK, // zp
+      U_GC_ZS_MASK, // zs
+   };
+
+
+   static const re_detail::character_pointer_range< ::UChar32>* ranges_begin = range_data;
+   static const re_detail::character_pointer_range< ::UChar32>* ranges_end = range_data + (sizeof(range_data)/sizeof(range_data[0]));
+   
+   re_detail::character_pointer_range< ::UChar32> t = { p1, p2, };
+   const re_detail::character_pointer_range< ::UChar32>* p = std::lower_bound(ranges_begin, ranges_end, t);
+   if((p != ranges_end) && (t == *p))
+      return icu_class_map[p - ranges_begin];
+   return 0;
+}
+
+icu_regex_traits::char_class_type icu_regex_traits::lookup_classname(const char_type* p1, const char_type* p2) const
+{
+   static const char_class_type masks[] = 
+   {
+      0,
+      U_GC_L_MASK | U_GC_ND_MASK, 
+      U_GC_L_MASK,
+      mask_blank,
+      U_GC_CC_MASK | U_GC_CF_MASK | U_GC_ZL_MASK | U_GC_ZP_MASK,
+      U_GC_ND_MASK,
+      U_GC_ND_MASK,
+      (0x3FFFFFFFu) & ~(U_GC_CC_MASK | U_GC_CF_MASK | U_GC_CS_MASK | U_GC_CN_MASK | U_GC_Z_MASK),
+      mask_horizontal,
+      U_GC_LL_MASK,
+      U_GC_LL_MASK,
+      ~(U_GC_C_MASK),
+      U_GC_P_MASK,
+      char_class_type(U_GC_Z_MASK) | mask_space,
+      char_class_type(U_GC_Z_MASK) | mask_space,
+      U_GC_LU_MASK,
+      mask_unicode,
+      U_GC_LU_MASK,
+      mask_vertical,
+      char_class_type(U_GC_L_MASK | U_GC_ND_MASK | U_GC_MN_MASK) | mask_underscore, 
+      char_class_type(U_GC_L_MASK | U_GC_ND_MASK | U_GC_MN_MASK) | mask_underscore, 
+      char_class_type(U_GC_ND_MASK) | mask_xdigit,
+   };
+
+   int id = ::boost::re_detail::get_default_class_id(p1, p2);
+   if(id >= 0)
+      return masks[id+1];
+   char_class_type result = lookup_icu_mask(p1, p2);
+   if(result != 0)
+      return result;
+
+   if(id < 0)
+   {
+      string_type s(p1, p2);
+      string_type::size_type i = 0;
+      while(i < s.size())
+      {
+         s[i] = static_cast<char>((::u_tolower)(s[i]));
+         if(::u_isspace(s[i]) || (s[i] == '-') || (s[i] == '_'))
+            s.erase(s.begin()+i, s.begin()+i+1);
+         else
+         {
+            s[i] = static_cast<char>((::u_tolower)(s[i]));
+            ++i;
+         }
+      }
+      if(s.size())
+         id = ::boost::re_detail::get_default_class_id(&*s.begin(), &*s.begin() + s.size());
+      if(id >= 0)
+         return masks[id+1];
+      if(s.size())
+         result = lookup_icu_mask(&*s.begin(), &*s.begin() + s.size());
+      if(result != 0)
+         return result;
+   }
+   BOOST_ASSERT(std::size_t(id+1) < sizeof(masks) / sizeof(masks[0]));
+   return masks[id+1];
+}
+
+icu_regex_traits::string_type icu_regex_traits::lookup_collatename(const char_type* p1, const char_type* p2) const
+{
+   string_type result;
+   if(std::find_if(p1, p2, std::bind2nd(std::greater< ::UChar32>(), 0x7f)) == p2)
+   {
+#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+      std::string s(p1, p2);
+#else
+      std::string s;
+      const char_type* p3 = p1;
+      while(p3 != p2)
+         s.append(1, *p3++);
+#endif
+      // Try Unicode name:
+      UErrorCode err = U_ZERO_ERROR;
+      UChar32 c = ::u_charFromName(U_UNICODE_CHAR_NAME, s.c_str(), &err);
+      if(U_SUCCESS(err))
+      {
+         result.push_back(c);
+         return result;
+      }
+      // Try Unicode-extended name:
+      err = U_ZERO_ERROR;
+      c = ::u_charFromName(U_EXTENDED_CHAR_NAME, s.c_str(), &err);
+      if(U_SUCCESS(err))
+      {
+         result.push_back(c);
+         return result;
+      }
+      // try POSIX name:
+      s = ::boost::re_detail::lookup_default_collate_name(s);
+#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+      result.assign(s.begin(), s.end());
+#else
+      result.clear();
+      std::string::const_iterator si, sj;
+      si = s.begin();
+      sj = s.end();
+      while(si != sj)
+         result.push_back(*si++);
+#endif
+   }
+   if(result.empty() && (p2-p1 == 1))
+      result.push_back(*p1);
+   return result;
+}
+
+bool icu_regex_traits::isctype(char_type c, char_class_type f) const
+{
+   // check for standard catagories first:
+   char_class_type m = char_class_type(1u << u_charType(c));
+   if((m & f) != 0) 
+      return true;
+   // now check for special cases:
+   if(((f & mask_blank) != 0) && u_isblank(c))
+      return true;
+   if(((f & mask_space) != 0) && u_isspace(c))
+      return true;
+   if(((f & mask_xdigit) != 0) && (u_digit(c, 16) >= 0))
+      return true;
+   if(((f & mask_unicode) != 0) && (c >= 0x100))
+      return true;
+   if(((f & mask_underscore) != 0) && (c == '_'))
+      return true;
+   if(((f & mask_any) != 0) && (c <= 0x10FFFF))
+      return true;
+   if(((f & mask_ascii) != 0) && (c <= 0x7F))
+      return true;
+   if(((f & mask_vertical) != 0) && (::boost::re_detail::is_separator(c) || (c == static_cast<char_type>('\v')) || (m == U_GC_ZL_MASK) || (m == U_GC_ZP_MASK)))
+      return true;
+   if(((f & mask_horizontal) != 0) && !::boost::re_detail::is_separator(c) && u_isspace(c) && (c != static_cast<char_type>('\v')))
+      return true;
+   return false;
+}
+
+}
+
+#endif // BOOST_HAS_ICU
index b200f2975511e895509d2098c75996d321420a5d..cef76783bfffefdbf5b90f06bcc36a88f2ffd452 100755 (executable)
-/*\r
- *\r
- * Copyright (c) 2004\r
- * John Maddock\r
- *\r
- * Use, modification and distribution are subject to the \r
- * Boost Software License, Version 1.0. (See accompanying file \r
- * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
- *\r
- */\r
\r
- /*\r
-  *   LOCATION:    see http://www.boost.org for most recent version.\r
-  *   FILE         static_mutex.cpp\r
-  *   VERSION      see <boost/version.hpp>\r
-  *   DESCRIPTION: Declares static_mutex lock type.\r
-  */\r
-\r
-#define BOOST_REGEX_SOURCE\r
-#include <boost/config.hpp>\r
-\r
-#ifdef BOOST_HAS_THREADS\r
-\r
-#include <boost/regex/pending/static_mutex.hpp>\r
-\r
-#if defined(BOOST_HAS_WINTHREADS)\r
-#ifndef NOMINMAX\r
-#  define NOMINMAX\r
-#endif\r
-#define WIN32_LEAN_AND_MEAN\r
-#include <windows.h>\r
-#include <boost/static_assert.hpp>\r
-#endif\r
-\r
-\r
-namespace boost{\r
-\r
-#if defined(BOOST_HAS_PTHREADS) && defined(PTHREAD_MUTEX_INITIALIZER)\r
-\r
-scoped_static_mutex_lock::scoped_static_mutex_lock(static_mutex& m, bool lk)\r
-: m_mutex(m), m_have_lock(false)\r
-{\r
-   if(lk)\r
-      lock();\r
-}\r
-\r
-scoped_static_mutex_lock::~scoped_static_mutex_lock()\r
-{\r
-   if(m_have_lock)\r
-      unlock();\r
-}\r
-\r
-void scoped_static_mutex_lock::lock()\r
-{\r
-   if(0 == m_have_lock)\r
-   {\r
-      pthread_mutex_lock(&(m_mutex.m_mutex));\r
-      m_have_lock = true;\r
-   }\r
-}\r
-\r
-void scoped_static_mutex_lock::unlock()\r
-{\r
-   if(m_have_lock)\r
-   {\r
-      pthread_mutex_unlock(&(m_mutex.m_mutex));\r
-      m_have_lock = false;\r
-   }\r
-}\r
-\r
-#elif defined(BOOST_HAS_WINTHREADS)\r
-\r
-BOOST_STATIC_ASSERT(sizeof(LONG) == sizeof(boost::int32_t));\r
-\r
-scoped_static_mutex_lock::scoped_static_mutex_lock(static_mutex& m, bool lk)\r
-: m_mutex(m), m_have_lock(false)\r
-{\r
-   if(lk)\r
-      lock();\r
-}\r
-\r
-scoped_static_mutex_lock::~scoped_static_mutex_lock()\r
-{\r
-   if(m_have_lock)\r
-      unlock();\r
-}\r
-\r
-void scoped_static_mutex_lock::lock()\r
-{\r
-   if(0 == m_have_lock)\r
-   {\r
-#if !defined(InterlockedCompareExchangePointer)\r
-      while(0 != InterlockedCompareExchange(reinterpret_cast<void**>((boost::uint_least16_t*)&(m_mutex.m_mutex)), (void*)1, 0))\r
-#else\r
-      while(0 != InterlockedCompareExchange(reinterpret_cast<LONG*>(&(m_mutex.m_mutex)), 1, 0))\r
-#endif\r
-      {\r
-         Sleep(0);\r
-      }\r
-      m_have_lock = true;\r
-   }\r
-}\r
-\r
-void scoped_static_mutex_lock::unlock()\r
-{\r
-   if(m_have_lock)\r
-   {\r
-#if !defined(InterlockedCompareExchangePointer)\r
-      InterlockedExchange((LONG*)&(m_mutex.m_mutex), 0);\r
-#else\r
-      InterlockedExchange(reinterpret_cast<LONG*>(&(m_mutex.m_mutex)), 0);\r
-#endif\r
-      m_have_lock = false;\r
-   }\r
-}\r
-\r
-#else\r
-//\r
-// Portable version of a static mutex based on Boost.Thread library:\r
-//\r
-#include <stdlib.h>\r
-#include <boost/assert.hpp>\r
-\r
-boost::recursive_mutex* static_mutex::m_pmutex = 0;\r
-boost::once_flag static_mutex::m_once = BOOST_ONCE_INIT;\r
-\r
-extern "C" BOOST_REGEX_DECL void free_static_mutex()\r
-{\r
-   delete static_mutex::m_pmutex;\r
-   static_mutex::m_pmutex = 0;\r
-}\r
-\r
-void static_mutex::init()\r
-{\r
-   m_pmutex = new boost::recursive_mutex();\r
-   int r = atexit(free_static_mutex);\r
-   BOOST_ASSERT(0 == r);\r
-}\r
-\r
-scoped_static_mutex_lock::scoped_static_mutex_lock(static_mutex& , bool lk)\r
-: m_plock(0), m_have_lock(false)\r
-{\r
-   if(lk)\r
-      lock();\r
-}\r
-\r
-scoped_static_mutex_lock::~scoped_static_mutex_lock()\r
-{\r
-   if(m_have_lock)\r
-      unlock();\r
-   delete m_plock;\r
-}\r
-\r
-void scoped_static_mutex_lock::lock()\r
-{\r
-   if(0 == m_have_lock)\r
-   {\r
-       boost::call_once(static_mutex::m_once,&static_mutex::init);\r
-      if(0 == m_plock)\r
-         m_plock = new boost::recursive_mutex::scoped_lock(*static_mutex::m_pmutex, false);\r
-      m_plock->lock();\r
-      m_have_lock = true;\r
-   }\r
-}\r
-\r
-void scoped_static_mutex_lock::unlock()\r
-{\r
-   if(m_have_lock)\r
-   {\r
-      m_plock->unlock();\r
-      m_have_lock = false;\r
-   }\r
-}\r
-\r
-#endif\r
-\r
-}\r
-\r
-#endif // BOOST_HAS_THREADS\r
+/*
+ *
+ * Copyright (c) 2004
+ * John Maddock
+ *
+ * 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)
+ *
+ */
+ /*
+  *   LOCATION:    see http://www.boost.org for most recent version.
+  *   FILE         static_mutex.cpp
+  *   VERSION      see <boost/version.hpp>
+  *   DESCRIPTION: Declares static_mutex lock type.
+  */
+
+#define BOOST_REGEX_SOURCE
+#include <boost/config.hpp>
+
+#ifdef BOOST_HAS_THREADS
+
+#include <boost/regex/pending/static_mutex.hpp>
+
+#if defined(BOOST_HAS_WINTHREADS)
+#ifndef NOMINMAX
+#  define NOMINMAX
+#endif
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <boost/static_assert.hpp>
+#endif
+
+
+namespace boost{
+
+#if defined(BOOST_HAS_PTHREADS) && defined(PTHREAD_MUTEX_INITIALIZER)
+
+scoped_static_mutex_lock::scoped_static_mutex_lock(static_mutex& m, bool lk)
+: m_mutex(m), m_have_lock(false)
+{
+   if(lk)
+      lock();
+}
+
+scoped_static_mutex_lock::~scoped_static_mutex_lock()
+{
+   if(m_have_lock)
+      unlock();
+}
+
+void scoped_static_mutex_lock::lock()
+{
+   if(0 == m_have_lock)
+   {
+      pthread_mutex_lock(&(m_mutex.m_mutex));
+      m_have_lock = true;
+   }
+}
+
+void scoped_static_mutex_lock::unlock()
+{
+   if(m_have_lock)
+   {
+      pthread_mutex_unlock(&(m_mutex.m_mutex));
+      m_have_lock = false;
+   }
+}
+
+#elif defined(BOOST_HAS_WINTHREADS)
+
+BOOST_STATIC_ASSERT(sizeof(LONG) == sizeof(boost::int32_t));
+
+scoped_static_mutex_lock::scoped_static_mutex_lock(static_mutex& m, bool lk)
+: m_mutex(m), m_have_lock(false)
+{
+   if(lk)
+      lock();
+}
+
+scoped_static_mutex_lock::~scoped_static_mutex_lock()
+{
+   if(m_have_lock)
+      unlock();
+}
+
+void scoped_static_mutex_lock::lock()
+{
+   if(0 == m_have_lock)
+   {
+#if !defined(InterlockedCompareExchangePointer)
+      while(0 != InterlockedCompareExchange(reinterpret_cast<void**>((boost::uint_least16_t*)&(m_mutex.m_mutex)), (void*)1, 0))
+#else
+      while(0 != InterlockedCompareExchange(reinterpret_cast<LONG*>(&(m_mutex.m_mutex)), 1, 0))
+#endif
+      {
+         Sleep(0);
+      }
+      m_have_lock = true;
+   }
+}
+
+void scoped_static_mutex_lock::unlock()
+{
+   if(m_have_lock)
+   {
+#if !defined(InterlockedCompareExchangePointer)
+      InterlockedExchange((LONG*)&(m_mutex.m_mutex), 0);
+#else
+      InterlockedExchange(reinterpret_cast<LONG*>(&(m_mutex.m_mutex)), 0);
+#endif
+      m_have_lock = false;
+   }
+}
+
+#else
+//
+// Portable version of a static mutex based on Boost.Thread library:
+//
+#include <stdlib.h>
+#include <boost/assert.hpp>
+
+boost::recursive_mutex* static_mutex::m_pmutex = 0;
+boost::once_flag static_mutex::m_once = BOOST_ONCE_INIT;
+
+extern "C" BOOST_REGEX_DECL void free_static_mutex()
+{
+   delete static_mutex::m_pmutex;
+   static_mutex::m_pmutex = 0;
+}
+
+void static_mutex::init()
+{
+   m_pmutex = new boost::recursive_mutex();
+   int r = atexit(free_static_mutex);
+   BOOST_ASSERT(0 == r);
+}
+
+scoped_static_mutex_lock::scoped_static_mutex_lock(static_mutex& , bool lk)
+: m_plock(0), m_have_lock(false)
+{
+   if(lk)
+      lock();
+}
+
+scoped_static_mutex_lock::~scoped_static_mutex_lock()
+{
+   if(m_have_lock)
+      unlock();
+   delete m_plock;
+}
+
+void scoped_static_mutex_lock::lock()
+{
+   if(0 == m_have_lock)
+   {
+       boost::call_once(static_mutex::m_once,&static_mutex::init);
+      if(0 == m_plock)
+         m_plock = new boost::recursive_mutex::scoped_lock(*static_mutex::m_pmutex, false);
+      m_plock->lock();
+      m_have_lock = true;
+   }
+}
+
+void scoped_static_mutex_lock::unlock()
+{
+   if(m_have_lock)
+   {
+      m_plock->unlock();
+      m_have_lock = false;
+   }
+}
+
+#endif
+
+}
+
+#endif // BOOST_HAS_THREADS
index 8d6352e1b088ac1b26462d7444f9083e31c603af..ca7b1dc94c4d50b8e7db9dbbc55d95c78899e15f 100755 (executable)
@@ -1,78 +1,78 @@
-/*\r
- *\r
- * Copyright (c) 1998-2002\r
- * John Maddock\r
- *\r
- * Use, modification and distribution are subject to the \r
- * Boost Software License, Version 1.0. (See accompanying file \r
- * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
- *\r
- */\r
-\r
- /*\r
-  *   LOCATION:    see http://www.boost.org for most recent version.\r
-  *   FILE:        winstances.cpp\r
-  *   VERSION:     see <boost/version.hpp>\r
-  *   DESCRIPTION: regex unsigned short template instances (MSVC only).\r
-  */\r
-\r
-#define BOOST_REGEX_SOURCE\r
-\r
-#include <boost/detail/workaround.hpp>\r
-#include <memory>\r
-#include <string>\r
-\r
-#if defined(_DLL_CPPLIB) && !defined(_M_CEE_PURE) && defined(_NATIVE_WCHAR_T_DEFINED) \\r
-   && !(defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) || defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER))\\r
-   && BOOST_WORKAROUND(BOOST_MSVC, <1600)\r
-//\r
-// This is a horrible workaround, but without declaring these symbols extern we get\r
-// duplicate symbol errors when linking if the application is built without\r
-// /Zc:wchar_t\r
-//\r
-#ifdef _CRTIMP2_PURE\r
-#  define BOOST_REGEX_STDLIB_DECL _CRTIMP2_PURE\r
-#else\r
-#  define BOOST_REGEX_STDLIB_DECL _CRTIMP2\r
-#endif\r
-\r
-namespace std{\r
-\r
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)\r
-template class BOOST_REGEX_STDLIB_DECL allocator<unsigned short>;\r
-template class BOOST_REGEX_STDLIB_DECL _String_val<unsigned short, allocator<unsigned short> >;\r
-template class BOOST_REGEX_STDLIB_DECL basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >;\r
-#endif\r
-\r
-#if BOOST_WORKAROUND(BOOST_MSVC, > 1300) && BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400))\r
-template<> BOOST_REGEX_STDLIB_DECL std::size_t __cdecl char_traits<unsigned short>::length(unsigned short const*);\r
-#endif\r
-\r
-template BOOST_REGEX_STDLIB_DECL bool __cdecl operator==(\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);\r
-template BOOST_REGEX_STDLIB_DECL bool __cdecl operator==(\r
-   const unsigned short *,\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);\r
-template BOOST_REGEX_STDLIB_DECL bool __cdecl operator==(\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,\r
-   const unsigned short *);\r
-template BOOST_REGEX_STDLIB_DECL bool __cdecl operator<(\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);\r
-template BOOST_REGEX_STDLIB_DECL bool __cdecl operator>(\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);\r
-}\r
-#endif\r
-\r
-#include <boost/regex/config.hpp>\r
-\r
-#if !defined(BOOST_NO_WREGEX) && defined(BOOST_REGEX_HAS_OTHER_WCHAR_T) && !defined(BOOST_REGEX_NO_EXTERNAL_TEMPLATES)\r
-#define BOOST_REGEX_US_INSTANTIATE\r
-\r
-#include <boost/regex.hpp>\r
-\r
-#endif\r
-\r
-\r
+/*
+ *
+ * Copyright (c) 1998-2002
+ * John Maddock
+ *
+ * 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)
+ *
+ */
+
+ /*
+  *   LOCATION:    see http://www.boost.org for most recent version.
+  *   FILE:        winstances.cpp
+  *   VERSION:     see <boost/version.hpp>
+  *   DESCRIPTION: regex unsigned short template instances (MSVC only).
+  */
+
+#define BOOST_REGEX_SOURCE
+
+#include <boost/detail/workaround.hpp>
+#include <memory>
+#include <string>
+
+#if defined(_DLL_CPPLIB) && !defined(_M_CEE_PURE) && defined(_NATIVE_WCHAR_T_DEFINED) \
+   && !(defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) || defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER))\
+   && BOOST_WORKAROUND(BOOST_MSVC, <1600)
+//
+// This is a horrible workaround, but without declaring these symbols extern we get
+// duplicate symbol errors when linking if the application is built without
+// /Zc:wchar_t
+//
+#ifdef _CRTIMP2_PURE
+#  define BOOST_REGEX_STDLIB_DECL _CRTIMP2_PURE
+#else
+#  define BOOST_REGEX_STDLIB_DECL _CRTIMP2
+#endif
+
+namespace std{
+
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
+template class BOOST_REGEX_STDLIB_DECL allocator<unsigned short>;
+template class BOOST_REGEX_STDLIB_DECL _String_val<unsigned short, allocator<unsigned short> >;
+template class BOOST_REGEX_STDLIB_DECL basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >;
+#endif
+
+#if BOOST_WORKAROUND(BOOST_MSVC, > 1300) && BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400))
+template<> BOOST_REGEX_STDLIB_DECL std::size_t __cdecl char_traits<unsigned short>::length(unsigned short const*);
+#endif
+
+template BOOST_REGEX_STDLIB_DECL bool __cdecl operator==(
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);
+template BOOST_REGEX_STDLIB_DECL bool __cdecl operator==(
+   const unsigned short *,
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);
+template BOOST_REGEX_STDLIB_DECL bool __cdecl operator==(
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,
+   const unsigned short *);
+template BOOST_REGEX_STDLIB_DECL bool __cdecl operator<(
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);
+template BOOST_REGEX_STDLIB_DECL bool __cdecl operator>(
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);
+}
+#endif
+
+#include <boost/regex/config.hpp>
+
+#if !defined(BOOST_NO_WREGEX) && defined(BOOST_REGEX_HAS_OTHER_WCHAR_T) && !defined(BOOST_REGEX_NO_EXTERNAL_TEMPLATES)
+#define BOOST_REGEX_US_INSTANTIATE
+
+#include <boost/regex.hpp>
+
+#endif
+
+
index 52132febeefc4a94b193070686240fd7fad0c4f9..fb622b5ad945bc2603a6ade2df766fc53aaa6efb 100755 (executable)
-/*\r
- *\r
- * Copyright (c) 2004\r
- * John Maddock\r
- *\r
- * Use, modification and distribution are subject to the \r
- * Boost Software License, Version 1.0. (See accompanying file \r
- * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
- *\r
- */\r
-\r
- /*\r
-  *   LOCATION:    see http://www.boost.org for most recent version.\r
-  *   FILE:        wc_regex_traits.cpp\r
-  *   VERSION:     see <boost/version.hpp>\r
-  *   DESCRIPTION: Implements out of line members for c_regex_traits<wchar_t>\r
-  */\r
-\r
-\r
-#define BOOST_REGEX_SOURCE\r
-\r
-#include <boost/detail/workaround.hpp>\r
-#include <memory>\r
-#include <string>\r
-\r
-#if defined(_DLL_CPPLIB) && !defined(_M_CEE_PURE) && defined(_NATIVE_WCHAR_T_DEFINED) \\r
-   && !(defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) || defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER))\\r
-   && BOOST_WORKAROUND(BOOST_MSVC, <1600)\r
-//\r
-// This is a horrible workaround, but without declaring these symbols extern we get\r
-// duplicate symbol errors when linking if the application is built without\r
-// /Zc:wchar_t\r
-//\r
-#ifdef _CRTIMP2_PURE\r
-#  define BOOST_REGEX_STDLIB_DECL _CRTIMP2_PURE\r
-#else\r
-#  define BOOST_REGEX_STDLIB_DECL _CRTIMP2\r
-#endif\r
-\r
-namespace std{\r
-\r
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)\r
-template class BOOST_REGEX_STDLIB_DECL allocator<unsigned short>;\r
-template class BOOST_REGEX_STDLIB_DECL _String_val<unsigned short, allocator<unsigned short> >;\r
-template class BOOST_REGEX_STDLIB_DECL basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >;\r
-#endif\r
-\r
-#if BOOST_WORKAROUND(BOOST_MSVC, > 1300) && BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400))\r
-template<> BOOST_REGEX_STDLIB_DECL std::size_t __cdecl char_traits<unsigned short>::length(unsigned short const*);\r
-#endif\r
-\r
-template BOOST_REGEX_STDLIB_DECL bool __cdecl operator==(\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);\r
-template BOOST_REGEX_STDLIB_DECL bool __cdecl operator==(\r
-   const unsigned short *,\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);\r
-template BOOST_REGEX_STDLIB_DECL bool __cdecl operator==(\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,\r
-   const unsigned short *);\r
-template BOOST_REGEX_STDLIB_DECL bool __cdecl operator<(\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);\r
-template BOOST_REGEX_STDLIB_DECL bool __cdecl operator>(\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,\r
-   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);\r
-}\r
-#endif\r
-\r
-#include <boost/regex/config.hpp>\r
-#include <boost/detail/workaround.hpp>\r
-\r
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x560)\r
-\r
-#include <boost/regex/v4/c_regex_traits.hpp>\r
-#ifndef BOOST_NO_WREGEX\r
-#include <boost/regex/v4/primary_transform.hpp>\r
-#include <boost/regex/v4/regex_traits_defaults.hpp>\r
-\r
-#if defined(BOOST_NO_STDC_NAMESPACE)\r
-namespace std{\r
-   using ::wcstol;\r
-}\r
-#endif\r
-\r
-namespace boost{\r
-\r
-c_regex_traits<wchar_t>::string_type BOOST_REGEX_CALL c_regex_traits<wchar_t>::transform(const wchar_t* p1, const wchar_t* p2) \r
-{ \r
-   std::size_t r;\r
-   std::size_t s = 10;\r
-   std::wstring src(p1, p2);\r
-   std::wstring result(s, L' ');\r
-   while(s < (r = std::wcsxfrm(&*result.begin(), src.c_str(), s)))\r
-   {\r
-      result.append(r - s + 3, L' ');\r
-      s = result.size();\r
-   }\r
-   result.erase(r);\r
-   return result; \r
-}\r
-\r
-c_regex_traits<wchar_t>::string_type BOOST_REGEX_CALL c_regex_traits<wchar_t>::transform_primary(const wchar_t* p1, const wchar_t* p2) \r
-{\r
-   static wchar_t s_delim;\r
-   static const int s_collate_type = ::boost::re_detail::find_sort_syntax(static_cast<const c_regex_traits<wchar_t>*>(0), &s_delim);\r
-   std::wstring result;\r
-   //\r
-   // What we do here depends upon the format of the sort key returned by\r
-   // sort key returned by this->transform:\r
-   //\r
-   switch(s_collate_type)\r
-   {\r
-   case ::boost::re_detail::sort_C:\r
-   case ::boost::re_detail::sort_unknown:\r
-      // the best we can do is translate to lower case, then get a regular sort key:\r
-      {\r
-         result.assign(p1, p2);\r
-         for(std::wstring::size_type i = 0; i < result.size(); ++i)\r
-            result[i] = (std::towlower)(result[i]);\r
-         result = c_regex_traits<wchar_t>::transform(&*result.begin(), &*result.begin() + result.size());\r
-         break;\r
-      }\r
-   case ::boost::re_detail::sort_fixed:\r
-      {\r
-         // get a regular sort key, and then truncate it:\r
-         result = c_regex_traits<wchar_t>::transform(&*result.begin(), &*result.begin() + result.size());\r
-         result.erase(s_delim);\r
-         break;\r
-      }\r
-   case ::boost::re_detail::sort_delim:\r
-         // get a regular sort key, and then truncate everything after the delim:\r
-         result = c_regex_traits<wchar_t>::transform(&*result.begin(), &*result.begin() + result.size());\r
-         if(result.size() && (result[0] == s_delim))\r
-            break;\r
-         std::size_t i;\r
-         for(i = 0; i < result.size(); ++i)\r
-         {\r
-            if(result[i] == s_delim)\r
-               break;\r
-         }\r
-         result.erase(i);\r
-         break;\r
-   }\r
-   if(result.empty())\r
-      result = std::wstring(1, char(0));\r
-   return result;\r
-}\r
-\r
-enum\r
-{\r
-   char_class_space=1<<0, \r
-   char_class_print=1<<1, \r
-   char_class_cntrl=1<<2, \r
-   char_class_upper=1<<3, \r
-   char_class_lower=1<<4,\r
-   char_class_alpha=1<<5, \r
-   char_class_digit=1<<6, \r
-   char_class_punct=1<<7, \r
-   char_class_xdigit=1<<8,\r
-   char_class_alnum=char_class_alpha|char_class_digit, \r
-   char_class_graph=char_class_alnum|char_class_punct,\r
-   char_class_blank=1<<9,\r
-   char_class_word=1<<10,\r
-   char_class_unicode=1<<11,\r
-   char_class_horizontal=1<<12,\r
-   char_class_vertical=1<<13\r
-};\r
-\r
-c_regex_traits<wchar_t>::char_class_type BOOST_REGEX_CALL c_regex_traits<wchar_t>::lookup_classname(const wchar_t* p1, const wchar_t* p2) \r
-{\r
-   static const char_class_type masks[] = \r
-   {\r
-      0,\r
-      char_class_alnum, \r
-      char_class_alpha,\r
-      char_class_blank,\r
-      char_class_cntrl,\r
-      char_class_digit,\r
-      char_class_digit,\r
-      char_class_graph,\r
-      char_class_horizontal,\r
-      char_class_lower,\r
-      char_class_lower,\r
-      char_class_print,\r
-      char_class_punct,\r
-      char_class_space,\r
-      char_class_space,\r
-      char_class_upper,\r
-      char_class_unicode,\r
-      char_class_upper,\r
-      char_class_vertical,\r
-      char_class_alnum | char_class_word, \r
-      char_class_alnum | char_class_word, \r
-      char_class_xdigit,\r
-   };\r
-\r
-   int id = ::boost::re_detail::get_default_class_id(p1, p2);\r
-   if(id < 0)\r
-   {\r
-      std::wstring s(p1, p2);\r
-      for(std::wstring::size_type i = 0; i < s.size(); ++i)\r
-         s[i] = (std::towlower)(s[i]);\r
-      id = ::boost::re_detail::get_default_class_id(&*s.begin(), &*s.begin() + s.size());\r
-   }\r
-   BOOST_ASSERT(id+1 < static_cast<int>(sizeof(masks) / sizeof(masks[0])));\r
-   return masks[id+1];\r
-}\r
-\r
-bool BOOST_REGEX_CALL c_regex_traits<wchar_t>::isctype(wchar_t c, char_class_type mask) \r
-{\r
-   return\r
-      ((mask & char_class_space) && (std::iswspace)(c))\r
-      || ((mask & char_class_print) && (std::iswprint)(c))\r
-      || ((mask & char_class_cntrl) && (std::iswcntrl)(c))\r
-      || ((mask & char_class_upper) && (std::iswupper)(c))\r
-      || ((mask & char_class_lower) && (std::iswlower)(c))\r
-      || ((mask & char_class_alpha) && (std::iswalpha)(c))\r
-      || ((mask & char_class_digit) && (std::iswdigit)(c))\r
-      || ((mask & char_class_punct) && (std::iswpunct)(c))\r
-      || ((mask & char_class_xdigit) && (std::iswxdigit)(c))\r
-      || ((mask & char_class_blank) && (std::iswspace)(c) && !::boost::re_detail::is_separator(c))\r
-      || ((mask & char_class_word) && (c == '_'))\r
-      || ((mask & char_class_unicode) && (c & ~static_cast<wchar_t>(0xff)))\r
-      || ((mask & char_class_vertical) && (::boost::re_detail::is_separator(c) || (c == L'\v')))\r
-      || ((mask & char_class_horizontal) && (std::iswspace)(c) && !::boost::re_detail::is_separator(c) && (c != L'\v'));\r
-}\r
-\r
-c_regex_traits<wchar_t>::string_type BOOST_REGEX_CALL c_regex_traits<wchar_t>::lookup_collatename(const wchar_t* p1, const wchar_t* p2) \r
-{\r
-#if !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)\\r
-               && !BOOST_WORKAROUND(BOOST_MSVC, < 1300)\\r
-               && !BOOST_WORKAROUND(__BORLANDC__, <= 0x0551)\r
-   std::string name(p1, p2);\r
-#else\r
-   std::string name;\r
-   const wchar_t* p0 = p1;\r
-   while(p0 != p2)\r
-      name.append(1, char(*p0++));\r
-#endif\r
-   name = ::boost::re_detail::lookup_default_collate_name(name);\r
-#if !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)\\r
-               && !BOOST_WORKAROUND(BOOST_MSVC, < 1300)\\r
-               && !BOOST_WORKAROUND(__BORLANDC__, <= 0x0551)\r
-   if(name.size())\r
-      return string_type(name.begin(), name.end());\r
-#else\r
-   if(name.size())\r
-   {\r
-      string_type result;\r
-      typedef std::string::const_iterator iter;\r
-      iter b = name.begin();\r
-      iter e = name.end();\r
-      while(b != e)\r
-         result.append(1, wchar_t(*b++));\r
-      return result;\r
-   }\r
-#endif\r
-   if(p2 - p1 == 1)\r
-      return string_type(1, *p1);\r
-   return string_type();\r
-}\r
-\r
-int BOOST_REGEX_CALL c_regex_traits<wchar_t>::value(wchar_t c, int radix) \r
-{\r
-#ifdef __BORLANDC__\r
-   // workaround for broken wcstol:\r
-   if((std::iswxdigit)(c) == 0)\r
-      return -1;\r
-#endif\r
-   wchar_t b[2] = { c, '\0', };\r
-   wchar_t* ep;\r
-   int result = std::wcstol(b, &ep, radix);\r
-   if(ep == b)\r
-      return -1;\r
-   return result;\r
-}\r
-\r
-#ifdef BOOST_REGEX_HAS_OTHER_WCHAR_T\r
-c_regex_traits<unsigned short>::string_type BOOST_REGEX_CALL c_regex_traits<unsigned short>::transform(const unsigned short* p1, const unsigned short* p2)\r
-{\r
-   std::wstring result = c_regex_traits<wchar_t>::transform((const wchar_t*)p1, (const wchar_t*)p2);\r
-   return string_type(result.begin(), result.end());\r
-}\r
-\r
-c_regex_traits<unsigned short>::string_type BOOST_REGEX_CALL c_regex_traits<unsigned short>::transform_primary(const unsigned short* p1, const unsigned short* p2)\r
-{\r
-   std::wstring result = c_regex_traits<wchar_t>::transform_primary((const wchar_t*)p1, (const wchar_t*)p2);\r
-   return string_type(result.begin(), result.end());\r
-}\r
-\r
-c_regex_traits<unsigned short>::char_class_type BOOST_REGEX_CALL c_regex_traits<unsigned short>::lookup_classname(const unsigned short* p1, const unsigned short* p2)\r
-{\r
-   return c_regex_traits<wchar_t>::lookup_classname((const wchar_t*)p1, (const wchar_t*)p2);\r
-}\r
-\r
-c_regex_traits<unsigned short>::string_type BOOST_REGEX_CALL c_regex_traits<unsigned short>::lookup_collatename(const unsigned short* p1, const unsigned short* p2)\r
-{\r
-   std::wstring result = c_regex_traits<wchar_t>::lookup_collatename((const wchar_t*)p1, (const wchar_t*)p2);\r
-   return string_type(result.begin(), result.end());\r
-}\r
-\r
-bool BOOST_REGEX_CALL c_regex_traits<unsigned short>::isctype(unsigned short c, char_class_type m)\r
-{\r
-   return c_regex_traits<wchar_t>::isctype(c, m);\r
-}\r
-\r
-int BOOST_REGEX_CALL c_regex_traits<unsigned short>::value(unsigned short c, int radix)\r
-{\r
-   return c_regex_traits<wchar_t>::value(c, radix);\r
-}\r
-\r
-#endif\r
-\r
-}\r
-\r
-#endif // BOOST_NO_WREGEX\r
-\r
-#endif // __BORLANDC__\r
-\r
+/*
+ *
+ * Copyright (c) 2004
+ * John Maddock
+ *
+ * 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)
+ *
+ */
+
+ /*
+  *   LOCATION:    see http://www.boost.org for most recent version.
+  *   FILE:        wc_regex_traits.cpp
+  *   VERSION:     see <boost/version.hpp>
+  *   DESCRIPTION: Implements out of line members for c_regex_traits<wchar_t>
+  */
+
+
+#define BOOST_REGEX_SOURCE
+
+#include <boost/detail/workaround.hpp>
+#include <memory>
+#include <string>
+
+#if defined(_DLL_CPPLIB) && !defined(_M_CEE_PURE) && defined(_NATIVE_WCHAR_T_DEFINED) \
+   && !(defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) || defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER))\
+   && BOOST_WORKAROUND(BOOST_MSVC, <1600)
+//
+// This is a horrible workaround, but without declaring these symbols extern we get
+// duplicate symbol errors when linking if the application is built without
+// /Zc:wchar_t
+//
+#ifdef _CRTIMP2_PURE
+#  define BOOST_REGEX_STDLIB_DECL _CRTIMP2_PURE
+#else
+#  define BOOST_REGEX_STDLIB_DECL _CRTIMP2
+#endif
+
+namespace std{
+
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
+template class BOOST_REGEX_STDLIB_DECL allocator<unsigned short>;
+template class BOOST_REGEX_STDLIB_DECL _String_val<unsigned short, allocator<unsigned short> >;
+template class BOOST_REGEX_STDLIB_DECL basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >;
+#endif
+
+#if BOOST_WORKAROUND(BOOST_MSVC, > 1300) && BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400))
+template<> BOOST_REGEX_STDLIB_DECL std::size_t __cdecl char_traits<unsigned short>::length(unsigned short const*);
+#endif
+
+template BOOST_REGEX_STDLIB_DECL bool __cdecl operator==(
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);
+template BOOST_REGEX_STDLIB_DECL bool __cdecl operator==(
+   const unsigned short *,
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);
+template BOOST_REGEX_STDLIB_DECL bool __cdecl operator==(
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,
+   const unsigned short *);
+template BOOST_REGEX_STDLIB_DECL bool __cdecl operator<(
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);
+template BOOST_REGEX_STDLIB_DECL bool __cdecl operator>(
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&,
+   const basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short> >&);
+}
+#endif
+
+#include <boost/regex/config.hpp>
+#include <boost/detail/workaround.hpp>
+
+#if !BOOST_WORKAROUND(__BORLANDC__, < 0x560)
+
+#include <boost/regex/v4/c_regex_traits.hpp>
+#ifndef BOOST_NO_WREGEX
+#include <boost/regex/v4/primary_transform.hpp>
+#include <boost/regex/v4/regex_traits_defaults.hpp>
+
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{
+   using ::wcstol;
+}
+#endif
+
+namespace boost{
+
+c_regex_traits<wchar_t>::string_type BOOST_REGEX_CALL c_regex_traits<wchar_t>::transform(const wchar_t* p1, const wchar_t* p2) 
+{ 
+   std::size_t r;
+   std::size_t s = 10;
+   std::wstring src(p1, p2);
+   std::wstring result(s, L' ');
+   while(s < (r = std::wcsxfrm(&*result.begin(), src.c_str(), s)))
+   {
+      result.append(r - s + 3, L' ');
+      s = result.size();
+   }
+   result.erase(r);
+   return result; 
+}
+
+c_regex_traits<wchar_t>::string_type BOOST_REGEX_CALL c_regex_traits<wchar_t>::transform_primary(const wchar_t* p1, const wchar_t* p2) 
+{
+   static wchar_t s_delim;
+   static const int s_collate_type = ::boost::re_detail::find_sort_syntax(static_cast<const c_regex_traits<wchar_t>*>(0), &s_delim);
+   std::wstring result;
+   //
+   // What we do here depends upon the format of the sort key returned by
+   // sort key returned by this->transform:
+   //
+   switch(s_collate_type)
+   {
+   case ::boost::re_detail::sort_C:
+   case ::boost::re_detail::sort_unknown:
+      // the best we can do is translate to lower case, then get a regular sort key:
+      {
+         result.assign(p1, p2);
+         for(std::wstring::size_type i = 0; i < result.size(); ++i)
+            result[i] = (std::towlower)(result[i]);
+         result = c_regex_traits<wchar_t>::transform(&*result.begin(), &*result.begin() + result.size());
+         break;
+      }
+   case ::boost::re_detail::sort_fixed:
+      {
+         // get a regular sort key, and then truncate it:
+         result = c_regex_traits<wchar_t>::transform(&*result.begin(), &*result.begin() + result.size());
+         result.erase(s_delim);
+         break;
+      }
+   case ::boost::re_detail::sort_delim:
+         // get a regular sort key, and then truncate everything after the delim:
+         result = c_regex_traits<wchar_t>::transform(&*result.begin(), &*result.begin() + result.size());
+         if(result.size() && (result[0] == s_delim))
+            break;
+         std::size_t i;
+         for(i = 0; i < result.size(); ++i)
+         {
+            if(result[i] == s_delim)
+               break;
+         }
+         result.erase(i);
+         break;
+   }
+   if(result.empty())
+      result = std::wstring(1, char(0));
+   return result;
+}
+
+enum
+{
+   char_class_space=1<<0, 
+   char_class_print=1<<1, 
+   char_class_cntrl=1<<2, 
+   char_class_upper=1<<3, 
+   char_class_lower=1<<4,
+   char_class_alpha=1<<5, 
+   char_class_digit=1<<6, 
+   char_class_punct=1<<7, 
+   char_class_xdigit=1<<8,
+   char_class_alnum=char_class_alpha|char_class_digit, 
+   char_class_graph=char_class_alnum|char_class_punct,
+   char_class_blank=1<<9,
+   char_class_word=1<<10,
+   char_class_unicode=1<<11,
+   char_class_horizontal=1<<12,
+   char_class_vertical=1<<13
+};
+
+c_regex_traits<wchar_t>::char_class_type BOOST_REGEX_CALL c_regex_traits<wchar_t>::lookup_classname(const wchar_t* p1, const wchar_t* p2) 
+{
+   static const char_class_type masks[] = 
+   {
+      0,
+      char_class_alnum, 
+      char_class_alpha,
+      char_class_blank,
+      char_class_cntrl,
+      char_class_digit,
+      char_class_digit,
+      char_class_graph,
+      char_class_horizontal,
+      char_class_lower,
+      char_class_lower,
+      char_class_print,
+      char_class_punct,
+      char_class_space,
+      char_class_space,
+      char_class_upper,
+      char_class_unicode,
+      char_class_upper,
+      char_class_vertical,
+      char_class_alnum | char_class_word, 
+      char_class_alnum | char_class_word, 
+      char_class_xdigit,
+   };
+
+   int id = ::boost::re_detail::get_default_class_id(p1, p2);
+   if(id < 0)
+   {
+      std::wstring s(p1, p2);
+      for(std::wstring::size_type i = 0; i < s.size(); ++i)
+         s[i] = (std::towlower)(s[i]);
+      id = ::boost::re_detail::get_default_class_id(&*s.begin(), &*s.begin() + s.size());
+   }
+   BOOST_ASSERT(id+1 < static_cast<int>(sizeof(masks) / sizeof(masks[0])));
+   return masks[id+1];
+}
+
+bool BOOST_REGEX_CALL c_regex_traits<wchar_t>::isctype(wchar_t c, char_class_type mask) 
+{
+   return
+      ((mask & char_class_space) && (std::iswspace)(c))
+      || ((mask & char_class_print) && (std::iswprint)(c))
+      || ((mask & char_class_cntrl) && (std::iswcntrl)(c))
+      || ((mask & char_class_upper) && (std::iswupper)(c))
+      || ((mask & char_class_lower) && (std::iswlower)(c))
+      || ((mask & char_class_alpha) && (std::iswalpha)(c))
+      || ((mask & char_class_digit) && (std::iswdigit)(c))
+      || ((mask & char_class_punct) && (std::iswpunct)(c))
+      || ((mask & char_class_xdigit) && (std::iswxdigit)(c))
+      || ((mask & char_class_blank) && (std::iswspace)(c) && !::boost::re_detail::is_separator(c))
+      || ((mask & char_class_word) && (c == '_'))
+      || ((mask & char_class_unicode) && (c & ~static_cast<wchar_t>(0xff)))
+      || ((mask & char_class_vertical) && (::boost::re_detail::is_separator(c) || (c == L'\v')))
+      || ((mask & char_class_horizontal) && (std::iswspace)(c) && !::boost::re_detail::is_separator(c) && (c != L'\v'));
+}
+
+c_regex_traits<wchar_t>::string_type BOOST_REGEX_CALL c_regex_traits<wchar_t>::lookup_collatename(const wchar_t* p1, const wchar_t* p2) 
+{
+#if !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)\
+               && !BOOST_WORKAROUND(BOOST_MSVC, < 1300)\
+               && !BOOST_WORKAROUND(__BORLANDC__, <= 0x0551)
+   std::string name(p1, p2);
+#else
+   std::string name;
+   const wchar_t* p0 = p1;
+   while(p0 != p2)
+      name.append(1, char(*p0++));
+#endif
+   name = ::boost::re_detail::lookup_default_collate_name(name);
+#if !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)\
+               && !BOOST_WORKAROUND(BOOST_MSVC, < 1300)\
+               && !BOOST_WORKAROUND(__BORLANDC__, <= 0x0551)
+   if(name.size())
+      return string_type(name.begin(), name.end());
+#else
+   if(name.size())
+   {
+      string_type result;
+      typedef std::string::const_iterator iter;
+      iter b = name.begin();
+      iter e = name.end();
+      while(b != e)
+         result.append(1, wchar_t(*b++));
+      return result;
+   }
+#endif
+   if(p2 - p1 == 1)
+      return string_type(1, *p1);
+   return string_type();
+}
+
+int BOOST_REGEX_CALL c_regex_traits<wchar_t>::value(wchar_t c, int radix) 
+{
+#ifdef __BORLANDC__
+   // workaround for broken wcstol:
+   if((std::iswxdigit)(c) == 0)
+      return -1;
+#endif
+   wchar_t b[2] = { c, '\0', };
+   wchar_t* ep;
+   int result = std::wcstol(b, &ep, radix);
+   if(ep == b)
+      return -1;
+   return result;
+}
+
+#ifdef BOOST_REGEX_HAS_OTHER_WCHAR_T
+c_regex_traits<unsigned short>::string_type BOOST_REGEX_CALL c_regex_traits<unsigned short>::transform(const unsigned short* p1, const unsigned short* p2)
+{
+   std::wstring result = c_regex_traits<wchar_t>::transform((const wchar_t*)p1, (const wchar_t*)p2);
+   return string_type(result.begin(), result.end());
+}
+
+c_regex_traits<unsigned short>::string_type BOOST_REGEX_CALL c_regex_traits<unsigned short>::transform_primary(const unsigned short* p1, const unsigned short* p2)
+{
+   std::wstring result = c_regex_traits<wchar_t>::transform_primary((const wchar_t*)p1, (const wchar_t*)p2);
+   return string_type(result.begin(), result.end());
+}
+
+c_regex_traits<unsigned short>::char_class_type BOOST_REGEX_CALL c_regex_traits<unsigned short>::lookup_classname(const unsigned short* p1, const unsigned short* p2)
+{
+   return c_regex_traits<wchar_t>::lookup_classname((const wchar_t*)p1, (const wchar_t*)p2);
+}
+
+c_regex_traits<unsigned short>::string_type BOOST_REGEX_CALL c_regex_traits<unsigned short>::lookup_collatename(const unsigned short* p1, const unsigned short* p2)
+{
+   std::wstring result = c_regex_traits<wchar_t>::lookup_collatename((const wchar_t*)p1, (const wchar_t*)p2);
+   return string_type(result.begin(), result.end());
+}
+
+bool BOOST_REGEX_CALL c_regex_traits<unsigned short>::isctype(unsigned short c, char_class_type m)
+{
+   return c_regex_traits<wchar_t>::isctype(c, m);
+}
+
+int BOOST_REGEX_CALL c_regex_traits<unsigned short>::value(unsigned short c, int radix)
+{
+   return c_regex_traits<wchar_t>::value(c, radix);
+}
+
+#endif
+
+}
+
+#endif // BOOST_NO_WREGEX
+
+#endif // __BORLANDC__
+
index 462ad71c28951b6cb9d1d3174cca5728f67f4b16..4e377fc59acc35b4bfea66e225239a217394315a 100755 (executable)
@@ -1,13 +1,13 @@
-#\r
-# Copyright Troy D. Straszheim\r
-#\r
-# Distributed under the Boost Software License, Version 1.0.\r
-# See http://www.boost.org/LICENSE_1_0.txt\r
-#\r
-add_definitions(-DBOOST_SIGNALS_NO_LIB=1)\r
-\r
-boost_add_library(\r
-  boost_signals \r
-  trackable.cpp connection.cpp named_slot_map.cpp signal_base.cpp slot.cpp\r
-  SHARED_COMPILE_FLAGS "-DBOOST_SIGNALS_DYN_LINK=1"\r
-  )\r
+#
+# Copyright Troy D. Straszheim
+#
+# Distributed under the Boost Software License, Version 1.0.
+# See http://www.boost.org/LICENSE_1_0.txt
+#
+add_definitions(-DBOOST_SIGNALS_NO_LIB=1)
+
+boost_add_library(
+  boost_signals 
+  trackable.cpp connection.cpp named_slot_map.cpp signal_base.cpp slot.cpp
+  SHARED_COMPILE_FLAGS "-DBOOST_SIGNALS_DYN_LINK=1"
+  )